Skip to content

API Reference

Integrate AlgoMuse into your applications with our REST API. Create, schedule and publish posts, and read analytics programmatically.

Updated September 20268 min read

Getting Started#

The AlgoMuse API lets you create, schedule and publish posts, run bulk operations, read analytics and talk to the AI assistant from your own code. The full list of endpoints is in the API reference.

Info

API access is available on the Business and Enterprise plans. Rate limits are set per key, not per plan — see below.

Authentication#

AlgoMuse uses API keys for authentication. All requests must include your API key in the Authorization header.

Getting Your API Key

1

Open the Developers page

Go to Developers → API Keys in your dashboard.

2

Create a New Key

Click "Create API Key", give it a descriptive name (e.g. "Production App"), and pick the scopes it needs: posts:read, posts:write, posts:publish, analytics:read, conversations:read, conversations:write, workspace:read, templates:read, templates:write, calendar:read, calendar:write, crisis:read, crisis:write, listening:read, listening:write, competitors:read, competitors:write, linkinbio:read, linkinbio:write, influencers:read, influencers:write, search:read, uploads:read, uploads:write, media:read.

3

Copy and Store Safely

Copy your API key immediately - it will only be shown once. Store it securely and never commit it to version control.

Using Your API Key

Include the API key in the Authorization header of all requests:

Example Request
bash
curl -X GET "https://api.algomuse.io/api/v1/posts" \
-H "Authorization: Bearer am_live_YOUR_API_KEY"

Keep Your Key Secret

Never expose your API key in client-side code, public repositories, or logs. If compromised, revoke it immediately and create a new one.

Base URL#

All API requests should be made to:

Base URL
text
https://api.algomuse.io/api/v1

The API uses JSON for request and response bodies. Set the Content-Type: application/json header when you send one.

Rate Limits#

Each key allows 60 requests a minute and 10,000 a day unless you set other limits when you create it (up to 1,000 a minute and 100,000 a day). All API traffic is also held to 100 requests a minute per key. Limit state is included in the response headers:

Rate Limit Headers
text
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 2026-09-25T10:01:00.000Z

Going over a limit returns 429 with a Retry-After header.

Core Endpoints#

Posts

GET/posts

List posts, optionally filtered by status (draft, scheduled, published, failed), with limit and offset for paging.

bash
curl -X GET "https://api.algomuse.io/api/v1/posts?status=scheduled&limit=10" \
-H "Authorization: Bearer am_live_YOUR_API_KEY"
POST/posts

Create a post. With scheduledAt it is queued to your connected accounts on the listed platforms; without it, it is saved as a draft. Needs posts:write. Media cannot be attached through the API yet: a request with mediaUrls is refused, so add images and video in the app.

bash
curl -X POST "https://api.algomuse.io/api/v1/posts" \
-H "Authorization: Bearer am_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Excited to share our latest update! #SocialMedia",
"platforms": ["twitter", "linkedin"],
"scheduledAt": "2026-10-15T10:00:00Z"
}'
GET/posts/{postId}

Retrieve a post by ID.

PATCH/posts/{postId}

Update a post's content or scheduledAt.

POST/posts/{postId}/publish

Publish a post now. Needs posts:publish.

DELETE/posts/{postId}

Delete a post.

AI Assistant

POST/ai/chat

Send a message to the AI assistant, which answers with your brand context. Pass a conversationId to continue a conversation. Needs conversations:write.

bash
curl -X POST "https://api.algomuse.io/api/v1/ai/chat" \
-H "Authorization: Bearer am_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "Draft three LinkedIn post ideas about our new feature"
}'

Analytics

GET/analytics/overview

Aggregated analytics for the workspace over a period of 7d, 30d or 90d.

bash
curl -X GET "https://api.algomuse.io/api/v1/analytics/overview?period=30d" \
-H "Authorization: Bearer am_live_YOUR_API_KEY"
GET/analytics/posts

Per-post performance.

GET/analytics/audience

Audience insights.

Bulk operations, RSS feeds and auto-reply rules are listed in the full endpoint list.

Webhooks#

You can register webhook endpoints under Developers → Webhooks and send them a test event. Delivery of post, account and analytics events is not live yet; until it is, poll the endpoints above.

Each delivery carries an X-AlgoMuse-Signature header formatted t=<unix time>,v1=<hex>. Verify it by computing an HMAC-SHA256 of <t>.<raw body> with your endpoint's signing secret.

Webhook Payload
json
{
"id": "5f0c6f8e-2b1d-4c1e-9a53-0f3e7d1c2b4a",
"type": "test.ping",
"created_at": "2026-09-25T14:30:00.000Z",
"data": {}
}

Error Handling#

The API uses standard HTTP status codes and returns a JSON error:

Error Response
json
{
"success": false,
"error": {
"code": "resource_not_found",
"message": "Post not found"
}
}

Common Error Codes

CodeStatusDescription
invalid_api_key401Missing, invalid, revoked or expired key.
insufficient_scope403The key does not have the scope this endpoint needs.
resource_not_found404The resource does not exist.
validation_error422The request failed validation.
rate_limit_exceeded429Too many requests — see the Retry-After header.
internal_error500Something went wrong on our end.

Next Steps#