Billing & Credits

Billing & Credits

Credits are charged after each query based on two factors: the number of locations returned and the response format. If a brand is not found (404), no credits are charged.

Free trial

Every new account starts on a trial key, created automatically when you sign up.

LimitDefault
Duration5 days from signup
Credits50
Max locations per request50

The trial key is a normal bm_live_* key — use it exactly like any paid key. Calls that would return more than 50 locations are truncated to 50, with these response headers so your client knows there's more data behind an upgrade:

HeaderDescription
X-Trial-Cap-AppliedPresent and true when the response was truncated
X-Total-AvailableTotal locations the unfiltered query would have returned

When the trial ends — whichever comes first: 5 days, 50 credits used, or you hit 0 credits — the key returns 402 TRIAL_EXPIRED (or TRIAL_EXHAUSTED) on every call with an upgrade_url pointing to /billing. Pick any tier below to convert.

One trial per account, ever. The trial key stays visible in your dashboard for 30 days after expiry so you can copy it into the same place when you upgrade.

Base tier — by location count

Locations ReturnedBase Credits
1–5001
501–2,0002
2,001–5,0003
5,001–10,0005
10,000+8

Format multiplier

Map rendering uses Puppeteer and requires significantly more compute than data-only queries.

FormatTypeMultiplier
jsonData only1x
csvData only1x
geojsonData only1x
pngMap render2x
jpegMap render2x

Total credits = base tier x format multiplier.

Cost examples

QueryLocationsFormatTotal Credits
Sweetgreen, all US152json1 (1 x 1)
Sweetgreen, all US152png2 (1 x 2)
McDonald's, all US4,190csv3 (3 x 1)
McDonald's, all US4,190png6 (3 x 2)
Starbucks, all US7,609jpeg10 (5 x 2)

Reduce your cost by adding filters. Querying "Starbucks" with state="CA" returns ~1,000 locations (2 credits as JSON) instead of 7,609 nationwide (5 credits).

Billing response headers

Every response includes billing headers so you can track usage programmatically:

HeaderDescription
X-Credits-ChargedNumber of credits deducted for this request
X-Credits-RemainingCredits remaining on your API key
X-Credits-LowPresent and true when balance drops below 50
X-Credits-Charged: 3
X-Credits-Remaining: 997
X-Credits-Low: true    // only when balance < 50
💡

Brand not found (404)? You are never charged. Credits are only deducted when locations are successfully returned.