Limits and pricing
eContract is free with fair-use caps. Rate limits per API key or OAuth grant (60/min, 1,000/h, 10,000/day) and file and request size limits.
Pricing
eContract is free right now: every feature, the REST API, OAuth and the MCP server included. There are no paid plans to buy; checkout, billing portal and plan-change endpoints answer 410 BILLING_DISABLED.
Paid plans may come later. If they do, you will be told at least 30 days in advance, and your contracts and data stay yours.
Instead of plan quotas there are fair-use caps that protect the service from abuse. Hitting one answers 429 with code: USAGE_LIMIT_REACHED and a Retry-After header. It is never a payment prompt.
What the free plan includes
| Limit | |
|---|---|
| Contracts (documents) | Unlimited |
| Users per workspace | Unlimited |
| Templates and custom templates | Unlimited |
| Workspaces per user | 3 |
| Storage per workspace | 5 GB (checked when uploading through POST /api/v1/files/upload) |
| Features (AI assistant, API, webhooks, signature types, …) | All enabled |
Fair-use caps
Daily caps count per UTC day and reset at 00:00 UTC.
| What | Cap | Answer when reached |
|---|---|---|
| Invitation and OTP emails | 100 per workspace per day | Invitations are skipped for the rest of the day (the signer stays un-notified, so you can resend later); POST /otp/send and resends answer 429 USAGE_LIMIT_REACHED (metric: "emails") |
AI calls (/api/v1/ai/*: text extraction, contract analysis) | 30 per user per day | 429 USAGE_LIMIT_REACHED (metric: "ai_calls") |
| AI spend safety net | USD 1.00 of model cost per user per day | 429 USAGE_LIMIT_REACHED (metric: "ai_cost") |
AI prefill of a contract (POST /api/v1/contracts/{id}/prefill) | 30 per user and 100 per workspace per day | 429 with code: AI_DAILY_LIMIT |
| Account signups | 5 per IP address per day | 429 USAGE_LIMIT_REACHED (metric: "signups") |
| Workspaces | 3 per user | 429 USAGE_LIMIT_REACHED (metric: "workspaces") |
| Storage | 5 GB per workspace | 429 USAGE_LIMIT_REACHED (metric: "storage") |
A machine credential counts against the caps of its user (the key creator, or the person who connected the OAuth app) and of its workspace.
Rate limits
| Scope | Limit |
|---|---|
| Each API key or OAuth grant, REST API | 60 per minute, 1,000 per hour, 10,000 per day (details) |
| Each API key or OAuth grant, MCP server | 60 per minute (separate from the REST limits) |
| Each client IP at the gateway | 120 per minute, 5,000 per hour (/mcp and /oauth/*: 3,000 per minute, 60,000 per hour) |
Account endpoints (/api/v1/auth/*, /api/v1/webhooks, …), per IP | 100 per minute |
POST /oauth/register, per IP | 300 per hour |
POST /oauth/token, per client and IP | 600 per minute |
| Client ID Metadata Document fetches, per client host | 60 per minute |
POST /api/v1/verify/pdf, per IP | 10 per minute |
POST /verify-pdf, per IP | 50 per day |
POST /api/v1/otp/send, per signing link | 1 per minute |
Size and count limits
| What | Limit |
|---|---|
| Request body at the edge | 50 MB per request |
Files per contract (POST /contracts/send) | 10 |
| One file | 50 MB, PDF or DOCX only (checked from the bytes, not the name) |
| Base64 files in a JSON body | Base64 adds a third, so the files of one JSON request can total about 37 MB. Use files[].url or multipart for more |
files[].url downloads | https only, public addresses only, no redirects, 30 s, 50 MB |
Signers per contract (POST /contracts/send) | 100 (the MCP send_contract tool: 50) |
| MCP documents (upload and download) | 10 MB |
| Page size of list endpoints | 100 (larger values are capped) |
| Contract expiry | 90 days by default, expiresInDays 1–3650 |
| Signing links | Valid until the contract expires (30 days when it has no future expiry) |
| Active API keys per workspace | 10 |
| Active webhooks per workspace | 20 |
| Webhook payload | 64 KB |
Idempotency-Key | 255 characters, results kept 24 h |