Skip to main content
The Partner API is for products that publish on behalf of their own users (your “end users”). PostOnce enables it per account; contact support@postonce.to to become a partner. Partner connections support YouTube, TikTok and Instagram. Your end users never create a PostOnce account. They click connect in your product, approve on the platform’s own consent screen, and land back in your product.
Keep your API key on your server. Every request below is made from your backend.

1. Connect an end user’s account

Call the connect endpoint with your own user id and an allowed redirect URL. Allowed redirect URLs are configured for your partner account; the value must match one of them exactly (scheme, host and path).
Send the end user’s browser to authorization_url within 5 minutes. After they approve, PostOnce redirects them to your redirect_url with: Instagram requires a Business or Creator account. Where end users connect YouTube, link to the YouTube Terms of Service and the Google Privacy Policy.

2. List an end user’s accounts

Each account includes external_user_id and status. An account with status auth_required needs the end user to connect again.

3. Build a compliant TikTok posting screen

TikTok requires the screen your end users post from to follow its Content Sharing Guidelines. Load the creator’s current settings right before showing the screen:
Your posting screen must:
  • Show creator_nickname, so the end user knows which account receives the video.
  • Offer a privacy dropdown built from privacy_level_options, with no default selected.
  • Offer Comment, Duet and Stitch toggles, all off by default, greyed out when the matching *_disabled value is true.
  • Offer a “Disclose video content” toggle (off by default) with “Your brand” and “Branded content” options. Branded content can’t be private.
  • Show “By posting, you agree to TikTok’s Music Usage Confirmation” (plus the Branded Content Policy when branded content is selected).
  • Show a preview, and start the upload only after the end user explicitly confirms.
Pass the end user’s choices as TikTok platform_options:

4. Publish for an end user

Include external_user_id so PostOnce rejects any target that belongs to a different end user (403 account_not_owned_by_user).
Add publish_at to schedule instead of publishing now. Poll GET /v1/posts/{id} for per-target status, and list an end user’s posts with GET /v1/posts?external_user_id=user_8f21.

Billing

Billing is per successful post: one video published to one account. Failed posts and retries are free. Choose Pay as you go or Growth in the Developers page of your PostOnce dashboard; usage is billed monthly.