Onlypult Developer Docs

Publish social media content programmatically across all major platforms. Use the REST API directly or let AI agents manage your workflow via MCP.

Authentication

All API requests require a personal API key passed in the Authorization header.

1

Get your API key

Go to app.onlypult.com/settingsAPI Keys and create a new key. The key is shown only once — copy it immediately.

2

Include it in every request

Authorization: Bearer op_your_api_key_here

Key format: op_ prefix followed by 64 hex characters. Keys are stored as SHA-256 hashes and cannot be recovered — if lost, create a new one.

💡

Use separate API keys for each application or integration. You can create, list, and revoke keys at any time from Settings → API Keys.

Quickstart

Base URL for all requests: https://api.onlypult.com/v1

List your social profiles

Start by fetching your connected social accounts — you'll need the profile IDs to create posts.

curl https://api.onlypult.com/v1/profiles \
  -H "Authorization: Bearer op_your_api_key_here"
{
  "data": [
    {
      "id": "1234",
      "name": "My Instagram",
      "platform": "instagram",
      "username": "myaccount",
      "status": "active"
    }
  ]
}

Create and publish a post

Use the profile ID from the previous step to publish a post immediately.

curl -X POST https://api.onlypult.com/v1/posts \
  -H "Authorization: Bearer op_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Hello from the Onlypult API!",
    "profile_ids": ["1234"],
    "publish_now": true
  }'

Schedule a post

Omit publish_now and set scheduled_at (ISO 8601) to schedule instead.

curl -X POST https://api.onlypult.com/v1/posts \
  -H "Authorization: Bearer op_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Scheduled for tomorrow!",
    "profile_ids": ["1234"],
    "scheduled_at": "2026-07-10T10:00:00Z"
  }'

Cross-post to multiple platforms

Pass multiple profile IDs to publish the same content across platforms at once.

curl -X POST https://api.onlypult.com/v1/posts \
  -H "Authorization: Bearer op_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Cross-posting to all platforms!",
    "profile_ids": ["1234", "5678", "9012"],
    "publish_now": true
  }'

Response format

All successful responses are wrapped in a data envelope.

{ "data": { ... } }

Paginated list responses include a meta object.

{
  "data": [...],
  "meta": {
    "total": 100,
    "page": 1,
    "limit": 20,
    "pages": 5
  }
}

Errors

{
  "name": "Not Found",
  "message": "Profile not found",
  "code": 0,
  "status": 404
}