What you can do with the API
The Autoposter API lets you automate your scheduling workflow from external systems — for example, push posts from a CMS, sync media from a digital asset manager, or build custom reporting on top of your queue. The API mirrors the parts of the dashboard that handle accounts, media, posts, and tags.
How tokens scope to your workspaces
An access token is bound to your user account, not a single workspace. When you make a request, you specify which workspace it applies to in the URL. The token will work for any workspace where your user has membership and reject any other workspace with 403 Access forbidden.
If you manage 5 workspaces under your account, one token can hit all 5. You cannot see workspaces you are not a member of, and you cannot escalate to admin endpoints.
Creating a token
- Click your avatar in the top-right of any workspace.
- Choose Access Tokens.
- Click Create Token, give it a memorable name (e.g. "Zapier integration"), and pick an expiry.
- Copy the token immediately — it will not be shown again. If you lose it, delete and create a new one.
Treat tokens like passwords. Anyone with the token can act as your user across every workspace you belong to. Use a separate token per integration so you can revoke them individually.
Authentication
Send your token as a Bearer header on every request:
Authorization: Bearer YOUR_TOKEN_HERE
Accept: application/json
Base URL: https://autoposter.typamanagement.com/api/
Most endpoints are scoped under a workspace UUID — you can find your workspace UUID from the URL when you are inside a workspace in the dashboard.
Available endpoints
Health check
GET /api/ping— confirms your token is valid; returns{"status":"ok"}.
Accounts (read-only)
GET /api/{workspace}/accounts— list every connected social account in this workspace.GET /api/{workspace}/accounts/{account}— get a single account by id or UUID.
Posts
GET /api/{workspace}/posts— list scheduled and published posts (supports filters via query string:status,account,tag, etc.).GET /api/{workspace}/posts/{post}— fetch a single post by UUID.POST /api/{workspace}/posts— create a new post (draft or scheduled).PUT /api/{workspace}/posts/{post}— update a post (caption, accounts, schedule, etc.).DELETE /api/{workspace}/posts/{post}— delete a single post.DELETE /api/{workspace}/posts— bulk delete (pass an array of post UUIDs in the body).POST /api/{workspace}/posts/schedule/{post}— schedule an existing draft.POST /api/{workspace}/posts/add-to-queue/{post}— drop a post into your posting queue using your existing schedule.POST /api/{workspace}/posts/approve/{post}— approve a post that is awaiting team approval.
Media
GET /api/{workspace}/media— list media library items.GET /api/{workspace}/media/{media}— fetch a single media item by UUID.PUT /api/{workspace}/media/{item}— update media metadata (alt text, tags).POST /api/{workspace}/media— direct upload (small files, multipart form).DELETE /api/{workspace}/media— bulk delete media.POST /api/{workspace}/media/chunked/initiate— start a chunked upload session for large files. Follow with chunk POSTs to/chunked/{uuid}/uploadand finish with/chunked/{uuid}/complete.POST /api/{workspace}/media/remote/initiate— instruct Autoposter to download a file from a public URL into your media library.GET /api/{workspace}/media/remote/{downloadId}/status— check progress of a remote download.
Tags
GET /api/{workspace}/tags— list tags.GET /api/{workspace}/tags/{tag}— fetch a tag.POST /api/{workspace}/tags— create a tag.PUT /api/{workspace}/tags/{tag}— rename or recolor a tag.DELETE /api/{workspace}/tags/{tag}— delete a tag.
Limitations — features that are dashboard-only
Several of Autoposter's most-used capabilities currently do not have API endpoints. Plan around these or use the dashboard for them:
AI features (dashboard only)
- AI Compliance Checker — every uploaded media item is automatically scanned, but the per-platform safety scores are not yet returned via the API. To trigger or read compliance results, use the dashboard.
- AI Caption Generator — generating captions in the 6 tones is a dashboard-only action; the API will not produce captions for you.
- AI Analyst — the conversational analytics assistant is dashboard only.
- AI Ideation — post idea generation is dashboard only.
Video features (dashboard only)
- TikTok-style burned-in captions — the Whisper transcription + ffmpeg subtitle burn-in pipeline runs only when you use the dashboard's caption editor. To get captioned video via API, you would need to upload an already-captioned file as your media.
- Custom video thumbnails for short-form — Reels and TikTok thumbnails set in the dashboard composer are dashboard only.
Analytics & insights
- The analytics dashboard (followers, engagement, reach across platforms) is not exposed via the API today. Pull this data directly from each platform's native API, or use the dashboard.
- Per-post insights (Instagram views, TikTok plays, etc.) are visible in the dashboard but not in the API
/posts/{id}response.
Workspace configuration
- Connecting and disconnecting social accounts is dashboard only — the API can read connected accounts but not add new ones.
- Posting schedule (queue slot times), hashtag groups, templates, and posting defaults are dashboard only.
- Team member management (inviting, role changes) is dashboard only.
Platform-specific gaps
- Snapchat integration is custom-built and not exposed via the API yet.
- Some platform-specific options (Instagram trial reels, YouTube category, TikTok privacy levels) can be set via the post
optionspayload but are not always documented per-field; reach out via support if you need a specific option.
Examples
Quick reference: how IDs work
Two ID types appear in payloads — both are integers, not the UUIDs visible in URLs:
accounts— integeridfromGET /accounts(the integer field, not theuuidfield).media— integeridfromGET /mediaafter upload.- Workspace in the URL is the UUID.
Example 1 — list connected accounts
curl https://autoposter.typamanagement.com/api/YOUR_WORKSPACE_UUID/accounts \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Use the integer id values from the response in subsequent calls.
Example 2 — upload a single image
curl -X POST https://autoposter.typamanagement.com/api/YOUR_WORKSPACE_UUID/media \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
-F "files[]=@/path/to/your/photo.jpg"
The response contains the new media's integer id — keep it for the next step.
Example 3 — schedule one post to multiple platforms with shared media
This is the most common automation pattern: one piece of media, the same caption, fanned out to several connected accounts at the same time. Pass every target id in accounts and put a single original version in versions — Autoposter applies that same content to every selected account.
curl -X POST https://autoposter.typamanagement.com/api/YOUR_WORKSPACE_UUID/posts \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accounts": [12, 47, 88, 102],
"versions": [
{
"account_id": 0,
"is_original": true,
"content": [
{
"body": "Behind-the-scenes from this morning. Full reel dropping tonight 🎬",
"media": [3145]
}
]
}
],
"date": "2026-05-01",
"time": "18:00",
"timezone": "Europe/London",
"schedule": true
}'
Notes:
accounts— integer ids of every social account this post will publish to (Instagram, TikTok, X, etc. — mix freely).- The first version uses
account_id: 0+is_original: true. That marks it as the shared content used by every account that doesn't have its own override. media: [3145]— single image. Add more ids for a carousel; the order in the array is the order on the post.schedule: truetells Autoposter to actually schedule it. Without it, the post is created as a draft.- Want it to go right now? Replace
date/time/schedulewith"schedule_now": true. Or to drop it into the next free slot of your posting schedule, use"queue": true.
Example 4 — same post, but customise the caption per platform
If you want different captions per platform (e.g. shorter for X, with hashtags for Instagram), add additional version entries — one per account that needs an override. The first version still acts as the fallback for any account without its own version.
curl -X POST https://autoposter.typamanagement.com/api/YOUR_WORKSPACE_UUID/posts \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accounts": [12, 47, 88],
"versions": [
{
"account_id": 0,
"is_original": true,
"content": [{
"body": "Behind-the-scenes from this morning. Full reel dropping tonight 🎬",
"media": [3145]
}]
},
{
"account_id": 12,
"is_original": false,
"content": [{
"body": "BTS 🎬 #content #behindthescenes #creatorlife",
"media": [3145]
}]
},
{
"account_id": 47,
"is_original": false,
"content": [{
"body": "BTS from this morning",
"media": [3145]
}]
}
],
"date": "2026-05-01",
"time": "18:00",
"timezone": "Europe/London",
"schedule": true
}'
In this example accounts 12 and 47 get their own captions, and account 88 falls back to the original because no override version exists for it.
Example 5 — schedule a video post with multiple media
For carousels, add multiple media ids in the media array (in display order). For Reels with a custom thumbnail, attach the thumbnail image via video_thumbs:
{
"accounts": [12, 47],
"versions": [{
"account_id": 0,
"is_original": true,
"content": [{
"body": "New episode is live 🎙️",
"media": [4910],
"video_thumbs": [
{ "media_id": 4910, "thumb_id": 4911 }
]
}]
}],
"queue": true
}
This adds the post to the next available slot in your posting schedule (no manual date/time needed).
Rate limits & fair use
The API is throttled per token to prevent runaway scripts from overwhelming the queue. Typical sustained throughput sits comfortably under 60 requests per minute; bursts above that may receive 429 Too Many Requests with a Retry-After header. If you have a use case that genuinely needs higher throughput, contact support.
Token security best practices
- Never commit tokens to version control or paste them into public channels.
- Use a separate token per integration. Revoking one will not affect the others.
- Set an expiry on every token — Never expires is convenient but risky.
- Rotate tokens on a schedule that matches your security policy.
- If you suspect a token is compromised, revoke it immediately from Profile → Access Tokens and rotate any dependent integrations.
Need help?
If a use case isn't covered by the available endpoints, or you need an exception to a limitation listed above, reach out to support — many of these gaps are slated for future API releases and prioritisation is driven by customer demand.