API Reference

One API key per profile. Bearer token authentication. All inputs validated with Zod.

Authentication

Authorization: Bearer YOUR_API_KEY

API keys are per-profile. Generate them in Dashboard → Profiles.

Base URL

https://fanout.digital
POST/api/v1/postAuth required

Post to one or more platforms immediately

Request body

{
  "post": "Your content here",
  "platforms": ["twitter", "linkedin"],
  "mediaUrls": ["https://example.com/image.jpg"],
  "profileId": "your-profile-slug"
}

Response

{
  "status": "queued",
  "id": "post-uuid"
}
POST/api/v1/scheduleAuth required

Schedule a post for a future time

Request body

{
  "post": "Your content here",
  "platforms": ["twitter"],
  "profileId": "your-profile-slug",
  "scheduledFor": "2026-04-01T10:00:00Z"
}

Response

{
  "status": "scheduled",
  "id": "post-uuid",
  "scheduledFor": "2026-04-01T10:00:00Z"
}
GET/api/v1/platformsAuth required

Get connected platforms for your profile

Response

{
  "platforms": [
    {
      "platform": "twitter",
      "connected": true,
      "username": "youraccount",
      "expiresAt": "2026-06-01T00:00:00Z"
    }
  ]
}
GET/api/v1/analytics/[postId]Auth required

Get analytics for a specific post

Response

{
  "postId": "uuid",
  "totals": { "likes": 42, "impressions": 1200 },
  "platforms": [
    { "platform": "twitter", "status": "success", "analytics": { "likes": 25 } }
  ]
}
DELETE/api/v1/platforms/[platform]Auth required

Disconnect a platform

Response

{ "success": true, "platform": "twitter", "disconnected": true }

OAuth Connect Flow

Connect social platforms via the dashboard at /dashboard/profiles/[id]. Each platform redirects through our OAuth handler.

# Initiate OAuth for any platform
GET /api/oauth/[platform]/authorize?profileId=YOUR_PROFILE_UUID
# Callback URL (configure in platform app settings)
https://fanout.digital/api/oauth/[platform]/callback