Public API v1

Build with the PostLab API

Schedule posts, read your content feed, and manage your social presence programmatically. Available on the Pro plan.

Quick Start

Step 1Get your API key

Go to Settings > API Keys in the app to generate your key. Requires a Pro subscription.

Step 2Make your first request

Schedule a post with a single API call.

curl -X POST "https://postlab-production.up.railway.app/api/v1/schedule" \
  -H "Authorization: Bearer pk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello from the PostLab API!",
    "platforms": ["twitter"],
    "scheduled_for": "2026-02-20T14:00:00Z"
  }'
Step 3Get the results

Receive the scheduled post confirmation with ID, status, and schedule time. View all posts with GET /posts.

Authentication

All API endpoints use Bearer token auth. Include your API key in the Authorization header:

Authorization: Bearer pk_your_api_key

Rate Limits

Write operations (schedule)10 req/min
Read endpoints60 req/min

Rate limit info included in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Endpoints

All endpoints are prefixed with /api/v1

POST/api/v1/schedule10/min

Schedule a post across one or more platforms

Request Body

{
  "text": "Just shipped LLM-powered content scoring!",
  "platforms": ["twitter", "linkedin"],
  "scheduled_for": "2026-02-20T14:00:00Z",
  "type": "promotional"
}

Response

{
  "id": "uuid",
  "status": "scheduled",
  "scheduled_for": "2026-02-20T14:00:00Z",
  "platforms": ["twitter", "linkedin"],
  "text": "Just shipped LLM-powered content scoring!"
}
GET/api/v1/posts60/min

List your scheduled, published, and draft posts

Response

{
  "posts": [
    {
      "id": "uuid",
      "topic": "LLM scoring launch",
      "platform": "twitter",
      "status": "scheduled",
      "scheduledFor": "2026-02-20T14:00:00Z"
    }
  ],
  "total": 12
}
GET/api/v1/posts/:id60/min

Get full details for a single post

Response

{
  "post": {
    "id": "uuid",
    "topic": "LLM scoring launch",
    "platform": "twitter",
    "postType": "promotional",
    "status": "scheduled",
    "finalContent": { ... },
    "scheduledFor": "2026-02-20T14:00:00Z"
  }
}
GET/api/v1/accounts60/min

List your connected social accounts

Response

{
  "accounts": [
    {
      "id": "uuid",
      "platform": "twitter",
      "name": "PostLab",
      "handle": "@usepostlab",
      "connected": true
    }
  ]
}
GET/api/v1/niches60/min

List your content discovery niches

Response

{
  "niches": [
    {
      "id": "uuid",
      "name": "AI & SaaS",
      "description": "AI tools for SaaS growth",
      "contentCount": 247,
      "lastRefreshed": "2026-02-17T12:00:00Z"
    }
  ]
}
GET/api/v1/niches/:id/content60/min

Get content feed for a specific niche

Response

{
  "content": [
    {
      "id": "uuid",
      "title": "How AI is reshaping SEO",
      "url": "https://...",
      "sourceType": "rss",
      "engagementScore": 8.5,
      "viralTier": "high"
    }
  ],
  "total": 42
}
GET/api/v1/content/feed60/min

Aggregated content feed across all niches

Response

{
  "content": [
    {
      "id": "uuid",
      "nicheId": "uuid",
      "title": "Top SaaS trends",
      "sourceType": "serp",
      "engagementScore": 9.1,
      "viralTier": "viral"
    }
  ],
  "total": 85
}
GET/api/v1/usage60/min

Check your current API and posting usage

Response

{
  "tier": "pro",
  "postsThisMonth": 15,
  "postsLimit": 100,
  "postsRemaining": 85,
  "unlimitedPosts": true,
  "activeApiKeys": 1
}

Ready to integrate?

Get your API key and start scheduling posts programmatically.

Get Started