ofapisv1
capability

OnlyFans Posts API

Publish to a creator's feed from your own tooling. The OnlyFans posts API in ofapis manages feed posts through the scheduled posts resource: you attach vault media and give it a timestamp for when it should go live. Every route is account-scoped, so an agency runs one feed per creator from a single key.

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}

There is no separate "publish-now" route — the scheduled endpoint is how posts are created. To go live as soon as possible, set the timestamp to now (or the next minute).

Create a post

A scheduled feed post attaches vault media and a publish time:

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,88124],"scheduledAt":"2026-07-25T18:00:00Z"}'

mediaFiles reference files already in the account's vault — upload them first with the media upload API (POST /accounts/{accountId}/media), then pass the returned ids. The response is {"data":{"id":222333444}}. A successful create debits one credit; a rejected create (bad media id, expired session) is free.

Captions and pay-per-view pricing aren't parameters of the scheduled-posts endpoint — for a priced drop, send a PPV message instead.

List the queue

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

GET /scheduled/posts/counters returns how many posts are queued, so a dashboard can show the backlog without paging the full list.

Use cases

Gotchas

FAQ

How do I publish a post immediately?

Create it on the scheduled endpoint with scheduledAt set to the current time — there is no separate instant-publish route, the scheduled queue is how every post is created.

How do I attach photos or video to a post?

Upload the files to the vault first with POST /accounts/{accountId}/media, then pass the returned ids as mediaFiles on the create call. The endpoint references existing vault media rather than accepting raw uploads inline.

Can I make a feed post pay-per-view?

Not through the scheduled-posts endpoint — it only takes mediaFiles and scheduledAt. For paid content, send a PPV message with a price instead.

Does listing the feed cost credits?

One credit per successful call, the same as any read. Failed calls — an expired session or upstream error — are never billed. See pricing.

Start free · Schedule posts guide · API reference

Related guides

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