Postato Docs
Guides

Quickstart

From zero to first published post in under five minutes.

Quickstart

Send your first post to a social network via the Postato REST API in five steps.

1. Create an account

Sign up at app.postato.com.br. During onboarding you choose your organization type, name, and create your first workspace. Every post, account, and API key belongs to a workspace.

2. Connect a social account

From the dashboard, open Accounts and authorize the platform you want to publish to (X / Twitter, LinkedIn, Instagram, TikTok, YouTube). OAuth tokens are encrypted at rest and never exposed back to you.

You'll get an account ID once the OAuth callback completes. You need it to publish.

3. Create an API key

Go to Agents in the workspace nav (or Org settings → Agents for a multi-workspace key) and click Create agent. Choose the scope:

  • selected: a fixed list of workspaces (one or more — for a single-workspace key, just pick one)
  • all: every workspace the owning agent can access (follows dynamically; super-admin only)

Agents created from the workspace surface are locked to that workspace and editable by its admins. Agents created from the org surface are tenant-level — only super-admin or owner edits them. See Workspaces for the full management model.

Copy the key immediately. Format is smcp_ + 64 hex characters. You'll only ever see the plaintext once.

4. Publish a post

curl -X POST https://api.postato.com.br/v1/workspaces/$WORKSPACE_ID/posts \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "platform": "twitter",
    "accountId": "acc_01H...",
    "status": "publish",
    "postType": "tweet",
    "content": "Hello from Postato."
  }'
const res = await fetch(
  `https://api.postato.com.br/v1/workspaces/${WORKSPACE_ID}/posts`,
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': crypto.randomUUID(),
    },
    body: JSON.stringify({
      platform: 'twitter',
      accountId: 'acc_01H...',
      status: 'publish',
      postType: 'tweet',
      content: 'Hello from Postato.',
    }),
  }
);

const post = await res.json();
import os
import uuid
import httpx

res = httpx.post(
    f"https://api.postato.com.br/v1/workspaces/{WORKSPACE_ID}/posts",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "platform": "twitter",
        "accountId": "acc_01H...",
        "status": "publish",
        "postType": "tweet",
        "content": "Hello from Postato.",
    },
    timeout=30,
)
post = res.json()

Response:

{
  "id": "pst_01H...",
  "status": "queued",
  "platform": "twitter",
  "postType": "tweet",
  "createdAt": "2026-04-15T12:00:00.000Z"
}

The request returns in milliseconds. Delivery happens asynchronously; see GET /posts/{id} to poll the final status.

5. Agent setup (optional)

If you're building with an AI agent instead of a traditional backend, connect via MCP:

{
  "mcpServers": {
    "postato": {
      "url": "https://api.postato.com.br/mcp",
      "headers": { "Authorization": "Bearer $API_KEY" }
    }
  }
}

Every REST endpoint has an equivalent MCP tool. Browse them under MCP Tools.

Where to next

On this page