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 Jobs API
description: Complete API reference documentation.
version: 1.0.0
servers:
- url: https://api.piloterr.com
description: API Server
tags:
- name: Jobs
paths:
/v1/jobs/{id}:
get:
summary: Jobs
description: 'Poll the status, progress (0–100) and result of a job started with `is_async=true`. Polling is free. Poll until `status` is terminal: `CompletedJob`, `Error`, `NotFound` or `BadRequest`.'
operationId: jobs-id
security:
- ApiKeyAuth: []
parameters:
- name: id
in: path
required: true
description: The `job_id` returned by an endpoint called with `is_async=true`.
schema:
type: string
responses:
'200':
description: Job status, with the result once `status` is `CompletedJob`.
content:
application/json:
schema:
type: object
properties:
id:
type: string
success:
type:
- boolean
- 'null'
status:
type: string
enum:
- Queued
- Running
- CompletedJob
- Error
- NotFound
- BadRequest
endpoint:
type: string
created_at:
type: string
started_at:
type:
- string
- 'null'
completed_at:
type:
- string
- 'null'
duration_ms:
type:
- number
- 'null'
args:
type: object
result: {}
progress:
type:
- integer
- 'null'
'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
'404':
description: Not Found — no job with this id.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Job or content not found
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Jobs
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.