REST API quickstart
Every tool as an HTTP endpoint, plus plain paths for the everyday calls.
Base URL https://www.automatesocials.net/api/v2. Authenticate with the x-api-key header (Authorization: Bearer works too). A key belongs to one project, so there is no project parameter.
The everyday paths
Publishing, scheduling and reading back have plain REST paths. The platform may be spelled twitter or x; media may be given as URLs.
curl -X POST https://www.automatesocials.net/api/v2/posts \
-H "x-api-key: sk_live_..." -H "content-type: application/json" \
-d '{"post":{"accountId":"<from /users/me/accounts>",
"content":{"text":"Hello from the API","platform":"linkedin","mediaUrls":[]},
"target":{"targetType":"linkedin"}},
"scheduledTime":"2026-10-01T09:00:00Z"}'| Path | What |
|---|---|
| GET /users/me, /users/me/accounts, /users/me/accounts/:id/subaccounts | Who you are and what is connected |
| POST /posts, GET /posts, GET /posts/:submissionId, GET /published-posts | Publish or schedule, and read back |
| GET/PATCH/DELETE /schedules/:id | Move or cancel something scheduled |
| GET/POST /schedule/slots, POST /schedule/slots/next-available | Weekly publishing slots |
| POST /media, POST /media/uploads | Fetch a file from a URL, or get an upload URL |
| GET /credits | Your balance |
Every tool, generically
Anything the agent can do is at POST /tools/<name> with the tool's parameters as the JSON body. The names and schemas are in the OpenAPI document and in the manual.
curl -X POST https://www.automatesocials.net/api/v2/tools/save_draft \
-H "x-api-key: sk_live_..." -H "content-type: application/json" \
-d '{"text":"Hello","platforms":["facebook"]}'Limits and logs
30 writes and 60 reads per minute per key; a 429 carries Retry-After. Every call is logged under Settings → API & MCP with its arguments, status and duration.
Machine-readable: https://www.automatesocials.net/api/v2/openapi.json