Credits and limits

Credits are the currency for video generation. Everything else in the API (rendering, publishing, scheduling, captioning existing footage, registering assets, all reads) is free.

A subscription is not required to create videos: any team with enough credits can generate, whether the credits came from a plan's monthly grant or a one-time top-up. Credit packs are sold at https://faceless.so/billing?tab=credits ($10 for 100 credits, with bonus credits on larger packs). Automated series remain a plan feature: creating a series requires an active subscription, and each episode then spends credits like any other video.

What costs credits

Credits are charged once, at video creation, based on the model:

OperationCost
POST /videos with model: "storyboard"20 credits
POST /videos with model: "motion_lite"50 credits
POST /videos with model: "motion_pro"100 credits
Each series episode (automatic or POST /series/{id}/generate)the series' model cost, 20 to 100

Rendering the MP4 and publishing it are free, and re-rendering does not charge again: once a video is created, you can render and publish it without spending more. Deleting a video does not refund its credits.

GET /options?kind=models returns the model catalog with live costs, so agents can pick a model by budget.

Check the balance (GET /credits, scope credits:read)

bash
curl -s https://faceless.so/api/v1/credits \
  -H "Authorization: Bearer $FACELESS_API_KEY"
json
{
	"success": true,
	"data": {
		"balance": 340,
		"history": [
			{
				"id": "665f1b2a9c31a2b3c4d5e701",
				"credits": -50,
				"type": "spending",
				"description": "Faceless video (motion_lite)",
				"createdAt": "2026-07-30T10:00:00.000Z"
			}
		]
	},
	"pagination": { "page": 1, "limit": 20, "total": 1 }
}

The ledger lists purchases, subscription grants, spends and refunds. GET /me also returns the balance if you only need the number. A well-behaved agent checks the balance before a batch of creations and reports spend after.

Running out: 402 insufficient_credits

A creation the team cannot pay for fails with 402 and error type insufficient_credits. Nothing is charged and nothing is created. Do not retry until the balance changes; top up or upgrade in the dashboard at https://faceless.so/billing.

Plan limits: 403 usage_limit_reached

Paid plans cap how many video projects a team can have. Creating a video past the cap fails with 403 and error type usage_limit_reached even when the credit balance is fine. This is not a scope problem (that is forbidden_scope); the fix is upgrading the plan or deleting old projects, not changing the key. Teams without a subscription have no project cap; they are metered purely by credits, so they only ever see 402 insufficient_credits.

Rate limits

Limits are per API key. Exceeding one returns 429 rate_limited with a Retry-After header in seconds.

OperationLimit
Default (all operations)300 per 60s
POST /videos10 per 60s
POST /videos/captions10 per 300s
POST /videos/{id}/render10 per 300s
POST /series5 per 300s
POST /series/{id}/generate5 per 300s
POST /posts10 per 300s
POST /posts/schedule20 per 300s

Polling GET /videos/{id}/status every 10 to 30 seconds and GET /renders/{id} every 5 to 15 seconds sits comfortably inside the default limit. See errors and rate limits for how to react to 429s and how Idempotency-Key makes retries safe without double-charging.