# Preise und Credits

Eigene Daten lesen, anlegen, ändern und löschen kostet nichts, die Berechnungen darauf auch nicht. API-Credits kostet Arbeit, die ein Dokument erzeugt, ein Modell rechnen lässt oder Daten Dritter kauft, und jede neue Deal-Suche.

## Monatsbudget je Plan

API-Credits je Kalendermonat. Das Budget beginnt am Monatsersten neu. Eine Pro-Testphase bringt 100.

| Plan | API-Credits |
| --- | --- |
| Kostenlos | 25 |
| Starter | 50 |
| Plus | 150 |
| Pro | 500 |
| Max 5× | 2.500 |
| Max 20× | 10.000 |

Was die Pläne kosten: https://leverage.immo/preise/

## Preis je Werkzeug

| Aktion | Wann | API-Credits |
| --- | --- | --- |
| `deals_document_extract` | je Aufruf | 2 |
| `deals_search` | neue Suche: die erste Seite, ohne `cursor` und `offset` | 1 |
| `deals_search` | weitere Seite (`cursor` aus `next_cursor`, oder `offset`) innerhalb einer Stunde nach der bezahlten ersten | 0 |
| `deals_search` | weitere Seite ohne bezahlte erste Seite in der letzten Stunde | 1 |
| `deals_search` | mit `count_only`, auch über `POST /api/v1/deals/search/count` | 0 |
| `deals_text_extract` | je Aufruf | 1 |
| `deals_url_extract` | je Aufruf | 2 |
| `documents_extract` | je Seite, einmal pro Dokument (bei der ersten Extraktion) | 0,02 |
| `documents_upload` | je Seite, einmal pro Dokument (bei der ersten Extraktion) | 0,02 |
| `portfolio_export_pdf` | je Aufruf | 2 |
| `properties_create` | legt eine Immobilie an | 1 |
| `properties_create` | gibt eine vorhandene zurück (`reused: true`) | 0 |
| `properties_pdf_export` | je Aufruf | 2 |
| `POST /api/v1/deals/extract/text` (nur REST) | synchron | 1 |
| `POST /api/v1/deals/extract/url` (nur REST) | synchron | 2 |
| `POST /api/v1/portfolio/bank-packages/{id}/export` (nur REST) | je Aufruf | 10 |
| alle anderen Werkzeuge und Routen | | 0 |

Der Preis wird reserviert, solange die Arbeit läuft, und zurückgegeben, wenn sie scheitert: Ein fehlgeschlagener Aufruf kostet nichts. Text, den das Modell nicht als Exposé erkennt, ist erledigte Arbeit und wird berechnet. Reicht das Budget nicht, lehnt Leverage den Aufruf ab, bevor die Arbeit beginnt.

## Zwei Guthaben, nie beide

- **API-Credits**: Alles, was ein Agent über einen API-Schlüssel oder einen MCP-Connector tut. Jeder Plan bringt ein Monatsbudget.
- **KI-Credits**: Dieselbe Arbeit, in der Leverage-App erledigt. Eine Aktion belastet immer nur eines der beiden Guthaben.

Zahlt immer mit KI-Credits, egal wer es aufruft: `routines_run_now`

## Wenn eine Grenze greift

Jede Ablehnung hat denselben Aufbau, über REST und als MCP-Fehler. Entscheidend ist `data.error`, nicht der Text.

| Status | data.error | Was der Agent tun sollte |
| --- | --- | --- |
| 402 | `api_credit_limit_reached` | Nicht wiederholen. Das Monatsbudget reicht nicht; es beginnt zu `resets_at` neu, ein größerer Plan hebt es an (`upgrade_url`). |
| 403 | `plan_upgrade_required` | Nicht ohne Upgrade wiederholen. Der Plan enthält die Funktion nicht; `required_tier` nennt den Plan, der sie hat. |
| 429 | `rate_limit_exceeded` | Zu viele Anfragen. Ein Schlüssel darf 60 Anfragen pro Minute und 10.000 pro Tag stellen, auf jedem Plan; einige Werkzeuge haben eine niedrigere Grenze, die bei ihnen steht. Denselben Aufruf nach `retry_after_seconds` wiederholen. |

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