Pricing and credits
Reading, creating, changing and deleting your own data costs nothing, and so do the calculations over it. API credits pay for work that renders a document, runs a model or buys third-party data, and for each new deal search.
Monthly budget per plan
API credits per calendar month. The budget starts again on the first of the month. A Pro trial carries 100.
- Free25
- Starter50
- Plus150
- Pro500
- Max 5×2,500
- Max 20×10,000
Price per tool
| Action | When | API credits |
|---|---|---|
| deals_document_extract | per call | 2 |
| deals_search | a new query: the first page, no cursor and no offset | 1 |
| deals_search | a later page (cursor from next_cursor, or offset) within an hour of its paid first page | 0 |
| deals_search | a later page with no paid first page in the last hour | 1 |
| deals_search | with count_only, also via POST /api/v1/deals/search/count | 0 |
| deals_text_extract | per call | 1 |
| deals_url_extract | per call | 2 |
| documents_extract | per page, once per document (its first extraction) | 0.02 |
| documents_upload | per page, once per document (its first extraction) | 0.02 |
| portfolio_export_pdf | per call | 2 |
| properties_create | when it creates a property | 1 |
| properties_create | returns an existing property (reused: true) | 0 |
| properties_pdf_export | per call | 2 |
| POST /api/v1/deals/extract/text (REST only) | synchronous | 1 |
| POST /api/v1/deals/extract/url (REST only) | synchronous | 2 |
| POST /api/v1/portfolio/bank-packages/{id}/export (REST only) | per call | 10 |
| every other tool and route | 0 | |
The price is held while the work runs and given back when it fails, so a failed call costs nothing. Text the model judges not to be an exposé is work done and is charged. When the budget cannot cover the price, Leverage refuses the call before any work starts.
Two wallets, never both
API credits
Everything an agent does through an API key or an MCP connector. Every plan comes with a monthly budget.
AI credits
The same work, done inside the Leverage app. One action never bills both wallets.
Always spends AI credits, whoever calls it: routines_run_now
When a limit applies
Every refusal has the same shape, over REST and as an MCP tool error. Branch on data.error, never on the message.
| Status | data.error | What the agent should do |
|---|---|---|
| 402 | api_credit_limit_reached | Do not retry. The monthly budget cannot cover the action; it starts again at resets_at, and a bigger plan raises it (upgrade_url). |
| 403 | plan_upgrade_required | Do not retry without an upgrade. The plan does not include the feature; required_tier names the plan that does. |
| 429 | rate_limit_exceeded | Too many requests. A key may make 60 requests per minute and 10,000 per day, on every plan; some tools have a lower cap, stated on the tool. Repeat the same call after retry_after_seconds. |