Limits
Hard limits, quotas, and rate caps across the Motioness API.
Limits
Per-tier monthly generation quota
| Tier | Generations/month | Models | Loop | Aspect |
|---|---|---|---|---|
| Free | 5 | wan-fast | crossfade | preserve only |
| Pro ($19/mo) | 100 | + seedance | native | full |
| Team ($79/mo) | 500 | + p-video | native | full |
mode=loop counts as one generation despite running two Replicate calls. Regenerate counts as one.
Pro+ supports overage at $0.10/gen (Pro) or $0.08/gen (Team). Toggle in Project → Settings → Billing.
Source image
| Limit | Value |
|---|---|
| Format | png / jpg / webp |
| Max size | 10 MB |
| Min dimension | 256px |
| Max dimension | 4096px on either axis |
SVGs return 415 — re-render to PNG first.
Output mp4
| Limit | Value |
|---|---|
| Duration | 2-8 seconds |
| Aspect | preserved or 1:1 / 16:9 / 9:16 |
| Codec | H.264 baseline |
| Container | MP4 |
| Audio | None |
API rate limits
| Endpoint group | Per-user/min |
|---|---|
/api/v1/prepare | 60 |
/api/assets/:id/regenerate | 30 |
/api/projects/:id/deep-crawl | 10 (Firecrawl-bounded) |
/api/projects/:id/webhooks/test | 30 |
| Other authenticated endpoints | 300 |
Rate-limited responses return 429 { error: 'rate limited', retry_after_ms: <number> } with Retry-After header.
Proxy URL
| Limit | Value |
|---|---|
| Source URL length | 2048 chars (path post-base64 ≤ 4096) |
| Project keys per user | unlimited |
| Allowed origins per project | 50 |
| Webhook deliveries kept | last 1000 per project |
Webhooks
| Limit | Value |
|---|---|
| Max retries before dead | 5 |
| Customer endpoint timeout | 10 seconds |
| Replay-attack window | 5 minutes |
SSE
| Limit | Value |
|---|---|
| Connection cap | 5 minutes per connection |
| Heartbeat | every 15 seconds |
| Concurrent SSE per asset | unlimited (fan-out is in-process) |
OpenAPI spec
The full machine-readable spec lives at:
texthttps://motioness.com/api/openapi.json
Use it with openapi-generator, Mintlify, Stoplight, or any tool that supports OpenAPI 3.1.