MCP + REST API

Post from any AI agent

Hand PostJay to your agent. Connect Claude, ChatGPT, Cursor and more over MCP, or drive it from your own scripts with the REST API — schedule to all 18 platforms, programmatically.

Included in all plans

Set up in under a minute

One command. No API key. Works with Claude, Cursor and more.

1

Start a plan

MCP access is included on every PostJay plan — start a 7-day free trial.

Start free trial
2

Pick your AI tool

We'll give you the exact step to run.

3

Register the PostJay MCP server

Run in your terminal to register the PostJay MCP server.

claude mcp add postjay --scope user --transport http https://postjay.com/api/mcp
4

Open the MCP menu

claude
/mcp

Start Claude Code, run /mcp, select postjay, then Authenticate.

5

Authorize

A browser window opens automatically. Sign in to PostJay and click Authorize. Standard OAuth 2.0 (PKCE) — revoke anytime under Settings → API & Agents → Connected apps.

6

You're set

Start prompting: “Schedule a post to my Instagram and X tomorrow at 9am: …” — your agent drives PostJay directly.

Advanced — API keys, per-client config & REST

1. Get an API key

Create a key in Settings → API & Agents. It looks like pj_live_… and is shown once. Use it as a Bearer token below.

2. Connect over MCP

Point your agent at https://postjay.com/api/mcp with your key. Replace pj_live_YOUR_KEY.

✨ One-click connect — no API key needed

In ChatGPT or Claude Desktop, just add the connector URL https://postjay.com/api/mcp and click Connect. You'll be sent to PostJay to sign in and authorize — no key to copy or paste. PostJay uses standard OAuth 2.0 (PKCE), and you can revoke access anytime under Settings → API & Agents → Connected apps.

Prefer an API key? Use the per-client setup below — ideal for Claude Code, Cursor, CLIs and scripts.

Claude Code

Run in your terminal.
claude mcp add --transport http postjay https://postjay.com/api/mcp \
  --header "Authorization: Bearer pj_live_YOUR_KEY"

Cursor

Add to .cursor/mcp.json in your project.
{
  "mcpServers": {
    "postjay": {
      "url": "https://postjay.com/api/mcp",
      "headers": {
        "Authorization": "Bearer pj_live_YOUR_KEY"
      }
    }
  }
}

VS Code / Copilot

Add to .vscode/mcp.json in your project.
{
  "servers": {
    "postjay": {
      "type": "http",
      "url": "https://postjay.com/api/mcp",
      "headers": {
        "Authorization": "Bearer pj_live_YOUR_KEY"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "postjay": {
      "serverUrl": "https://postjay.com/api/mcp",
      "headers": {
        "Authorization": "Bearer pj_live_YOUR_KEY"
      }
    }
  }
}

ChatGPT

Requires a plan with custom connectors / developer mode.
Settings → Connectors → Add custom connector
MCP Server URL:  https://postjay.com/api/mcp
Authorization:   Bearer pj_live_YOUR_KEY

Then just ask: “Schedule a post to my Instagram and X tomorrow at 9am: …” — your agent calls the tools below.

list_accounts

List connected accounts.

schedule_post

Schedule or publish a post to one or more accounts.

list_posts

List your posts.

get_post

Get a post by id.

delete_post

Delete a post.

get_analytics

Engagement summary + trend.

3. Or use the REST API

Base URL https://postjay.com/api/v1. Authenticate with Authorization: Bearer pj_live_….

MethodEndpointDescription
GET/api/v1/accountsList your connected social accounts + their ids.
GET/api/v1/postsList your posts (drafts, scheduled, published).
POST/api/v1/postsCreate + schedule (or publish now) a post.
GET/api/v1/posts/:idFetch one post + its per-platform status.
DELETE/api/v1/posts/:idDelete a post.
GET/api/v1/analyticsEngagement summary, top posts, 30-day trend.
List your accounts
curl https://postjay.com/api/v1/accounts \
  -H "Authorization: Bearer pj_live_YOUR_KEY"
Schedule a post
curl -X POST https://postjay.com/api/v1/posts \
  -H "Authorization: Bearer pj_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Big news 🚀",
    "accountIds": ["<account-id-from-/accounts>"],
    "scheduledAt": "2026-02-01T09:00:00Z",
    "mediaUrls": ["https://example.com/image.jpg"]
  }'

Omit scheduledAt (or use a past time) to publish immediately. Rate limit: 120 requests/minute per key.

Ready to automate your posting?

Create a free account, connect your channels, and generate an API key.

Get started free