PostJe

v1 Developers & AI tools

PostJe API

Submit posts from ChatGPT, Claude, n8n, Make, Zapier or your own code. Every post you send arrives as "pending_approval" and is only published after someone approves it in PostJe.

Authentication

PostJe issues API keys to companies on plans with API access. Ask us for a key, then send it as a Bearer token. Always send Accept: application/json.

Authorization: Bearer YOUR_API_KEY
Accept: application/json

Endpoints

GET

https://www.postje.social/api/v1/accounts

List your connected social accounts. Use their id values when creating posts. posts:read

GET

https://www.postje.social/api/v1/posts

List posts, newest first, 20 per page. Optional ?status=pending_approval|approved|published|failed… posts:read

POST

https://www.postje.social/api/v1/posts

Create a post. It waits for approval in PostJe. posts:write

GET

https://www.postje.social/api/v1/posts/{id}

One post, including per-network results and links once published. posts:read

DELETE

https://www.postje.social/api/v1/posts/{id}

Delete a post that has not been approved yet. posts:write

Create a post

captionstringThe post text. Instagram max 2,200 and Threads max 500 characters.
accountsarray of idsRequired. Account ids from GET /accounts.
media_urlsarray of URLsOptional. Up to 10 public image (JPG/PNG/WebP) or video (MP4) URLs. PostJe downloads them.
media[]filesOptional. Upload files directly with multipart/form-data instead of URLs.
scheduled_atISO 8601Optional. When to publish once approved. Leave out to publish as soon as it is approved.
clientstringOptional. Name of the tool, shown to approvers (defaults to the API key name).
curl -X POST https://www.postje.social/api/v1/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -d '{
    "caption": "New arrivals are in! Visit us this weekend.",
    "accounts": ["9b1d6c1e-…", "9b1d6c2f-…"],
    "media_urls": ["https://example.com/photo.jpg"],
    "scheduled_at": "2026-11-01T10:00:00+08:00",
    "client": "ChatGPT"
  }'

Response: 201 with the post, status "pending_approval". Validation problems (for example Instagram without an image) return 422 with a message for each field.

Limits

  • 60 requests per minute per key.
  • Posts count towards your plan's monthly post limit.
  • API access is included on plans with the "API access" feature.