Riferimento dell’API REST

Che cosa espone l’API, dove sta ogni rotta e che cosa deve portare una chiave per passare.

Versione del contratto 1.15.0 Il riferimento qui sotto è letto dal contratto OpenAPI, che è scritto in inglese. Non è tradotto di proposito: tradurlo vorrebbe dire ricopiarlo, e una copia prima o poi diverge. Scarica il contratto pubblico (OpenAPI, JSON)

Da dove viene questa pagina

Questo riferimento non è scritto, è letto. Ogni rotta, ogni metodo e ogni ambito qui sotto vengono dal contratto OpenAPI compilato dentro il binario dell’API, e un controllo confronta quel contratto con il codice in esecuzione a ogni build.

Un riferimento tenuto a mano comincia a divergere la settimana dopo essere stato scritto, e da quel momento è peggio di nessun riferimento, perché lo si crede. L’unico modo per non divergere è non avere una seconda copia da cui divergere.

Qui sono elencate le operazioni che una chiave API può chiamare, e nessuna altra. Il resto del servizio la dashboard lo guida con rotte che raggiunge solo una sessione dal browser: non fanno parte dell’API pubblica, cambiano senza preavviso, e documentarle le trasformerebbe in una promessa che nessuno ha fatto.

Qui trovi la superficie: dove sta una rotta e a che cosa serve. Il resto lo porta il contratto — schemi di richiesta e risposta, codici di errore, limiti di frequenza — ed è il documento da leggere quando una chiamata risponde qualcosa che non ti aspettavi. La copia che puoi scaricare contiene le stesse operazioni di questa pagina, e solo quelle.

Autenticazione

Tre modi di dimostrare chi sei, e non sono intercambiabili. La chiave con ambiti è quella pensata per i programmi; la sessione è quella che il browser tiene mentre usi la dashboard.

Gli ambiti di scrittura non comprendono quelli di lettura. Altrimenti chi guarda una chiave leggerebbe jobs:write e dovrebbe ricordarsi che copre anche la lettura.

Le operazioni che non accettano nessuna chiave — emettere credenziali, impegnare un pagamento, distruggere un account — mancano da questa pagina esattamente per questo. È una decisione e non una dimenticanza: una chiave capace di crearne un’altra renderebbe inutile revocare la prima.

NomeSulla richiestaDescrizione
sessionCookieCookie: pq_session=…Browser session (R14). HttpOnly: the token is out of reach of JavaScript, so an XSS on the dashboard cannot carry it away.
sessionBearerAuthorization: Bearer …The same session token, for clients without a cookie jar. When both arrive, the cookie wins — it is the session the user expects to be using.
apiKeyAuthorization: Bearer …Scoped API key (R9): Authorization: Bearer pq_live_.... The prefix is what tells it apart from a session token without having to try both. The scope each operation requires is declared in x-api-key-scope, and it is compared against the code on every CI run. Write scopes do not imply read scopes: otherwise someone looking at a key's scopes would see jobs:write and have to remember that it covers reading too. Operations that do not declare this scheme do not accept a key, ever: they are the ones that issue credentials, commit to a payment, or destroy the account.

Operazioni

Raggruppate come le raggruppa il contratto. Un pezzo di percorso fra parentesi graffe è un parametro da sostituire; la colonna dell’ambito dice che cosa deve portare una chiave perché quella chiamata passi.

jobs

Cron jobs and executions (R8).

MetodoPercorsoChe cosa faAmbito della chiave
GET/jobsList jobs (R8)jobs:read
POST/jobsCreate a job (R1, R8)jobs:write
GET/jobs/{id}Read one jobjobs:read
PATCH/jobs/{id}Partially update a jobjobs:write
DELETE/jobs/{id}Delete a jobjobs:write
GET/jobs/{id}/executionsExecution log (R6)executions:read
POST/jobs/{id}/executionsRun now (R8)executions:trigger
GET/jobs/{id}/executions/streamExecution log in real time (SPEC §4.2)executions:read
GET/executions/exportDownload the execution log (R27)executions:read
GET/executions/metricsDuration, failure rate and trend (R28)executions:read

secrets

Workspace secrets resolved at execution time (R42, R43).

MetodoPercorsoChe cosa faAmbito della chiave
GET/secretsList workspace secrets (R42)secrets:read