Quotas & Credits
Creating signature requests consumes API credits and storage. This guide explains how credits are decremented, what happens when quotas are exhausted, and which error codes to handle.
API credits
Each successful creation decrements 1 API credit:
POST /signature-requests→201 Createddecrements 1 credit.POST /bulk-signature-requests→ a processed batch decrements 1 credit.
Read operations (GET /templates, status lookups, categories, public links) do not consume credits, but they still count toward the rate limit.
Monthly quota
When monthly API credits are exhausted (api_credits_available <= 0), creation endpoints return:
| Endpoint | Code | Error code |
|---|---|---|
| POST /signature-requests | 403 |
MONTHLY_API_QUOTA_EXCEEDED |
| POST /bulk-signature-requests | 403 |
CREDIT_LIMIT_REACHED |
Upgrade the plan or wait for the next billing cycle to restore credits.
Storage limits
Each account has a storage quota for its active plan. When exceeded, POST /signature-requests returns 403 STORAGE_LIMIT_EXCEEDED. Free storage by permanently deleting documents or templates you no longer need, or upgrade the plan.
Rate limits vs. quotas
Rate limits and quotas are enforced independently:
- Rate limit: 100 requests per minute per company. Exceeding it returns
429 RATE_LIMIT_EXCEEDED. Back off and retry. See Rate Limits. - Quota: monthly credit budget. Exceeding it returns
403and retrying will not help until credits are restored.
Handling quota errors
- Check the
error.codefield, not just the HTTP status, to distinguish quota exhaustion from validation failures. - Log the
request_idfrom every error response for support. - Surface a clear message to operators when credits run out instead of retrying in a loop.