# Billing

> The two Map API rates, what is never charged, how the monthly minimum works in the first month and after, five worked months, and where to see your usage.

- **HTML:** https://offendersearch.app/docs/map/billing
- **Base URL:** https://api.offendersearch.app
- **Authentication:** `X-API-Key` request header
- **Map API reference as markdown:** https://offendersearch.app/docs/map.md

## The two rates

| Unit | Price | What it is |
| --- | --- | --- |
| Map request | $2.00 per 1,000 map requests | One answer for one map view, one drawn shape, or one page of a group. |
| Record open | $0.015 per record opened | The complete record behind one marker. |
| Monthly minimum | $300 | A floor on the account’s whole bill for the month. Not a fee on top. |

A map request is one answer for one map view. It costs the same whether the view holds three people or three hundred.

A record open is the complete record behind one marker. Opening the same marker again is free. A new map request returns new marker ids, so opening that person from the new result is a new charge.

Accounts with high volume can be moved to a lower price for each record open, down to $0.005. Contact us.

## What is free

Clusters and pins are never charged per person. A view that has not changed (HTTP 304), the status route and test mode are free.

- **Clusters and pins themselves.** A view with three hundred pins costs the same one map request as a view with three.
- **Opening the same marker again.** See [Open a record](https://offendersearch.app/docs/map/open-a-record.md).
- **A `304`.** An unchanged view, asked for with `If-None-Match`.
- **The status route.** `GET /v1/map/status`.
- **Test mode.** Anything sent with `sandbox=true`.
- **Any error response.** A request that fails is not charged.

## The monthly minimum

The $300 monthly minimum is applied toward everything the account uses that month, search included. A month with $110 of usage is billed $300; a month with $1,100 is billed $1,100.

- **What counts toward it.** Everything the account uses that month: map requests, record opens, and search calls on the same account.
- **On its own it covers** 150,000 map requests, or any mix of requests, record opens and searches that adds up to $300.
- **It is not added to usage.** You pay the larger of the two: your usage, or the minimum.

## The first month and later months

| Month | When you pay | What you pay |
| --- | --- | --- |
| The month you turn it on | The day you turn it on | $300, charged to the card at that moment. It covers the current calendar month. |
| The same month, at month end | On the month-end invoice | `max(total usage, 300) − 300 already paid`. Nothing more if usage stayed under $300. |
| Every later month | On the month-end invoice | Your usage, or $300 if usage is lower. |

For example, turn it on and use $1,100 in that month: $300 is charged on the day, and the month-end invoice is $800. Use $110: $300 is charged on the day, and the month-end invoice adds nothing.

Turning it off stops the routes at once and refunds nothing. Turning it back on in the same month costs nothing more. See [Turn it on](https://offendersearch.app/docs/map/turn-it-on.md).

## Five worked months

| Month | Map requests | Record opens | Searches | Usage | Billed |
| --- | --- | --- | --- | --- | --- |
| Trial period with the minimum waived | 12,000 | 600 | 0 | $33.00 | **$33.00** |
| Light month | 40,000 | 2,000 | 0 | $110.00 | **$300.00** |
| Map plus search | 40,000 | 2,000 | 1,000 | $260.00 | **$300.00** |
| Exactly at the minimum | 105,000 | 6,000 | 0 | $300.00 | **$300.00** |
| Above the minimum | 400,000 | 20,000 | 0 | $1,100.00 | **$1,100.00** |

- Searches are priced here at $0.15 each, the published search price.
- The first row is a negotiated account in a period with the minimum waived, so it pays its usage only.
- The rows are later months. In the month you turn it on, the minimum is paid up front and the month-end invoice is the rest.

## Rounding

Each line is rounded once, on the month’s total, not on each call. Map requests are rounded down to the cent. Record opens are rounded to the nearest cent.

## Where to see usage

`GET /v1/map/status` returns this month’s map requests, record opens and their cost so far. It is free. The dashboard shows the same numbers under Map API.

GET /v1/map/status

```bash
curl https://api.offendersearch.app/v1/map/status \
  -H "X-API-Key: $OFFENDERSEARCH_KEY"
```

200 OK

```json
{
  "enabled": true,
  "paused": false,
  "pinMinZoom": 13,
  "nameMinZoom": 15,
  "maxMarkers": 300,
  "maxTilesPerRequest": 64,
  "markerIdTtlSeconds": 86400,
  "rates": {
    "requestUsdPer1k": 2,
    "recordOpenUsd": 0.015
  },
  "minimumUsd": 300,
  "minimumAppliesThisMonth": true,
  "minimumPaidThisMonthUsd": 300,
  "usageThisMonth": {
    "periodStart": "2026-10-01",
    "requests": 40000,
    "recordOpens": 2000,
    "requestsUsd": 80,
    "recordOpensUsd": 30,
    "estimatedUsd": 110
  },
  "sweep": {
    "tilesToday": 412,
    "tilesPerDay": 20000,
    "endUserTilesPerDay": 2000
  }
}
```

| Field | Meaning |
| --- | --- |
| `enabled`, `paused` | Whether the plan is on, and whether we have paused it. |
| `rates` | Your rates: dollars for each 1,000 map requests, and dollars for each record open. |
| `minimumUsd` | Your monthly minimum. |
| `minimumAppliesThisMonth` | Whether this month is a minimum month. |
| `minimumPaidThisMonthUsd` | What has already been paid toward this month’s minimum. |
| `usageThisMonth` | Map requests and record opens since `periodStart`, with the cost of each line and `estimatedUsd` for both. Search usage is on the Billing page. |
| `sweep.tilesToday` | How much of the area limit for the day is used. See [Limits & errors](https://offendersearch.app/docs/map/limits-and-errors.md). |
| `pinMinZoom`, `nameMinZoom`, `maxMarkers` | The limits in force for your account. |

---

## Related

- Previous: [Google Maps](https://offendersearch.app/docs/map/google-maps.md)
- Next: [Limits & errors](https://offendersearch.app/docs/map/limits-and-errors.md)
- Index: [Map API reference](https://offendersearch.app/docs/map.md)
