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

# Credits & Pricing

> The prepaid-credit model, the response envelope, and per-endpoint costs

Horizon is billed with **prepaid credits, not subscriptions**. You
buy (or receive, as a trial) a balance of credits; each API call debits a
fixed number of credits from that balance. There's no monthly plan, no seat
count, and no usage tier to pick — you just keep credits topped up.

**1 credit = \$0.01.**

<Note>
  There's one credit balance per account, shared across every surface — the
  [Slack app](/horizon/slack-usage), the REST API, and the MCP server all debit from
  and top up the same pool. A pack bought from Slack works for a `curl`
  call, and vice versa.
</Note>

## Checking your balance

`GET /v1/usage` is free (no credits charged) and returns your current
balance:

```json theme={null}
{
  "tenantId": "...",
  "credits_remaining": 173
}
```

## Reading credits on every response

Every billed endpoint's response envelope includes:

* **`credits_charged`** — what this specific call cost. Usually equal to
  the endpoint's listed price below, but can be `0` in a few cases (see
  "Charging on misses" below).
* **`credits_remaining`** — your balance immediately after this call.

```json theme={null}
{
  "data": { "...": "..." },
  "credits_charged": 2,
  "credits_remaining": 171,
  "cached": false,
  "request_id": "..."
}
```

If a call fails before it's ever charged (bad auth, bad request, rate
limit), there's no `credits_charged` field at all — nothing was debited. If
your balance is too low for the call's price, you get a `402` before any
vendor is ever called — see
[Errors & Rate Limits](/horizon/errors-and-rate-limits).

## Per-endpoint pricing

Prices below are current as of this writing, pulled directly from
Horizon's pricing table. `GET /v1/usage` doesn't return per-endpoint prices
today — this page is the source of truth; check back here (or ask support)
if you suspect a price has changed.

| Endpoint                       | Credits | Notes                                                                                                                         |
| ------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `POST /v1/person/enrich`       | 2       | Charged even if no matching profile is found                                                                                  |
| `POST /v1/person/email`        | 25      | Charged **only** when a verified email is found                                                                               |
| `POST /v1/person/search`       | 3       | Returns the full candidate list; charged even if no matching profiles are found                                               |
| `POST /v1/email/verify`        | 3       |                                                                                                                               |
| `POST /v1/company/enrich`      | 2       | Charged even if no matching company is found                                                                                  |
| `POST /v1/company/people`      | 5       | Charged even if no people are found. Accepts a company URL, or a company name/domain (resolved internally at no extra charge) |
| `POST /v1/company/search`      | 3       |                                                                                                                               |
| `POST /v1/jobs/search`         | 3       |                                                                                                                               |
| `POST /v1/linkedin/posts`      | 3       |                                                                                                                               |
| `POST /v1/linkedin/engagement` | 3       |                                                                                                                               |
| `POST /v1/search/web`          | 3       |                                                                                                                               |
| `GET /v1/usage`                | Free    |                                                                                                                               |
| `GET /v1/health`               | Free    | No auth required                                                                                                              |

## Charging on misses

Most endpoints charge their full listed price even when the result is a
clean "nothing found" — the vendor call still happened and cost Gravity
real money either way, so it's still a completed, billable lookup.

The one exception is **`POST /v1/person/email`**: its 25-credit price is
calibrated against a high hit rate for genuine finds, so it's charged only
on success. A miss refunds the reservation in full and returns
`credits_charged: 0`.

## Cached results

A response with `"cached": true` means the answer was served from Gravity's
cache instead of calling the vendor again — you're still charged the normal
price for it, since a cache hit still means the data was verified and
delivered to you (it just cost Gravity \$0 in vendor spend that time).
