Documentation menu

Integrations

TimeToPost publishes through each platform’s official API, authorized by you via OAuth. No passwords are stored. You grant access on the platform’s own consent screen, and you can revoke it there or in TimeToPost at any time. This page covers the connect flow for core social accounts, what to do when a connection expires, and why support differs by network and post type.

X (Twitter) is the only network that publishes for customers today. Instagram, TikTok, Facebook, LinkedIn, Threads, Pinterest, and YouTube have adapters built and documented below, but they are not open to publish through yet: the sections for those networks describe the workflow as it is built and will work once each channel launches, not what you can post to today.

How connecting works

Every platform follows the same pattern: in Dashboard → Integrations, click Connect next to a platform. TimeToPost requests an authorization URL from the backend (GET /api/integrations/:provider/auth) and opens it in a popup. You log in on the platform, approve the permissions, and the platform redirects back to TimeToPost’s callback, which stores the access token and account details. The popup closes and the account appears in your list with status connected. You can connect multiple accounts per platform and group them into collections (handy for agencies).

Instagram (coming soon)

  • Account type: a Professional account (Business or Creator) is required. Meta’s API does not allow publishing to personal Instagram accounts.
  • What you grant: permission to publish media and read basic profile and engagement data, which powers the best-time-to-post analytics.
  • Content rules: Instagram posts must include at least one image or video; caption-only posts are rejected by the platform.

Other providers (coming soon)

TimeToPost also has provider paths for Pinterest, LinkedIn, Facebook Pages, and YouTube. None of these are open to customers as social publishing channels yet. Separately, the AutoSEO Blog Autopilot already publishes articles to your own website today (hosted, webhook, WordPress REST, or git-based connectors) and is not part of this social publishing roadmap. Check the dashboard capability map or MCP get_capabilities for the current, live state before promising a specific post type.

TikTok (coming soon)

  • Account type: any TikTok account; you authorize with the account you want to post from.
  • What you grant: video upload/publish permission plus read access to video performance metrics.
  • Content rules: TikTok is video-first: schedule posts with a video attached. Upload media first (see media uploads) and reference it from the post.

X (Twitter), live today

  • Account type: any X account. In the API the provider is named twitter.
  • What you grant: permission to post on your behalf and read tweet metrics.
  • Content rules: text-only posts are fine; images and video are optional.

Connection statuses

Each connected account has a status: connected (healthy), expired (the platform token lapsed and needs re-authorization), error (the last operation failed, details are kept with the account), and disconnected (you removed it). Posts only publish through connected accounts.

Reconnecting when a token expires

Platform tokens have finite lifetimes: notably, long-lived Meta tokens last about 60 days, and TikTok tokens refresh on a shorter cycle. TimeToPost refreshes tokens proactively in the background, but a connection can still expire if, for example, you change your password on the platform or revoke the app there.

When that happens:

  1. The account’s status flips to expired on the Integrations page.
  2. The composer shows a reconnect prompt on that account instead of letting you target it silently, so you find out before a scheduled post fails, not after.
  3. Click Reconnect: it runs the same OAuth popup as the first connection. Your scheduled posts, groups, and analytics history are untouched. Only the token is replaced.

If a post does fire while an account is expired, that account’s result fails and the post lands in FAILED or PARTIAL (multi-account) status. Reconnect, then republish.

For API users

List your connected accounts
curl https://timetopost.co/api/integrations \
  -H "Authorization: Bearer ttp_your_token_here"

# Each integration includes: id, provider, accountName, status, capabilities

Use the integration id values as accountIds when creating posts via the API, and check status before scheduling to catch expired connections early.