ofapisv1
capability

OnlyFans Scheduling API

Queue a creator's posts and messages to go out later, straight from your own tooling. The ofapis OnlyFans scheduling API turns a content calendar into a set of REST calls: create a scheduled item with a future timestamp, read how full the queue is, and delete anything before it fires. Every route is account-scoped, so an agency can run one calendar per creator across a roster.

What you can do

Endpoints

GET    /api/public/v1/accounts/{accountId}/scheduled/posts
GET    /api/public/v1/accounts/{accountId}/scheduled/posts/counters
POST   /api/public/v1/accounts/{accountId}/scheduled/posts
DELETE /api/public/v1/accounts/{accountId}/scheduled/posts/{postId}
POST   /api/public/v1/accounts/{accountId}/scheduled/messages
DELETE /api/public/v1/accounts/{accountId}/scheduled/messages/{queueId}

Schedule a post

curl -X POST \
  https://api.ofapis.com/api/public/v1/accounts/42/scheduled/posts \
  -H "Authorization: Bearer ofapis_sk_..." \
  -H "Content-Type: application/json" \
  -d '{"mediaFiles":[88123],"scheduledAt":"2026-08-14T18:00:00Z"}'

Send scheduledAt as UTC (Z) — timezone-naive strings are ambiguous and rejected. The create returns the queued item's id; hold onto it if you may want to cancel later. Each successful create debits one credit; a rejected create (bad timestamp, expired session) is not charged.

Read the queue

curl "https://api.ofapis.com/api/public/v1/accounts/42/scheduled/posts/counters" \
  -H "Authorization: Bearer ofapis_sk_..."

The counters endpoint is the cheap way to drive a calendar badge — poll it and only pull the full posts list when the number changes. The list route paginates, so page through it rather than assuming one response holds the whole queue.

When to use it

Build a content calendar UI, a cross-account scheduler for an agency, or a bot that drip-feeds promo posts on a fixed cadence. A common pattern: upload assets through the vault media API first, then reference them when you schedule the post. To turn a scheduled drop into a broadcast, pair scheduling with the mass DM API. For deletions and reschedules, delete the old item and create a new one — there is no in-place edit, which keeps state on your side predictable.

See the step-by-step scheduling guide for a worked example, or the Node quickstart to wire it into a job runner.

FAQ

Can I schedule both posts and messages?

Yes. Scheduled posts and scheduled messages have separate create endpoints (/scheduled/posts and /scheduled/messages) so you can drive a feed calendar and a DM calendar independently.

Can I cancel a scheduled item after creating it?

Yes, as long as it has not fired yet. Delete a post by its postId or a message by its queueId, and the item is removed from the queue.

How do I reschedule a post to a new time?

There is no in-place edit. Delete the existing queued item and create a new one with the updated scheduledAt. Both calls are cheap and idempotent from your side.

Does scheduling cost credits?

One credit per successful create. Reading the queue and counters also costs one credit per call, but failed calls — such as a rejected timestamp or an expired session — are never billed. See pricing for plan limits.

Get a free token · Browse the full API

Related: Posts API · Scheduling tool

Related guides

All guides
Start free — 250 credits, no card
Generate a token and make your first call in minutes.
Get started