Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Piloterr API Reference Stats API
description: Complete API reference documentation.
version: 1.0.0
servers:
- url: https://api.piloterr.com
description: API Server
tags:
- name: Stats
paths:
/v2/stats:
get:
summary: Stats
description: 'Infrastructure health for an engine or endpoint over the last hour. Not scoped to your account or tenant. Enabled per account: HTTP 403 means contact support to activate it.'
operationId: stats
security:
- ApiKeyAuth: []
parameters:
- name: engine
in: query
required: false
description: API family to check, for example `website`. Provide at least `engine` or `path`.
schema:
type: string
description: API family to check, for example `website`. Provide at least `engine` or `path`.
- name: path
in: query
required: false
description: Specific endpoint to check, for example `/v2/website/crawler`. If you also pass `engine`, use an endpoint from that API.
schema:
type: string
description: Specific endpoint to check, for example `/v2/website/crawler`. If you also pass `engine`, use an endpoint from that API.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
path:
nullable: true
engine:
type: string
health:
type: string
window:
type: string
success_rate:
type: number
avg_response_time_ms:
type: integer
examples:
Engine health snapshot:
value:
path: null
engine: website
health: operational
window: 1h
success_rate: 99.412
avg_response_time_ms: 840
Path health snapshot:
value:
path: /v2/website/crawler
engine: website
health: operational
window: 1h
success_rate: 99.412
avg_response_time_ms: 840
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Stats
components:
schemas:
ErrorResponse:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your API key. Include it in the x-api-key header for every request.