GPTpost Developers

GPTpost Developers

Let Claude, ChatGPT or your own scripts draft, schedule and publish social posts in your GPTpost workspace, with a scoped API key.

Overview

Remote MCP

https://app.oraglegpt.org/mcp for Claude Code, Claude Desktop and other MCP clients (streamable HTTP).

REST API

https://app.oraglegpt.org/api/v1/agent/... for scripts and agent frameworks.

OpenAPI

https://app.oraglegpt.org/openapi.json for ChatGPT Actions and any OpenAPI-aware tool.

Every request authenticates with Authorization: Bearer gpk_.... Posts created by an agent go through the same rules as posts created in the app: per-network text limits, approval workflows, plan limits and publishing safeguards.

Get an API key

  1. Sign in at https://app.oraglegpt.org/ as a workspace owner or admin.
  2. Open Settings > API & Agents (https://app.oraglegpt.org/#/settings/api-agents).
  3. Choose Create API key, give it a name, pick scopes and an expiry.
  4. Copy the key straight away. It is shown once and starts with gpk_.

Copy it now, you will not see it again. GPTpost keeps only a hash. If you lose a key, revoke it and create a new one.

Scopes

ScopeAllows
accounts:readList connected social accounts (network, handle, state, text limit).
posts:readList posts and read their schedule and per-network publish status.
posts:writeCreate posts, schedule them and publish now. Approval rules and plan limits still apply.
media:writeUpload media (from a URL or base64) and read it back.

A key never has more rights than the person who created it. If that person loses a role or is removed, the key stops working. Changing or resetting the password, or replacing the second factor, revokes every key that person created. Keys work only on /api/v1/agent/ and /mcp.

Connect Claude Code

claude mcp add --transport http gptpost https://app.oraglegpt.org/mcp \
  --header "Authorization: Bearer <YOUR_API_KEY>"

Then run /mcp inside Claude Code to see the GPTpost tools, and ask for example: "Schedule a LinkedIn post for tomorrow at 9:00 announcing our webinar".

Connect Claude Desktop

Open Settings > Developer > Edit Config, add this to claude_desktop_config.json, and restart Claude Desktop. It uses mcp-remote, so Node.js must be installed.

{
  "mcpServers": {
    "gptpost": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://app.oraglegpt.org/mcp",
        "--header",
        "Authorization: Bearer ${GPTPOST_API_KEY}"
      ],
      "env": {
        "GPTPOST_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

claude.ai (web)

Custom connectors on claude.ai sign in with OAuth, which the GPTpost MCP endpoint does not support yet. Use Claude Code or Claude Desktop with an API key for now.

ChatGPT and other agents (OpenAPI)

For a Custom GPT: Configure > Actions > Create new action > Import from URL, then set authentication to API key, auth type Bearer.

OpenAPI schema URL:  https://app.oraglegpt.org/openapi.json
Authentication:      API key
Auth type:           Bearer
API key:             <YOUR_API_KEY>

Agent frameworks that load tools from OpenAPI (LangChain, Semantic Kernel, OpenAI Agents SDK and similar) can use the same URL and header.

REST quickstart

1. Check the key

curl https://app.oraglegpt.org/api/v1/agent/me \
  -H "Authorization: Bearer $GPTPOST_API_KEY"

2. List the accounts you can post to

curl https://app.oraglegpt.org/api/v1/agent/accounts \
  -H "Authorization: Bearer $GPTPOST_API_KEY"

3. Create a post

curl -X POST https://app.oraglegpt.org/api/v1/agent/posts \
  -H "Authorization: Bearer $GPTPOST_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"text":"Hello from my agent","account_ids":["ACCOUNT_ID"]}'

Add "schedule_at":"2026-11-02T09:00:00Z" to schedule it in the same call, or "publish_now":true to publish immediately. Optional fields: title, media_ids, and variants (per-network text, for example {"x":"Short version"}).

4. Schedule or publish an existing post

curl -X POST https://app.oraglegpt.org/api/v1/agent/posts/POST_ID/schedule \
  -H "Authorization: Bearer $GPTPOST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"schedule_at":"2026-11-02T09:00:00Z"}'

curl -X POST https://app.oraglegpt.org/api/v1/agent/posts/POST_ID/publish \
  -H "Authorization: Bearer $GPTPOST_API_KEY"

5. Check status

curl https://app.oraglegpt.org/api/v1/agent/posts/POST_ID \
  -H "Authorization: Bearer $GPTPOST_API_KEY"

curl "https://app.oraglegpt.org/api/v1/agent/posts?state=scheduled&limit=20" \
  -H "Authorization: Bearer $GPTPOST_API_KEY"

Upload media

curl -X POST https://app.oraglegpt.org/api/v1/agent/media \
  -H "Authorization: Bearer $GPTPOST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/image.jpg","rights_status":"owned"}'

Use the returned media id in media_ids when you create the post. Set rights_status to owned or licensed: posts refuse media whose rights are unknown.

MCP tools

ToolWhat it doesScope
whoamiWorkspace, key scopes and plan usageany
list_accountsConnected social accounts a post can targetaccounts:read
create_postCreate a post, optionally scheduled or published nowposts:write
schedule_postSchedule an existing postposts:write
publish_postPublish an existing post nowposts:write
upload_mediaUpload media from a URL or base64media:write
get_post_statusA post with its schedule and per-network statusposts:read
list_postsRecent posts, filterable by stateposts:read

Rate limits

Each key can make about 120 requests per minute, with a lower budget for writes. Above that the API answers 429 Too Many Requests with a Retry-After header in seconds. Wait that long, then retry. Send an Idempotency-Key header on create calls so a retry never creates a duplicate post.

Errors

Errors are application/problem+json: {"type","title","status","code","detail"}.

StatusMeaningWhat to do
401Missing, malformed, expired or revoked keyCheck the header, or create a new key.
403The key lacks the scope (insufficient_scope), or the path is outside the agent API (key_surface_not_allowed)Create a key with the needed scope; call only /api/v1/agent/ and /mcp.
409Approval required before scheduling or publishingThe post waits for review in GPTpost; check it later with get_post_status.
422Validation failed, for example text too long for a networkShorten the text or add a per-network variant.
402Plan limit reached (for example posts per month) or the plan lacks API accessCheck usage with whoami; upgrade the plan.
429Rate limit reachedWait for Retry-After, then retry.

Security notes

  • Keys are stored hashed. The full key is shown once, when it is created.
  • A key acts as the person who created it, bounded by its scopes. It cannot manage members, billing, OAuth apps or other API keys.
  • Revoke a key at any time in Settings > API & Agents. It stops working immediately.
  • Keep keys out of source code and shared chats. Prefer an environment variable such as GPTPOST_API_KEY.
  • Use one key per agent or device, so you can revoke one without breaking the others.