API Reference
An advanced feature that opens up a world of possibilities by allowing third-party services to seamlessly communicate with your Mixpost instance.
For n8n users, we have a community node available that makes it easy to integrate Mixpost with your n8n workflows. Check out n8n-nodes-mixpost on npm.
Base URL
- Mixpost Cloud
- Self-hosted
https://cloud.mixpost.app/p/api/*
Workspace endpoints are scoped by a workspace UUID:
https://cloud.mixpost.app/p/api/<workspaceUuid>/posts
The API lives at the address you open Mixpost at, followed by /api:
https://example.com/api/*
Workspace endpoints are scoped by a workspace UUID:
https://example.com/api/<workspaceUuid>/posts
On the reference pages, enter that same address, without https://, in the host field of the
request panel.
Is Mixpost under a path? e.g. https://example.com/<path>/...
Keep that path in every address on this page, or requests return 404. Your exact address is under Admin Console → Status → Server & Drivers → Base URL.
Not sure what this means? Skip this note.
Don't know your workspace UUID? List your workspaces.
You can download the OpenAPI specification to import into Postman, Insomnia, or generate a client from.
Authentication
API endpoints are protected, and therefore require that you authenticate with a personal key.
Create a personal key
API requests authenticate with a personal key, a key that belongs to your user and acts as you.
- Open the user menu and click API.
- Click Create a personal key.
- Give it a name, or leave it empty to get one generated, and pick when it expires.
- Click Create, then copy the key.
The key is shown once, at creation — Mixpost only stores a hash of it. If you lose it, rotate it to get a new one.
Screenshots:


Manage your keys
The API page lists your keys with the last four characters of each one, when it was last used, when it was created and when it expires. From the same list you can:
- Edit a key to rename it or change when it expires.
- Rotate key to replace a key with a new one. The new key keeps the name and expiry and is shown once; anything still using the old key stops working straight away.
- Delete keys you no longer need.
Use your personal key
Authenticate by adding an Authorization header to all your HTTP calls, formatted as
Authorization: Bearer <personal-key> (replace <personal-key> with the key you created).
The key must be sent in that header — there is no query string, cookie, or custom-header alternative.
Example:
curl -L -X GET 'https://cloud.mixpost.app/p/api/3bbd0951-5b04-432b-b2a0-688588b0720e/accounts' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <personal-key>'
To check that a key is valid, call the health check endpoint:
curl -L -X GET 'https://cloud.mixpost.app/p/api/ping' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <personal-key>'
A valid key returns {"status":"ok"}; anything else returns 401.
What a personal key can do
A personal key carries the full authority of the user who created it. You cannot restrict a key to certain endpoints or to read-only access. What it may do is decided by that user's role in each workspace — so to limit an integration, create its key from a user whose role is already limited.
See Permissions for the full role matrix.
Personal keys expire according to the expiry you pick when creating them (7, 30, 60 or 90 days, 1 year,
a custom date, or never). An expired or deleted key returns 401.
Sign in with OAuth
Apps can also sign users in with their Mixpost account instead of a personal key: AI clients such as ChatGPT and Claude connect to the MCP server this way, and an administrator can register your own app to call the REST API. See OAuth.
Conventions
- All timestamps are UTC. The API always operates in UTC, regardless of the timezone configured for the workspace or user.
- Responses are JSON. Errors follow a consistent shape — see Errors.
- Some list endpoints paginate and some don't. See Pagination.