This guide takes you from a new account to your first published post.
1. Sign up and start your trial
Sign up and create your organization. Every account starts with a 7-day free trial through Stripe checkout.
2. Connect your social accounts
From the dashboard, connect the accounts you want to publish to: Instagram professional accounts (Business or Creator) and X accounts. Each connection runs through the platform's own OAuth flow, and InvisibleAPI keeps the tokens refreshed for you.
3. Create an API key
Generate an organization API key from the dashboard. Keys are scoped (publishing:read, publishing:publish), shown once, and revocable. Keep the token secret: it authorizes publishing on your connected accounts.
4. Create your first publishing job
Send a request with your API key in the Authorization header:
POST /api/v1/organizations/{organization}/publishing/jobs
{
"targets": ["3f2a9c10-8b41-4e7d-9c22-5a1e6b0d7f33"],
"mediaItems": [
{
"mediaType": "image",
"sourceUrl": "https://cdn.example.com/launch.jpg",
"altText": "The new release, photographed on a desk"
}
],
"caption": "New drop, live now.",
"clientRequestId": "first-publish-test"
}
targets takes at least one connected account ID. mediaItems holds up to 10 items, each with a mediaType of image or video and a publicly reachable sourceUrl: there is no upload endpoint, so a private bucket link is the most common reason a first post fails. caption and firstComment accept up to 5000 characters. requestedPublishAt is optional and is left out above so the request publishes immediately. Add it, as an ISO-8601 timestamp in the future, to schedule instead. clientRequestId is up to 128 characters and makes a retry safe: the same ID with the same payload returns the original job instead of publishing twice.
The call returns 202, not a published post. Publishing is asynchronous, so poll the job until it reaches a terminal state:
GET /api/v1/organizations/{organization}/publishing/jobs/{publishJobId}
A job moves through pending, scheduled, processing, preparing, submitted and polling before it settles on one of published, partial_failure, failed, action_required or canceled.
That is your first published post.
Everything after this is the same call with different targets. Create a key and point your own code at it.
Get API key →5. Automate
Once your first post lands, you can:
- Publish directly from your own app or script
- Point Claude (or any MCP-compatible agent) at the InvisibleAPI MCP server and let it draft and schedule posts
- Watch for the n8n and Zapier integrations and the CLI, which are coming soon
Browse the template library for ready-made recipes.