> ## Documentation index
> Fetch the complete documentation index at: https://docs.leadity.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get pricing

> Read the price card: what each lead and each filter costs, in credits.

Answers every rate Leadity charges, in credits. A new lead costs lead times its niche's multiplier, plus the rate of every filter the order turns on. For the price of one particular order, call estimate_scrape instead: it applies the account's own floors and answers the exact per-lead rate.

`GET https://api.leadity.io/v1/pricing`

- Scope: `read`
- Spends credits: no
- MCP tool: `get_pricing`

## Headers

- `Authorization`, string, required. Bearer, a space, then an API key: Bearer lk_api_... An MCP key is refused here with wrong_key_kind.

## Example request

```bash cURL
curl "https://api.leadity.io/v1/pricing" \
  -H "Authorization: Bearer $LEADITY_API_KEY"
```

```javascript Node.js
const response = await fetch("https://api.leadity.io/v1/pricing", {
  headers: {
    Authorization: `Bearer ${process.env.LEADITY_API_KEY}`,
  },
});

const data = await response.json();
console.log(data);
```

```python Python
import os

import requests

response = requests.get(
    "https://api.leadity.io/v1/pricing",
    headers={
        "Authorization": f"Bearer {os.environ['LEADITY_API_KEY']}",
    },
)

print(response.json())
```

## Response

- `version`, string, required. The price card's content version. It changes whenever any rate moves.
- `lead`, number, required. Credits for one new lead at a niche multiplier of 1, before any filter.
- `phoneTypeFilter`, number, required. Added per lead when phoneTypeFilter is mobile, landline or voip.
- `phoneWithPhone`, number, required. Added per lead when phoneTypeFilter is with_phone.
- `findOwner`, number, required. Added per lead by the owner-name lookup, and the price of one confirmed name from purchase_owner_names.
- `nicheMatch`, number, required. Added per lead by the niche match.
- `minGoogleReviews`, object[], required. Every orderable minGoogleReviews floor, cheapest first.
  - `reviews`, integer, required. The floor: deliver only businesses showing at least this many Google reviews.
  - `credits`, number, required. What that floor adds per lead.
- `website`, object, required. Added per lead by each websitePresence value.
  - `any`, number, required.
  - `has`, number, required.
  - `none`, number, required.
- `review`, number, required. Credits per Google review walked by review scraping.
- `reviewsMax`, integer, required. The most reviews review scraping walks per business.
- `emailRequire`, number, required. Added per lead when emailFinder is require.
- `emailRequireVerify`, number, required. Added per lead when emailFinder is require_verified.
- `enrichMinNames`, integer, required. The smallest targetNames purchase_owner_names takes on a large pool.
- `validation`, object, required. Standalone validation, the customer's own list.
  - `phone`, number, required. Credits per phone number answered.
  - `email`, number, required. Credits per address answered.
  - `maxItems`, integer, required. The most items one validation run takes.

## Example response

```json 200
{
  "version": "9c41d07a2e5b",
  "lead": 0.2,
  "phoneTypeFilter": 0.8,
  "phoneWithPhone": 0.05,
  "findOwner": 2.5,
  "nicheMatch": 0.5,
  "minGoogleReviews": [
    {
      "reviews": 1,
      "credits": 0.05
    },
    {
      "reviews": 1000,
      "credits": 8
    }
  ],
  "website": {
    "any": 0,
    "has": 0.5,
    "none": 1
  },
  "review": 0.02,
  "reviewsMax": 1000,
  "emailRequire": 0.8,
  "emailRequireVerify": 1.3,
  "enrichMinNames": 10,
  "validation": {
    "phone": 0.2,
    "email": 0.2,
    "maxItems": 50000
  }
}
```

## Errors

Every refusal answers `{ error, message }` with the status below. The full list is on the [Errors](https://docs.leadity.io/errors) page.

| Code | Status | Meaning | Extra fields |
| --- | --- | --- | --- |
| `unauthorized` | 401 | The API key is missing, malformed, revoked or expired. | - |
| `wrong_key_kind` | 401 | This key opens the other surface: an API key works on the HTTP API, an MCP key on the MCP server. | - |
| `account_suspended` | 403 | The account is suspended. | - |
| `email_not_verified` | 403 | The account's email address is not verified yet. | - |
| `rate_limited` | 429 | Too many requests. Wait for the Retry-After seconds and try again. | `retryAfterSeconds`: The seconds to wait, the same number as the Retry-After header. |
| `try_again` | 503 | Leadity could not answer just now. Retry in a moment, with the same Idempotency-Key on a spending call. | `retryAfterSeconds`: When a request with this Idempotency-Key is still being processed: the seconds to wait before retrying with the same key, as the Retry-After header says. |
| `internal_error` | 500 | Something failed on our side. Nothing was charged twice. | `body`: On the MCP server, when Leadity answered in a shape the tool does not publish: that answer as it came. |
