FAQ
What are doubloons?
The PiratePress currency: 1 ⛁ = 1 ₽. Prices match the bot: a base
video is 100 ⛁ plus the extras you pick (placement, AI visuals, song,
etc.). What was actually charged is in the cost field of the creation
response. Top-ups happen in the bot: /balance (card/SBP via Platega or
Telegram Stars).
What are the limits?
Per key: 10 active tasks (queued + running) and 30 POST per
minute; beyond that — 429 with Retry-After (see
Error codes). API tasks run in a separate queue with lower
priority than bot users: the ETA in eta_seconds is honest, but it can
drift at peak hours — design for polling/webhooks, not a fixed duration.
Does the trial work through the API?
Yes. Newcomer free videos (the starter pack from /start in the bot) are
applied automatically until exhausted — including orders placed through
the API. Trial videos carry the mandatory piratepress.fun (AI)
watermark, same as in the bot. Once the trial is spent, orders cost
doubloons; an empty balance means 402 insufficient_funds.
What is director mode?
director_mode: true in POST /videos — generation pauses after the
script: the order moves to awaiting_review (a video.awaiting_review
webhook arrives). Your decision goes to POST /videos/{id}/review:
{"action": "approve"}— script is fine, keep generating;{"action": "edit", "text": "…"}— generate from your edited text;{"action": "regen", "note": "…"}— rewrite the script with a wish.
A 409 not_awaiting_review response means the order isn't waiting for a
review right now.
Where is the full reference?
Interactive (Scalar): https://api.piratepress.fun/public/v1/docs.
Raw schema: https://api.piratepress.fun/public/v1/openapi.json — SDK
types are generated from it. The /public/v1 contract is frozen: changes
are additive only; breaking ones go to /public/v2.
My key leaked — what now?
/apikey in the bot → revoke. A revoked key starts getting 401
immediately. Note: /stop in the bot deletes the whole account — the key
dies with it, and orders and files are erased for good.
How long do results live?
Order files (mp4, covers, posting pack) are stored for 30 days, then
deleted — download right away. The signed result_url lives 7 days:
if it expired, just re-request GET /videos/{id} for a fresh one.
Are there SDKs?
Python (piratepress, PyPI) and JS (@piratepress/sdk, npm): thin
clients over this very contract — retries, Retry-After, automatic
Idempotency-Key, and a webhook-signature helper out of the box. If you
write your own client, treat the OpenAPI schema as the source of truth.
Still curious — @piratepress_support.