> ## Documentation Index
> Fetch the complete documentation index at: https://developers.investorlift.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plans and limits

> The credits, requests and page size of each plan, what a credit is, the 403 and 429 you meet at a limit, and support.

Every key on `api.investorlift.com` belongs to a plan. A plan sets a monthly allowance of **credits**, a per-minute and
a per-day limit on requests, and a largest page. On the two small plans it also sets how wide a search can be. This
page is the behaviour. The prices and the checkout are on the console, through [Pricing](/pricing), so this page never
restates a number the console shows. Every plan sees every covered market, because coverage is a label on the response
(`meta.coverage[]`) and not a line on the bill.

Investorlift sells two products outside the plans: `GET /v1/str-parcels`, per jurisdiction under an order form, and the
Market Buyer File, per metro, when it ships.

<Note>
  The Free plan is open. The paid plans open for subscription when Investorlift publishes them on the console. If a paid
  plan's allowance changes before then, this page and the console's rate cards change together.
</Note>

## What counts

The API charges a credit for a deal, an investor or a parcel the first time your account gets it, on any route or tool.
To read it again costs nothing while the plan has credit. At the line, the charged routes stop for re-reads too (below).

| Response                                                                                                                                                                                           | Credits                                              |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| A deal, investor or parcel your account gets for the first time, on any route or tool                                                                                                              | 1, once                                              |
| The same deal, investor or parcel again, on any route                                                                                                                                              | 0, while the plan has credit                         |
| `GET /v1/buyers/match`                                                                                                                                                                             | 2 a call, plus 1 per investor new to your account    |
| A parcel sub-resource (`/financing`, `/permits`, `/history`, `/listing-history`) on a parcel your account already holds                                                                            | 0. On a parcel new to your account, 1 for the parcel |
| `GET /v1/deals/cells`, `GET /v1/deals/summary`, `GET /v1/properties/resolve`, `GET /v1/markets/{market}/changes`, `GET /v1/dataset`, `GET /v1/coverage`                                            | 0                                                    |
| `GET /v1/investors/search`                                                                                                                                                                         | 0, capped per day by plan (below)                    |
| `GET /v1/lenders/search`, `GET /v1/lenders`, `GET /v1/lenders/{id}`, `GET /v1/lenders/{id}/loans`, `GET /v1/lenders/{id}/borrowers`, `GET /v1/lenders/{id}/rankings`, `GET /v1/lenders/{id}/cells` | 0 in the beta                                        |
| `initialize`, `tools/list`, `resources/*` and `prompts/*` over `/mcp`                                                                                                                              | 0                                                    |

Which entity a route charges:

* `GET /v1/deals`, `GET /v1/deals/{id}` and `GET /v1/investors/{id}/deals` charge the deal.
* `GET /v1/investors` and `GET /v1/investors/{id}` charge the investor.
* `GET /v1/properties/{property_id}`, `POST /v1/properties/search` and the five sub-resources charge the parcel. The
  five sub-resources are financing, permits, history, listing history and comps.

The API charges only a route's primary entity. The investor named on a deal row is a reference, not a second credit.
The API does not charge the parcel under a deal until you open it. Comps cost 2 a call plus 1 per comp parcel new to
the account, like the match. Likely buyers, when they exist, cost the same per investor.

The API charges a credit once per account. So a re-read of the same deal, investor or parcel is free while the plan
has credit. The count survives a plan change. An account idle for about thirteen months starts again.

The API charges only a successful response. A call the gateway refuses (`401`, `403`, `429`), a `304`, and a call that
failed at the API (a `4xx` or `5xx`) charge nothing. If a page will take your account past your plan's line, the API
refuses it, sends nothing and charges nothing.

The API does not charge the name search but caps it per day. The cap is 1,000 investors served on Free and Starter,
5,000 on Growth and 20,000 on Scale. A call serves up to 50. The cap resets at midnight UTC. Past the cap, the answer
is `403 plan_limit` with `Retry-After`.

The listing-agent routes, the Investorlift-listing routes and the lender routes are in early access for Investorlift's
team and trusted partners. The listing-agent and Investorlift-listing routes serve the agents, the listings and the
companies behind them. None of these routes has a price: the API charges no credits for them. Once the paid plans
publish, the plans from Growth up include the lender routes. A key on a plan below Growth then meets `403 plan_limit`
there. The [changelog](/changelog) announces the change first.

One export is open on this host: the CSV of [a lender's loans](/api-reference/endpoints/lenders-loans#csv). It is open
from Growth, and answers `403 plan_limit` below it. It needs a `recorded_from` window and has the 50,000-row cap. It
costs 0 credits. The API serves it from the platform release that passes the CSV request through to that route. The
[changelog](/changelog) announces it.

Investorlift sells `GET /v1/str-parcels` per jurisdiction under an order form, not through the console's plans.

## The plans

| Plan       | Credits a month                    | Past the allowance                                                                                        | Requests a minute | Requests a day | Largest `limit` |
| ---------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------- | -------------- | --------------- |
| Free       | 1,000 in the first month, then 250 | Stops                                                                                                     | 20                | 2,000          | 25              |
| Starter    | 500                                | Stops                                                                                                     | 30                | 5,000          | 25              |
| Growth     | 4,000                              | An overage of up to three times the allowance, 12,000 more, at the rate the checkout shows. Then it stops | 60                | 20,000         | 100             |
| Scale      | 15,000                             | An overage of up to three times the allowance, 45,000 more, at the rate the checkout shows. Then it stops | 120               | 60,000         | 200             |
| Enterprise | By contract                        | By contract                                                                                               | 300               | By contract    | 500             |

Allowances reset with the billing period, and nothing carries over. Free's first month is once per account. If you
cancel and subscribe again, you do not get a second one.

**At a hard allowance the key stops.** On Free and Starter, and on Growth and Scale at the ceiling, every route that
charges credits answers `403 quota_exceeded`. That answer stays until the period resets or the plan changes. This
includes a re-read of a record your account already holds. The API refuses before it prices the page, and the gateway's
own check refuses too. The routes that charge nothing and the MCP handshake keep answering, so a client stays alive.

**Growth and Scale carry overage.** Investorlift bills every credit past the allowance at the rate the checkout shows,
on the period's invoice, up to three times the allowance. The API refuses the page that will pass that ceiling. It does
not serve and bill that page. So the largest bill a period can carry is the one the checkout states.

**Requests a minute and a day** count every call, charged or not, the routes that cost nothing included. Both answer
`429 rate_limited` with `Retry-After`. They are fair-use bounds, not prices.

**How wide a search can be** on Free and Starter, which share these bounds:

| Route                                                       | Free and Starter                                                                                                                                                                                                             | From Growth                                                    |
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| `GET /v1/deals`, `GET /v1/investors`                        | Within 5 miles of a point or a parcel, a viewport up to 10 miles across, or exactly one `zip`. A `city` or a ZIP list is `403 plan_limit`                                                                                    | The API's own maxima: a radius to 20 miles, a ZIP list, a city |
| `GET /v1/deals/summary`, `GET /v1/deals/cells` and the pins | Exactly one `zip` when the location is a place. A `city` or a ZIP list is `403 plan_limit`. The radius and the viewport take the API's own maxima here on every plan. The 5-mile and 10-mile bound is the list's, not theirs | The API's own maxima: a ZIP list, a city                       |
| `GET /v1/buyers/match`                                      | Within 5 miles of a point or a parcel, or a viewport up to 10 miles across. This route takes no `zip` or `city` on any plan                                                                                                  | The API's own maxima: a radius to 20 miles                     |
| `POST /v1/properties/search`                                | Within 5 miles or one ZIP: a point or parcel radius to 5 miles, a viewport to 10 miles across, or exactly one `zip`. No `county_fips`, no ZIP list, and no body without a geometry or a ZIP                                  | Counties, ZIP lists and the full radius                        |
| `GET /v1/markets/{market}/changes`                          | One ZIP and 52 weeks. Over REST, the API clamps a larger `weeks` and reports the value in `weeks_applied`. Over `/mcp`, it refuses a larger value by name as `plan_limit`                                                    | One ZIP and the full series                                    |

Over the plan's geometry, the answer is [`403 plan_limit`](/guides/concepts/errors#plan_limit), and it names the limit.
The API charges nothing.

**Page sizes.** On REST, the API lowers a `limit` above the plan's largest page to that page before the request runs,
and `page.limit` says what it used. On `/mcp`, the API answers a `limit` above it with `plan_limit`, and names the cap.
It does so because a tool's schema promises that the API never clamps silently over the cap. So an MCP client asks for
the plan's page or less. Ask for what you will show, and page from there ([Pagination](/guides/concepts/pagination)).

**Enterprise** is a signed agreement. It sets the contract's credits, limits and page. It adds the partner features on
the partner path, not on this host. Those are the people behind an entity, mailing addresses, owner identity, listing
agents' contact details and CSV export. Ask through the console.

## Payment

Every plan asks for a card at sign-up, the Free plan included. Free charges nothing. The console keeps the card on
file, and a change to a paid plan charges it as the checkout shows.

Investorlift bills a paid plan in advance each period, with any overage on the period's invoice. If a payment fails,
you have seven days' grace. The key keeps working, and Investorlift meters and bills what it uses during those days.
After the seven days, the gateway blocks the key. Every request then answers
[`403 payment_overdue`](/guides/concepts/errors#payment_overdue), and the API charges nothing, until you update the
card under Manage Billing in the console. The gateway serves a blocked key again within a minute of the update.

## At a limit

| You meet                                                                                  | When                                                                                                                             | What to do                                                                                                                                                        |
| ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`429 rate_limited`](/guides/concepts/errors#rate_limited) with `Retry-After`             | You spent the plan's requests a minute or a day                                                                                  | Wait `Retry-After` seconds and retry the same request. [Rate limits](/guides/concepts/rate-limits) has the handling.                                              |
| [`403 quota_exceeded`](/guides/concepts/errors#quota_exceeded)                            | You spent the period's credits: the allowance, or on Growth and Scale the ceiling. Or you spent the Free plan's lifetime credits | Wait for the period to reset, or change plan through [Pricing](/pricing). The body carries `used` and `line`. The console's Keys and usage page shows the period. |
| [`403 plan_limit`](/guides/concepts/errors#plan_limit)                                    | The request is over what the plan allows: the geometry, the name-search day cap, an MCP `limit` over the plan's largest page     | Narrow the request to what the body names as the limit, or change plan. On the day cap, `Retry-After` says when it resets.                                        |
| [`403 payment_overdue`](/guides/concepts/errors#payment_overdue)                          | The last payment failed, and the seven days are over                                                                             | Update the card under Manage Billing in the console.                                                                                                              |
| [`403 subscription_required`](/guides/concepts/errors#subscription_required)              | The key's plan subscription ended                                                                                                | Subscribe again through [Pricing](/pricing). The Free plan is enough to call the API.                                                                             |
| [`401 unauthorized`](/guides/concepts/errors#unauthorized)                                | No key, a deleted key, or a key that expired 7 days after a roll                                                                 | Copy the current key from [Your keys](/keys).                                                                                                                     |
| [`503 ledger_unavailable`](/guides/concepts/errors#ledger_unavailable) with `Retry-After` | The API did not reach the credit ledger. It charged nothing and served nothing                                                   | Retry after `Retry-After` seconds.                                                                                                                                |

Two headers on every charged response show the cost and the balance. `X-Credits-Charged` is what the response cost.
`X-Credits-Remaining` is the balance after it, recent to within a minute, negative on Growth and Scale down to the
ceiling (absent on Enterprise).

Over `/mcp`, where a client sees no header, every tool result carries `meta.credits`. It holds `charged`, `line` and
`period_end`. Since API 0.27.0 it also holds `used`: the period's exact count after the call, the figure the line
stops at.

`godmode_coverage` adds an `account` block. The block holds the plan, the Free plan's lifetime budget, the plan's
limits and its requests a minute and a day. It also holds `remaining`, which is `grant` minus `used`, the API's own
counter. That counter differs from `X-Credits-Remaining` for the two reasons [Keys and headers](/mcp/keys) gives. The
console's Keys and usage page shows the period's usage.

A rolled or deleted key, a cancelled subscription or a changed plan can take up to a minute to take effect. The gateway
caches a key's standing for 60 seconds.

## Over MCP

Claude Code and every current client negotiate protocol 2026-07-28. On such a client, a `tools/call` costs what its
route costs. That is the ledger's figure: one credit per deal, investor or parcel new to your account, plus the tool's
base. A record your account already saw costs nothing while the plan has credit. Every result carries the cost in
`meta.credits.charged`, with `used`, `line` and `period_end` beside it.

The API writes a legacy client's single-frame stream before the tool runs. So the API bills such a client per call,
refused or served, at the largest possible cost of its page. That cost is the tool's base plus the asked page, clamped
to 50 and the plan's largest page. Its re-reads are not free. The API still bills a call the tool then refuses at that
weight. So such a client asks for the plan's page or less.

[Keys and headers](/mcp/keys) and [Errors over MCP](/mcp/errors) have the detail.

## Sandbox is production

A Free key is the test key. It sees the same data under the same rules as a paid key. No separate sandbox host exists,
because the data is the product, and a sandbox with different data tests nothing. Develop on Free, then change plan
when the allowance is not enough.

## Fair use

The allowances are for a product you build, not for a copy of the dataset. To reach a limit is not abuse. To evade one
is abuse. The [Acceptable use and abuse policy](/guides/acceptable-use) lists:

* the uses the Developer Agreement does not permit
* the signals that start a review of a key
* the enforcement steps in their order
* how to appeal

It is part of the [Developer Agreement](/guides/terms) that every key agrees to.

## Support

| Plan       | Channel                                                              | First-response target, US business hours |
| ---------- | -------------------------------------------------------------------- | ---------------------------------------- |
| Free       | None yet. This page will link a community channel when it opens      | No target                                |
| Starter    | Email to [support@investorlift.com](mailto:support@investorlift.com) | 3 business days                          |
| Growth     | Email, the same address                                              | 2 business days                          |
| Scale      | Email. Outage-acknowledgment target 4 hours, US business hours       | 1 business day                           |
| Enterprise | By contract                                                          | By contract                              |

No plan below Enterprise carries an uptime commitment or service credits, whatever the reason. Today the gateway the API
runs behind carries no uptime commitment of its own, and one person operates the API. Every time in the table is a
target measured in US business hours, not a commitment. Outside them no target exists. This page will link a status
page when one exists.

Until then, quote the [request id](/guides/concepts/request-ids) when you have one, and the UTC time of your request
when you do not. Write promptly, because Investorlift keeps logs for a limited time. An uptime commitment, service
credits or support beyond this table exists only where a signed Enterprise agreement expressly states it, and as it
states it. Nothing on the console or this site offers one.


## Related topics

- [Rate limits](/guides/concepts/rate-limits.md)
- [Errors](/guides/concepts/errors.md)
- [Pricing](/pricing.md)
- [Give me a spreadsheet](/guides/walkthroughs/spreadsheet.md)
- [Pagination](/guides/concepts/pagination.md)
