[{"data":1,"prerenderedAt":124},["ShallowReactive",2],{"docs:fr:rest-api":3},{"id":4,"meta":5,"intro":8,"contractVersion":11,"contractVersionLabel":12,"contractNotice":13,"contractDownload":14,"labels":17,"sections":29},"rest-api",{"title":6,"lead":7},"API REST","Toutes les routes qu’une clé API peut appeler, lues dans le contrat OpenAPI embarqué dans le service.",{"title":9,"lead":10},"Référence de l’API REST","Ce que l’API expose, où vit chaque route et ce qu’une clé doit porter pour passer.","1.15.0","Version du contrat","La référence ci-dessous est lue dans le contrat OpenAPI, rédigé en anglais. Elle n’est pas traduite à dessein: la traduire reviendrait à la recopier, et une copie finit par diverger.",{"href":15,"label":16},"\u002Fopenapi.json","Télécharger le contrat public (OpenAPI, JSON)",{"method":18,"path":19,"summary":20,"scope":21,"authentication":22,"form":23,"name":24,"type":25,"notes":26,"description":27,"downloadContract":16,"contractVersion":12,"command":28},"Méthode","Chemin","Ce qu’elle fait","Portée de la clé","Accepte","Sur la requête","Nom","Type","Remarques","Description","Commande",[30,39,60],{"id":31,"title":32,"paragraphs":33,"block":38},"overview","D’où vient cette page",[34,35,36,37],"Cette référence n’est pas écrite, elle est lue. Chaque route, chaque méthode et chaque portée ci-dessous viennent du contrat OpenAPI compilé dans le binaire de l’API, et une vérification confronte ce contrat au code en service à chaque compilation.","Une référence tenue à la main commence à diverger la semaine suivant sa rédaction, et dès lors elle vaut moins que pas de référence du tout, parce qu’on la croit. La seule façon de ne pas diverger est de ne pas avoir de seconde copie dont diverger.","Sont listées ici les opérations qu’une clé API peut appeler, et aucune autre. Le reste du service, le tableau de bord le pilote par des routes que seule une session de navigateur atteint: elles ne font pas partie de l’API publique, elles changent sans préavis, et les documenter en ferait une promesse que personne n’a faite.","Vous trouverez ici la surface: où vit une route et à quoi elle sert. Le reste est porté par le contrat — schémas de requête et de réponse, codes d’erreur, limites de fréquence — et c’est le document à lire quand un appel répond autre chose que ce qui était attendu. La copie téléchargeable contient les mêmes opérations que cette page, et rien d’autre.",null,{"id":40,"title":41,"paragraphs":42,"block":46},"authentication","Authentification",[43,44,45],"Trois façons de prouver qui vous êtes, et elles ne sont pas interchangeables. La clé à portées est celle prévue pour les programmes; la session est celle que votre navigateur garde pendant que vous utilisez le tableau de bord.","Les portées d’écriture n’incluent pas celles de lecture. Sinon, en regardant une clé on lirait jobs:write et il faudrait se souvenir que la lecture y est comprise.","Les opérations qui n’acceptent aucune clé — délivrer des identifiants, engager un paiement, détruire un compte — manquent de cette page pour cette raison même. C’est une décision et non un oubli: une clé capable d’en créer une autre rendrait vaine la révocation de la première.",{"kind":47,"schemes":48},"schemes",[49,53,57],{"name":50,"form":51,"description":52},"sessionCookie","Cookie: pq_session=…","Browser session (R14). HttpOnly: the token is out of reach of JavaScript, so an XSS on the dashboard cannot carry it away.",{"name":54,"form":55,"description":56},"sessionBearer","Authorization: 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.",{"name":58,"form":55,"description":59},"apiKey","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.",{"id":61,"title":62,"paragraphs":63,"block":65},"operations","Opérations",[64],"Regroupées comme le contrat les regroupe. Un morceau de chemin entre accolades est un paramètre à remplacer; la colonne de la portée indique ce qu’une clé doit porter pour que cet appel passe.",{"kind":61,"groups":66},[67,115],{"name":68,"description":69,"operations":70},"jobs","Cron jobs and executions (R8).",[71,77,82,86,90,94,99,103,107,111],{"method":72,"path":73,"summary":74,"scope":75,"security":76},"GET","\u002Fjobs","List jobs (R8)","jobs:read",[50,54,58],{"method":78,"path":73,"summary":79,"scope":80,"security":81},"POST","Create a job (R1, R8)","jobs:write",[50,54,58],{"method":72,"path":83,"summary":84,"scope":75,"security":85},"\u002Fjobs\u002F{id}","Read one job",[50,54,58],{"method":87,"path":83,"summary":88,"scope":80,"security":89},"PATCH","Partially update a job",[50,54,58],{"method":91,"path":83,"summary":92,"scope":80,"security":93},"DELETE","Delete a job",[50,54,58],{"method":72,"path":95,"summary":96,"scope":97,"security":98},"\u002Fjobs\u002F{id}\u002Fexecutions","Execution log (R6)","executions:read",[50,54,58],{"method":78,"path":95,"summary":100,"scope":101,"security":102},"Run now (R8)","executions:trigger",[50,54,58],{"method":72,"path":104,"summary":105,"scope":97,"security":106},"\u002Fjobs\u002F{id}\u002Fexecutions\u002Fstream","Execution log in real time (SPEC §4.2)",[50,54,58],{"method":72,"path":108,"summary":109,"scope":97,"security":110},"\u002Fexecutions\u002Fexport","Download the execution log (R27)",[50,54,58],{"method":72,"path":112,"summary":113,"scope":97,"security":114},"\u002Fexecutions\u002Fmetrics","Duration, failure rate and trend (R28)",[50,54,58],{"name":116,"description":117,"operations":118},"secrets","Workspace secrets resolved at execution time (R42, R43).",[119],{"method":72,"path":120,"summary":121,"scope":122,"security":123},"\u002Fsecrets","List workspace secrets (R42)","secrets:read",[50,54,58],1788438713062]