# 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.

| Plan | API credits |
| --- | --- |
| Free | 25 |
| Starter | 50 |
| Plus | 150 |
| Pro | 500 |
| Max 5× | 2,500 |
| Max 20× | 10,000 |

What the plans cost: https://leverage.immo/en/pricing/

## 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`. |

Tools: https://leverage.immo/docs/tools/
