Getting started - MemoMeister API
MemoMeister’s open API acts as a digital bridge between MemoMeister and your other software. Through this interface, data can be exchanged seamlessly provided the connected systems also support open connections. Built on a modern GraphQL foundation, the API allows you to perform every action programmatically that a user can perform manually within the app.
The MemoMeister API uses GraphQL. Unlike traditional REST APIs, GraphQL provides a single endpoint where you can query for complex, nested data structures in a single request.
- New to GraphQL? Read the official introduction and learn how to form a request.
- Ready to Explore? Use our Interactive Playground to browse our live schema and test queries in real-time.
The standard approach when working with GraphQL endpoints is to use POST requests. They are necessary for executing mutations and running complex queries that exceed the URL length limitations of GET requests.
General Environment
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 to interact with the API. The API key is a digital credential that proves your identity to the server and allows you to view or change account data.
- Permissions: The API Key inherits the same rights as the user who created it.
- Security: Treat your key like a password. If a key is shared or lost, delete it immediately in your settings.
- Access: Only Owners and Admins can generate keys under Settings > Company > Developers.
To authenticate your requests, include the key in your HTTP headers by adding it to the authorization header.
# HTTP Header:
authorization: api-key 12345ABC12345
Simple demo project
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, 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 web browser
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: