A pay-per-query, read-only API for license plate lookups — messages posted about a plate, plus ALPR (automated license plate reader) search history where publicly available. 1 query = 1 credit. Built for AI agents first (MCP), with a plain REST API underneath.
Connect your agent →First 10 credits are free — confirm your email after signup to get them. After that, buy a package below — bulk costs less per credit. 1 credit = 1 query, MCP or REST.
| Package | Credits | Price | $ / credit | |
|---|---|---|---|---|
| Starter | 250 | $5.00 | $0.020 | Buy → |
| Growth | 1,500 | $25.00 | $0.017 | Buy → |
| Scale | 8,000 | $100.00 | $0.013 | Buy → |
Buying requires an account. Confirm your email (check the activation link we send on signup) to get 10 free credits automatically. The button takes you to your account settings to check out via Stripe.
Need more than 8,000 lookups a month? Contact us for volume pricing.
There's no API key to create or copy. Add the server below to Claude, ChatGPT, Grok, or any other MCP-compatible client — it discovers everything else itself (that this server needs an account, where to log in or sign up, how to get a token) via standard OAuth 2.1. You'll be prompted to log in or create a free PlateQuery account right in the connection flow, and that's it.
| Server URL | https://api.platequery.com/mcp |
| Auth | OAuth 2.1 (PKCE), discovered automatically — no manual token to paste |
| Tools | lookup_plate, list_plate_messages, list_plate_alpr_mentions |
Exact menu names shift between app versions — look for "Connectors," "Custom connector," "Tools," or "MCP servers" in that app's settings if a label below doesn't quite match what you see.
Claude Desktop: Settings → Connectors → Add custom connector → paste the Server URL above. Claude detects that sign-in is required and opens the login/signup page for you.
Claude Code: claude mcp add --transport http platequery https://api.platequery.com/mcp — the OAuth flow runs the first time a tool from it is used.
Settings → Connectors → Create (or "Advanced" / Developer mode, depending on your plan) → add a custom connector with the Server URL above. ChatGPT will walk you through signing in the first time it needs to.
In Grok's settings (grok.com or the X app), look for Connectors / Tools / MCP servers, and add a custom server with the Server URL above.
Once connected, you can just ask in plain language — the agent picks the right tool and query for you:
The same account, same credits, same OAuth token work as a plain REST API too — for a script, a
backend, or anything that isn't an MCP client. Every request costs 1 credit and returns your
remaining balance in the X-Credits-Remaining header.
curl "https://api.platequery.com/v1/plates/lookup?plate=ABC123®ion=California" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
{
"plate": "ABC123",
"region": "California",
"private": false,
"is_owner": false,
"messages": [
{"author": "3b12b2b...", "text": "Left their lights on in the lot!", "created_on": "2026-08-02T14:03:00Z"}
],
"messages_total": 7,
"flock_mentions_total": 3,
"flock_mentions_source": "Flock Safety"
}
/v1/plates/lookup is a quick summary only — the latest 3 messages plus a total count, and just the ALPR-mention total (no rows). For the full history, paginated, use the two endpoints below.
Paginated. Also 1 credit per call, regardless of page. Default page size is 10, max 15.
curl "https://api.platequery.com/v1/plates/messages?plate=ABC123®ion=California&page=1&page_size=10" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
{
"plate": "ABC123",
"region": "California",
"private": false,
"is_owner": false,
"page": 1,
"page_size": 10,
"total": 7,
"has_next": false,
"results": [
{"author": "3b12b2b...", "text": "Left their lights on in the lot!", "created_on": "2026-08-02T14:03:00Z"}
]
}
Automated license plate reader search history, where publicly available. Same shape and pricing as message history above.
curl "https://api.platequery.com/v1/plates/alpr-mentions?plate=ABC123®ion=California&page=1&page_size=10" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
{
"plate": "ABC123",
"region": "California",
"private": false,
"is_owner": false,
"page": 1,
"page_size": 10,
"total": 3,
"has_next": false,
"results": [
{"agency": "Example PD", "searched_at": "2026-07-30T09:12:00Z", "source": "Flock Safety"}
]
}
MCP and REST are both OAuth-only — there's no separate API key to manage. platequery.com is the authorization server; api.platequery.com only ever validates the tokens it issues.
| Discovery | https://api.platequery.com/.well-known/oauth-protected-resource |
| Authorization server metadata | https://platequery.com/.well-known/oauth-authorization-server |
| Client registration | Open Dynamic Client Registration (RFC 7591) at https://platequery.com/o/register/ — or register one by hand from your account settings |
| Grant | Authorization Code + PKCE (S256) — the only grant this server accepts |
| Rate limit | 10 requests/minute per account |
Writing your own client instead of using an off-the-shelf MCP host? Any standard OAuth 2.1 library that supports PKCE and RFC 7591 registration will work against the endpoints above.
401 |
Missing, invalid, or expired access token. The response includes a WWW-Authenticate header pointing at the discovery document above, so a compliant client can (re)authenticate automatically. |
402 |
Out of credits. The response body includes buy_credits_url so you can top up without leaving your script. |
429 |
Rate limited. The response includes a Retry-After header (seconds). |