Skip to main content

Introduction

The social posting APIs let you take an Opus clip that already exists and distribute it to connected channels without leaving your workflow.

Workflow

Use the following workflow when you want to turn completed clips into social posts.
1

Step 1: Get Social Accounts

Call Get Social Accounts first so you know which connected destinations are available and which postAccountId and subAccountId values to use later.
curl --request GET \
--url 'https://api.opus.pro/api/social-accounts?q=mine' \
--header 'Authorization: Bearer <API_KEY>'
2

Step 2: Create a Project

Submit your source video with Create a New Project. This starts the normal Opus clipping workflow and returns a projectId.
3

Step 3: Wait for Project Completion

Wait for the project-completed callback from OpusClip, or otherwise confirm the project has finished processing before you try to fetch exportable clips.
4

Step 4: Fetch Clips

After the project is complete, call Get Clips to retrieve the clips created for that projectId.
curl --request GET \
--url 'https://api.opus.pro/api/exportable-clips?q=findByProjectId&projectId=<PROJECT_ID>' \
--header 'Authorization: Bearer <API_KEY>' \
--header 'x-opus-org-id: <ORG_ID>'
5

Step 5: Generate Social Copy

For each clip and each selected social destination, call Create a Social Copy Generation Job, then poll Get Social Copy Generation Result until the job status is COMPLETED.
6

Step 6: Publish or Schedule

If the post should go out immediately, call Publish a Post Instantly. If it should go out later, call Schedule a Post with a future UTC timestamp.
7

Step 7: Cancel a Scheduled Post

If a scheduled post needs to be withdrawn before publish time, call Cancel a Scheduled Post with the scheduleId returned by the scheduling call.

Supported Platforms

Connected accounts may report one of these platform values:
  • YOUTUBE: YouTube channel
  • TIKTOK_BUSINESS: TikTok account
  • FACEBOOK_PAGE: Facebook account
  • INSTAGRAM_BUSINESS: Instagram account
  • LINKEDIN: LinkedIn account
  • TWITTER: X (formerly Twitter) account

Rate Limits

  • GET /api/social-accounts: 10 req/s
  • POST /api/social-copy-jobs: 1 req/s
  • GET /api/social-copy-jobs/{jobId}: 10 req/s
  • POST /api/post-tasks: 1 req/s
  • POST /api/publish-schedules: 1 req/s
  • DELETE /api/publish-schedules/{scheduleId}: 1 req/s

Credit Consumption for X

When posting clips to X, each post consumes 1 credit. This applies to:
  • instant publishing with POST /api/post-tasks
  • scheduled publishing with POST /api/publish-schedules

Endpoints

Get Social Accounts

List the connected social destinations available for posting.

Create Social Copy Job

Generate post copy for a clip with optional tone guidance.

Get Social Copy Result

Poll a social copy job until the generated content is ready.

Publish Instantly

Publish a clip immediately to a connected social account.

Schedule a Post

Queue a clip for future publishing with a UTC timestamp.

Cancel a Scheduled Post

Cancel an existing scheduled publish task.