Usage points and financial budgets
Control request volume and monetary spending independently.
Usage points
REST and MCP consume nonmonetary usage points according to the operation. Points protect request-processing capacity; they are separate from purchased NDNCI credits and cannot pay for provider work.
Usage is aggregated across keys and both transports for the selected workspace. Creating more keys does not multiply its available quota.
| Plan | Points per minute | Points per month | Active keys | Running jobs | Waiting jobs | Concurrent SSE streams |
|---|---|---|---|---|---|---|
| Free | 240 | 10,000 | 5 | 1 | 3 | 0 |
| Starter | 1,200 | 200,000 | 20 | 3 | 50 | 0 |
| Pro | 3,600 | 1,000,000 | 50 | 6 | 100 | 3 |
The table shows the default plan configuration shipped with NDNCI. Workspace limits can change. The usage endpoint returns the workspace's currently enforced limits, counters and reset times. Organization limits apply to the shared workspace rather than multiplying with its member count.
Operation weights
| Operation | Usage points |
|---|---|
GET /v1/workspaces | 2 |
GET /v1/tools | 2 |
POST /v1/estimates | 4 |
POST /v1/runs | Operation-specific |
GET /v1/jobs | 2 |
GET /v1/jobs/{jobId} | 1 |
GET /v1/jobs/{jobId}/output | 2 |
POST /v1/jobs/{jobId}/cancel | 2 |
POST /v1/jobs/{jobId}/retry | Operation-specific |
GET /v1/queue | 1 |
GET /v1/balance | 2 |
GET /v1/transactions | 2 |
GET /v1/media | 2 |
GET /v1/media/{mediaId} | 1 |
POST /v1/media/upload | 10 |
GET /v1/media/{mediaId}/download | 2 |
GET /v1/jobs/{jobId}/stream | 3 |
GET /v1/usage | 1 |
GET /v1/events | 2 |
GET /v1/webhooks | 2 |
POST /v1/webhooks | 5 |
POST /v1/webhooks/{webhookId}/update | 5 |
POST /v1/webhooks/{webhookId}/revoke | 2 |
POST /v1/webhooks/{webhookId}/rotate | 5 |
GET /v1/webhooks/{webhookId}/deliveries | 2 |
POST /v1/webhooks/{webhookId}/deliveries/{deliveryId}/replay | 10 |
Tool execution and job retries use the following operation-specific weights. The estimate returns the applicable weight before work starts.
| Operation | Usage points |
|---|---|
link.preview | 4 |
chat.generate | 10 |
speech.generate | 15 |
image.generate | 25 |
headshot.generate | 35 |
background.remove | 15 |
video.generate | 100 |
video.edit | 120 |
music.generate | 50 |
three-d.generate | 100 |
three-d.rig | 50 |
sprite.generate | 200 |
voice.clone | 75 |
security.scan | 80 |
Security controls, scoped access, optional IP restrictions and monetary budgets are available on every plan. Pro adds bounded SSE streams; polling and signed webhooks remain available across plans.
Financial budgets
Set daily, weekly and monthly monetary ceilings for a key. A workspace ceiling limits the combined automation spending of all its keys and transports. Both ceilings must permit the operation.
All financial amounts use integer millicents: one payment cent equals one thousand millicents. Use the API's monetary fields directly, and convert only at the display boundary.
NDNCI reserves the operation's bounded maximum cost before accepting costly work. The held amount reduces spendable credits and available budget while the job waits or runs. An estimate is informative; it does not itself authorize unbounded provider output.
Unused holds are released on settlement or eligible cancellation. Consumed provider work is accounted even when an operation fails. In-flight reservations remain part of budget admission when a calendar period changes.
Daily periods reset at midnight UTC, weekly periods start on Monday UTC, and monthly periods start on the first day of the month UTC. Read the returned reset timestamps instead of calculating a delay from the device's local timezone.
Handle limits and repeated abuse
A normal quota or concurrency limit returns HTTP 429 and a Retry-After delay. Pause, add randomized backoff, and reduce parallel requests. Do not keep retrying immediately.
Repeated abuse by an authenticated key can temporarily suspend that key. The returned recovery time indicates when it may be used again. Ordinary rate limiting does not permanently ban the account, and unauthenticated attempts do not let another party suspend a victim's key.
Use webhooks for completion notifications and Pro SSE when you need live progress.