Skip to main content

Getting Started

We have a GraphQL API, a strongly typed but flexible data query language.

If you’re not familiar with GraphQL, or would like a brief refresher to better understand this documentation, we recommend reading the official introduction at https://graphql.org/learn/ — in particular, the section on POST requests.

When working with GraphQL endpoints, POST requests are the standard approach. They are required for executing mutations and for running more complex queries, such as those that exceed the URL length limitations of GET requests.

If you already know how GraphQL generally works, you can use our Playground. There, you can explore the Schema and test it out easily.

General Environment

warning

Please take note of our Requirements and our Limits, as you otherwise might run into issues.

# Base Url
https://api.memomeister.com/graphql

Authentication

You will need an API key. This key is locked to the user and company. So it does have the same permissions as the user itself.

This API key you can create at https://web.memomeister.com/settings/company/developers/apikeys (be aware only the owner and admins can see this page)

The API key will then be added to the authorization header like

# HTTP Header:
authorization: api-key 12345ABC12345

Simple demo project

tip

if you just want to test it yourself fast, here is a repo with some examples https://github.com/FreiraumIO/api-examples or you can just copy paste the query below into the Playground

the easiest query we can do is to fetch our user that belongs to the apikey.

query MyUser {
me {
id
firstName
lastName
fullName
avatar
phoneNumber
primaryEmail
activeCompanyRole # in this case it could be 0 (owner) or 10 (admin)
}
}

This would look in curl like this

$ curl 'https://api.memomeister.com/graphql' \
-H 'accept: */*' \
-H 'content-type: application/json' \
-H 'user-agent: curl (copied from the documentation)' \
-H 'authorization: api-key <YOUR_APIKEY>' \
--data-raw '{"operationName":"MyUser","variables":{},"query":"query MyUser {\n me {\n id\n firstName\n lastName\n fullName\n avatar\n phoneNumber\n primaryEmail\n activeCompanyRole\n }\n}\n"}' \
--compressed

and in javascript with urql

import { createClient,authors gql } from "@urql/core";

const API_KEY = "<YOUR_APIKEY>";
const httpUrl = "https://api.memomeister.com/graphql";

const client = createClient({
url: httpUrl,
fetch, // from "node-fetch" for example, or the webbrower
fetchOptions: () => {
// we add the authorization here
return {
headers: {
authorization: API_KEY ? `api-key ${API_KEY}` : "",
"user-agent": "API urql demo application",
},
};
},
});

const MY_USER = gql`
query MyUser {
me {
id
firstName
lastName
fullName
avatar
phoneNumber
primaryEmail
activeCompanyRole # in this case it could be 0 (owner) or 10 (admin)
}
}
`;

// ....

async function run() {
const resp = await client.query(MY_USER).toPromise();
console.log(resp.data?.me);
}
run();

What to do next

The most likely two things you want to try out is to create folders or documents: