Usage and Logs
GET/api/v1/keys/usage
Returns your current plan, quota usage, rate limit, and billing period details. Use it to monitor consumption, trigger alerts before you run out, or display usage in your own dashboard.
Headers
| Header | Required | Description |
|---|---|---|
X-API-Key | Required | Your API key |
Response fields
| Field | Type | Description |
|---|---|---|
email | string | Account email |
plan | string | Current plan slug: free, lite, starter, growth, enterprise or enterprise_plus. Grandfathered accounts may show starter_legacy, starter_legacy2, growth_legacy, growth_legacy2 or enterprise_legacy. |
monthly_limit | integer | Maximum lookups per billing period |
used_this_month | integer | Lookups consumed in the current period |
remaining | integer | Lookups remaining |
percent_used | number | null | Percentage of quota consumed |
rate_limit_per_min | integer | Maximum requests per minute on your plan |
last_lookup_at | string|null | Timestamp of your most recent lookup (null if none) |
period_start | string|null | Billing period start, YYYY-MM-DD HH:MM:SS UTC. Without a Stripe subscription this is the monthly anniversary of signup. |
period_end | string|null | Billing period end, same format. Null when there is no Stripe billing period (free plan, or a plan assigned without a subscription). |
days_remaining | integer | null | Days until the billing period ends. Null whenever period_end is null. |
cancel_at_period_end | boolean | Whether a downgrade is scheduled at period end |
cancel_at | string|null | When the scheduled downgrade takes effect (same format) |
topup_credits | integer | Purchased top-up lookups remaining. Used only after the monthly quota is exhausted; they never expire. |
shell
curl -s "https://api.plateapi.com.au/api/v1/keys/usage" \ -H "X-API-Key: pk_live_YOUR_API_KEY"
200 OK -- starter plan example
{
"email": "[email protected]",
"plan": "starter",
"monthly_limit": 600,
"used_this_month": 182,
"remaining": 418,
"percent_used": 30.3,
"rate_limit_per_min": 10,
"last_lookup_at": "2026-07-29 08:01:56",
"period_start": "2026-07-01 00:00:00",
"period_end": "2026-08-01 00:00:00",
"days_remaining": 2,
"cancel_at_period_end": false,
"cancel_at": null,
"topup_credits": 0
}200 OK -- enterprise plan example
{
"email": "[email protected]",
"plan": "enterprise",
"monthly_limit": 18000,
"used_this_month": 8421,
"remaining": 9579,
"percent_used": 46.8,
"rate_limit_per_min": 60,
"last_lookup_at": "2026-07-29 12:30:00",
"period_start": "2026-07-15 00:00:00",
"period_end": "2026-08-15 00:00:00",
"days_remaining": 16,
"cancel_at_period_end": false,
"cancel_at": null,
"topup_credits": 500
}GET/api/v1/keys/logs
Returns a paginated list of your lookup history. Each entry includes the plate, state, result, response time, and the vehicle data that was returned. Use it to audit your integration, debug failed lookups, or build your own analytics.
Headers
| Header | Required | Description |
|---|---|---|
X-API-Key | Required | Your API key |
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 100 | Number of entries to return (max 500) |
offset | integer | 0 | Number of entries to skip (for pagination) |
since | string | -- | Start of time range (ISO 8601, UTC). Example: 2026-07-01T00:00:00 |
until | string | -- | End of time range (ISO 8601, UTC). Example: 2026-07-31T23:59:59 |
plate | string | -- | Filter by plate number (case-insensitive) |
success | boolean | -- | Filter by outcome: true for found vehicles, false for not-found or errors |
Response fields
| Field | Type | Description |
|---|---|---|
logs | array | Array of log entries (see below) |
count | integer | Number of entries in this response |
total | integer | Total entries matching your filters (for pagination) |
limit | integer | The limit that was applied |
offset | integer | The offset that was applied |
Each entry in the logs array contains:
| Field | Type | Description |
|---|---|---|
plate | string | The plate that was looked up |
state | string | State code |
success | integer | 1 if a vehicle was found, 0 if not |
error | string | Error code if the lookup failed (e.g. not_found), empty string on success |
duration_ms | number | Response time in milliseconds |
make | string|null | Vehicle make (null if not found) |
model | string|null | Vehicle model (null if not found) |
year | integer | null | Vehicle year (null if not found) |
client_ip | string | IP address the request came from |
request_id | string|null | The request_id of that lookup (null for lookups made before August 2026) |
created_at | string | When the lookup happened (UTC) |
shell -- get your last 5 lookups
curl -s "https://api.plateapi.com.au/api/v1/keys/logs?limit=5" \ -H "X-API-Key: pk_live_YOUR_API_KEY"
200 OK
{
"logs": [
{
"plate": "ABC123",
"state": "VIC",
"success": 1,
"error": "",
"duration_ms": 2985.19,
"make": "TOYOTA",
"model": "HILUX",
"year": 2015,
"client_ip": "203.0.113.42",
"request_id": "req_7f3a9c1b4e8d2f6a0c5e1b9d",
"created_at": "2026-07-29 08:01:56"
},
{
"plate": "XYZ789",
"state": "NSW",
"success": 0,
"error": "not_found",
"duration_ms": 4521.33,
"make": null,
"model": null,
"year": null,
"client_ip": "203.0.113.42",
"request_id": "req_2c1d9e7a4b3f8e6d0a1b5c7e",
"created_at": "2026-07-29 07:58:31"
}
],
"count": 2,
"total": 84,
"limit": 5,
"offset": 0
}shell -- filter by plate and time range
curl -s "https://api.plateapi.com.au/api/v1/keys/logs?plate=ABC123&since=2026-07-01T00:00:00&until=2026-07-31T23:59:59" \ -H "X-API-Key: pk_live_YOUR_API_KEY"
shell -- get only failed lookups
curl -s "https://api.plateapi.com.au/api/v1/keys/logs?success=false" \ -H "X-API-Key: pk_live_YOUR_API_KEY"