Skip to main content

API Stability

Flow uses a stability classification system to help you build with confidence. This page defines what each classification means and lists the current stable API surface.

Stability Classifications

Stable

Stable endpoints are production-ready and covered by our backward compatibility guarantee:

  • No breaking changes without a major version bump and deprecation period
  • Fully documented with examples, error codes, and SDK support
  • Tested extensively in production workloads

Beta

Beta endpoints are functional but may change:

  • Available for early adopters and experimentation
  • Not covered by backward compatibility guarantees
  • May be promoted to stable or removed based on feedback
  • Not documented in public docs until promoted

Private

Private endpoints are internal-only:

  • Used by Flow's own applications
  • Not available for external use
  • May change or be removed at any time without notice

Stable API Surface (v1)

The following endpoints are stable and safe to build upon. All endpoints use the base URL https://api.flowsocial.app/v1.

API Keys

Manage API keys for authentication.

MethodEndpointDescription
GET/api-keysList all API keys
POST/api-keysCreate a new API key
GET/api-keys/{id}Get a specific API key
PATCH/api-keys/{id}Update an API key
DELETE/api-keys/{id}Revoke an API key

Channels

Manage content channels for organizing posts.

MethodEndpointDescription
GET/channelsList all channels
POST/channelsCreate a new channel
GET/channels/{id}Get a specific channel
PATCH/channels/{id}Update a channel
DELETE/channels/{id}Delete a channel

Posts

Create, schedule, and manage social media posts.

MethodEndpointDescription
GET/postsList posts (supports filtering, sorting, pagination)
POST/postsCreate a new post (supports Idempotency-Key)
GET/posts/{id}Get a specific post
PATCH/posts/{id}Update a post
DELETE/posts/{id}Delete a post
POST/posts/preflightValidate a post before creating
POST/posts/batchCreate multiple posts
PATCH/posts/batchUpdate multiple posts
DELETE/posts/batchDelete multiple posts

Connections

Manage social media account connections.

MethodEndpointDescription
GET/connectionsList all connections
DELETE/connections/{id}Remove a connection
POST/connections/{id}/add-to-channelAdd connection to a channel
POST/connections/{id}/refreshRefresh connection tokens
POST/connections/{id}/verifyVerify connection status
POST/connections/verify-channel/{channelId}Verify all connections in a channel

OAuth Flows (Browser-based)

These endpoints initiate OAuth flows and must be opened in a browser:

MethodEndpointDescription
GET/connections/twitter/authStart Twitter OAuth
GET/connections/twitter/callbackTwitter OAuth callback
GET/connections/linkedin/authStart LinkedIn OAuth
GET/connections/linkedin/callbackLinkedIn OAuth callback
GET/connections/meta/authStart Meta (Facebook/Instagram) OAuth
GET/connections/meta/callbackMeta OAuth callback
GET/connections/tiktok/authStart TikTok OAuth
GET/connections/tiktok/callbackTikTok OAuth callback

Media

Upload and manage media attachments for posts.

MethodEndpointDescription
POST/media/uploadUpload a media file
GET/media/{key}Get media metadata
DELETE/media/{key}Delete a media file

Webhooks

Configure webhooks for real-time event notifications.

MethodEndpointDescription
GET/webhooksList all webhooks
POST/webhooksCreate a new webhook
GET/webhooks/{id}Get a specific webhook
PATCH/webhooks/{id}Update a webhook
DELETE/webhooks/{id}Delete a webhook
GET/webhooks/{id}/deliveriesGet delivery history
POST/webhooks/{id}/testSend a test event

Usage

Monitor your API usage and limits.

MethodEndpointDescription
GET/usageGet current usage summary
GET/usage/historyGet historical usage data
GET/usage/dayGet usage for a specific day

Beta/Private Endpoints

The following endpoints exist but are not yet stable. Do not rely on them for production integrations:

  • Channels (advanced): seeds, templates, analytics, capacity, context, optimize, AI-optimized posts, share/import, collaborators
  • Analytics: /analytics/usage, /analytics/endpoints, /analytics/errors
  • Metrics: /metrics

These endpoints may be promoted to stable in future releases. Check the Changelog for updates.


Backward Compatibility Promise

For stable endpoints, we guarantee:

  1. No removal of endpoints without a 6-month deprecation notice
  2. No removal of response fields without a deprecation period
  3. No change to the meaning of existing fields
  4. Additive changes only: new optional fields, new endpoints, new optional parameters

We may add new fields to responses at any time. Your code should ignore unknown fields.


Promotion Process

Endpoints move from beta to stable when they meet these criteria:

  1. Contract finalized: Request/response schemas are locked
  2. Error handling complete: All error codes documented
  3. SDK support: Available in TypeScript SDK (Python/Go follow)
  4. Troubleshooting entry: Common issues documented
  5. Examples added: curl + SDK examples for all operations
  6. Production tested: Used successfully in real workloads

See Releasing Endpoints for the full checklist.