openapi: 3.1.0 info: title: QRX API version: '2026-10-11' description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-11: 5 operation(s) read from 3 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; QRX has published no machine-readable contract that the pipeline could find. Engine: local.' x-evidence-tiers: code-example: 7 documentation: -2 pages-with-code: 3 pages-read: 3 x-generated-from: documentation x-provenance: generated x-authored-by: API Evangelist x-generated: '2026-10-11' x-generator: generate-contract-from-docs.py x-engine: local x-sources: - https://qrx.codes/v1/openapi.json - https://qrx.codes/developers/docs/reference - https://dev.qrx.codes/developers/docs/reference paths: /v1/codes: post: operationId: post_v1_codes tags: - Codes summary: POST /v1/codes x-source: https://qrx.codes/v1/openapi.json responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostV1CodesResponse' x-evidence: kind: code-example language: curl snippet: 'curl","source":"curl -X POST https://qrx.codes/v1/codes \\\n -H \"Authorization: Bearer $QRX_API_KEY\" \\\n -H \"Idempotency-Key: menu-2026-10-08\" \\\n -H \"Content-Type: application/json\" \\\n -d ''{\n \"prompt\": \"A lighthouse on a cliff at sunset\",\n \"destination\": \"https://example.com/menu\"\n }''"},{"lang":"javascript","label":"JavaScript","source":"const QRX_API_KEY = process' /v1/codes/{id}: get: operationId: get_v1_codes_id tags: - Codes summary: Get a code x-source: https://qrx.codes/v1/openapi.json parameters: - name: id in: path required: true schema: type: string - name: wait in: query required: false schema: type: string description: Seconds to wait for the code to finish before answering, up to 50; 45 is a good value. 0 answers at once. responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetV1CodesIdResponse' x-evidence: kind: documentation patch: operationId: patch_v1_codes_id tags: - Codes summary: Points a link code somewhere else; printed codes follow at once. x-source: https://qrx.codes/developers/docs/reference parameters: - name: id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchV1CodesIdRequest' responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PatchV1CodesIdResponse' x-evidence: kind: documentation /v1/codes/{id}/report: post: operationId: post_v1_codes_id_report tags: - Codes summary: Reports a code’s picture as offensive or otherwise inappropriate. x-source: https://qrx.codes/developers/docs/reference parameters: - name: id in: path required: true schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PostV1CodesIdReportRequest' responses: '202': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostV1CodesIdReportResponse' x-evidence: kind: documentation /v1/{v1id}: get: operationId: get_v1_v1id tags: - Api summary: GET /v1/account x-source: https://qrx.codes/v1/openapi.json parameters: - name: v1id in: path required: true schema: type: string - name: limit in: query required: false schema: type: string responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetV1V1IdResponse' x-evidence: kind: code-example language: javascript snippet: 'fetch(''https://qrx.codes/v1/account'', {\n headers: {\n Authorization: `Bearer ${QRX_API_KEY}`,\n },\n})' collapsed_from: 3 example path(s) differing only at v1Id components: schemas: PostV1CodesResponse: type: object properties: lang: type: string label: type: string source: type: string GetV1CodesIdResponse: type: object properties: id: type: string description: The code’s id. object: type: string description: Always "code". status: type: string description: Processing status. type: type: string description: Code type (url or wifi). prompt: type: string description: Prompt text. style: type: string description: Style id if chosen. destination: type: string description: Destination URL for link codes. wifi: type: object description: Wi‑Fi network details for wifi codes. shortUrl: type: string description: Short link URL. imageUrl: type: string description: URL of the finished image. pageUrl: type: string description: URL of the code’s page in the app. error: type: object description: Error details if the code failed. createdAt: type: string description: Creation timestamp. completedAt: type: string description: Completion timestamp. PatchV1CodesIdRequest: type: object properties: destination: type: string description: Where scans go from now on. An absolute http:// or https:// URL, stored as given after trimming. 1 to 2048 characters. required: - destination PatchV1CodesIdResponse: type: object properties: id: type: string object: type: string status: type: string type: type: string prompt: type: string style: type: string destination: type: string wifi: type: object shortUrl: type: string imageUrl: type: string pageUrl: type: string error: type: object createdAt: type: string completedAt: type: string PostV1CodesIdReportRequest: type: object properties: reason: type: string description: What is wrong with the picture, in the reporter’s words. At most 500 characters. PostV1CodesIdReportResponse: type: object properties: object: type: string code: type: string receivedAt: type: string GetV1V1IdResponse: type: object properties: lang: type: string label: type: string source: type: string securitySchemes: bearer: type: http scheme: bearer security: - bearer: [] tags: - name: Api - name: Codes