# Credits & costs

What each action spends, from the live credit table. Previews are free.

One balance covers the app, MCP and REST. You pay for a row that is returned. A miss is free. The numbers below are the live credit table. `GET /usage` returns `balance` and `today.credits_remaining`. A paid response repeats the charge in `X-Credits-Used` and `X-Credits-Charged`, and sends `X-Credits-Remaining` when the wallet can be read.

## Per action

- **Company with a buying signal** — 1 credit (`funding_company`, and a company row on an event).
- **Company using a technology** — 3 credits (`tech_company`).
- **Tech stack of one company** — 3 credits per company we know, per lookup (`POST /company/tech-stack`, `get_tech_stack`), whatever your filters keep; a repeat of the same company is charged again, and a company we do not know is free. `GET /technologies` and `find_technologies` are free.
- **Person** — 1 credit. That covers a person from a signal search (engagement, a new role, a mention, an event: no AI judged them) and `POST /leads` (`leads_person`).
- **Lead from Search People** — 1 credit per lead returned (`person_search_row`). You choose how many with `limit`; a search that finds nobody is free.
- **Full profile** — 1 credit (`enrich_profile`), only when a profile is returned.
- **Work email** — 1 credit on top of the profile when an address is found. Together that is 2 (`enrich_email`).
- **Company enrich** — 1 credit per company found (`company_enrich`). Each domain, page or name gives at most one company, the same company in two forms (its numeric page and its slug) is charged once, and an entry that finds nothing is free.
- **Company from Search Companies** — 1 credit per company returned (`POST /company/search`). An empty page is free; `GET /companies/lookup` is free.
- **Phone number** — 10 credits per person with a number found, once (Find Phone, `POST /person/phone`). Asking again for the same number is free.
- **Person from an email** — 1 credit per person found (Reverse Email Lookup, `POST /person/reverse-email`): the full profile and the company. An address nobody matches is free.
- **Email and phone** — 10 credits, in the app, only when the phone is found. `POST /person/enrich` has `include_email` and no phone field.

`lookup_company`, `get_search_results`, `list_mentions`, `manage_monitor`, and every `/preview` route are free. Creating a monitor is free. A monitor run charges the mention price above.

Every paid call takes `max_credits`, with any key and on the paid tools of the assistant server: the call stops before it would cost more. A response cut by it carries `truncated_by: "max_credits"`, and an entry it did not reach is `skipped` or `capped`. The same person or company asked twice in one call, also in two forms (the member-id URL from Search People and the public URL, or a numeric LinkedIn page and its slug), is charged once.

A `502` or `503` without a `request_id` in the body comes from the hosting in front of mySDR, for example during a deploy: the call did not finish, nothing was charged, and it is safe to send again.

## preview_cost and max_credits

`preview_cost` takes `endpoint` `searches`, `leads`, `person.enrich` or `monitors`, and the body you would have sent. It returns `credits_per_row`, `max_rows`, `max_credits` and `period` (`call` or `day`). Nothing is fetched.

The same `max_credits` field on the real call stops before the next row would pass it (`truncated_by` `max_credits`). Below the cost of one row the call is `402` `max_credits_exceeded` and nothing runs.

Usage for the key is [Get Usage](/docs/api-reference/usage), which is free.
