Docs

Platform Support

Which platforms FeedHorizon publishes to, what each one accepts, and how accounts connect.

Supported platforms

PlatformAPI idTextFiles per postFile typesMax file sizeStatus
X (Twitter)twitter280up to 4 files, or noneJPEG, PNG, GIF; MP4—Live
LinkedInlinkedin3,0001 file, or noneJPEG, PNG, GIF; MP4; PDF—Live
Instagraminstagram2,2001 to 10 files, requiredJPEG, PNG; MP4—Live
Blueskybluesky300up to 4 files, or noneJPEG, PNG, WebP, GIF1 MBLive
Pinterestpinterest5001 to 5 files, requiredJPEG, PNG, WebP20 MBLive
TikToktiktok2,2001 file, a video is requiredMP4, MOV, WebM—Beta

Planned: Facebook, YouTube, Threads.

LinkedIn posts go to personal profiles; company pages are planned. TikTok is in beta: until TikTok has approved FeedHorizon, videos can only be posted as private (SELF_ONLY). Facebook, Threads and YouTube already show up in GET /api/v1/platforms with available: false until they launch.

GET /api/v1/platforms returns the same limits as JSON, straight from the rules the API checks posts against. This table is generated from them too.

How multi-platform posting works

When you create a post for several accounts, FeedHorizon:

  1. Checks the content against each platform's rules before storing anything
  2. Publishes to each account independently
  3. Tracks success and failure per account
  4. Returns one entry in targets per account, with its own status, native post id and URL
{
    "data": {
        "id": "post_9b2f4c1e6a3d4e8b9f0a1c2d3e4f5a6b",
        "status": "published",
        "targets": [
            {
                "platform": "linkedin",
                "status": "published",
                "platformPostId": "urn:li:share:7654321",
                "platformUrl": "https://www.linkedin.com/feed/update/urn:li:share:7654321"
            }
        ]
    }
}

Connecting accounts

Accounts are connected by the account owner, never with a password through the API:

  • In the dashboard: open Connections, pick a profile and click Connect for the platform.
  • With a connect link: create one with POST /api/v1/platform-invites (or the MCP tool create_connect_link) and send it to your client. See Connect links.

Bluesky uses an app password instead of an OAuth redirect; everything else uses the platform's own sign-in. Once connected, the account appears in GET /api/v1/accounts.

Disconnecting accounts

curl -X DELETE https://feedhorizon.com/api/v1/accounts/ACCOUNT_ID \
  -H "Authorization: Bearer fh_YOUR_API_KEY"

This removes the account and its stored tokens from FeedHorizon. Its scheduled posts on this account are deleted with it. Posts already published stay on the platform. FeedHorizon's access is not revoked at the platform; the user can remove FeedHorizon in the platform's app settings.