{"openapi":"3.1.0","info":{"title":"qsim","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/estimate":{"post":{"summary":"Estimate","operationId":"estimate_estimate_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/balance":{"get":{"summary":"Get Balance","operationId":"get_balance_billing_balance_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Balance Billing Balance Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/checkout":{"post":{"summary":"Checkout","operationId":"checkout_billing_checkout_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Checkout Billing Checkout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/webhook":{"post":{"summary":"Stripe Webhook","operationId":"stripe_webhook_billing_webhook_post","parameters":[{"name":"stripe-signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Stripe Webhook Billing Webhook Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs":{"post":{"summary":"Submit","operationId":"submit_jobs_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Submit Jobs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Jobs","description":"One page of the signed-in account's jobs, newest first (server-side\nhistory). Pass the returned `next_cursor` back as `cursor` to walk further\ninto the past; `next_cursor` is null once the history is exhausted.\n\nCallers that ignore both fields keep the original behaviour: the most\nrecent page of jobs under the `jobs` key.","operationId":"list_jobs_jobs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Jobs Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{job_id}":{"get":{"summary":"Get Job","operationId":"get_job_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Job Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{job_id}/certificate":{"post":{"summary":"Create Certificate","description":"Generate a public, PII-free ZCC-v0.1 / ZHF-v0.1 certificate for a finished\njob the caller owns, and return its verify URL + download URL.","operationId":"create_certificate_jobs__job_id__certificate_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Certificate Jobs  Job Id  Certificate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/certify/{cert_id}":{"get":{"summary":"Verify Certificate","description":"Public, unauthenticated verification page. Reads only the certificate\nrecord (allowlisted fields), never a job.","operationId":"verify_certificate_certify__cert_id__get","parameters":[{"name":"cert_id","in":"path","required":true,"schema":{"type":"string","title":"Cert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/certify/{cert_id}/json":{"get":{"summary":"Certificate Json","description":"Public, machine-readable form of the record the HTML page renders.\n\nThe HTML page and the PDF are both presentations of a certificate. Anyone\nchecking one programmatically — an independent ZCC validator, or a tool that\ndisplays certificates it did not issue — needs the fields themselves, not a\nrendering of them. Same allowlisted record, same unauthenticated access as\nthe verify page; never a job.","operationId":"certificate_json_certify__cert_id__json_get","parameters":[{"name":"cert_id","in":"path","required":true,"schema":{"type":"string","title":"Cert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Certificate Json Certify  Cert Id  Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/certify/{cert_id}/pdf":{"get":{"summary":"Download Certificate","description":"Public PDF download of a certificate.","operationId":"download_certificate_certify__cert_id__pdf_get","parameters":[{"name":"cert_id","in":"path","required":true,"schema":{"type":"string","title":"Cert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CheckoutRequest":{"properties":{"usd":{"type":"integer","title":"Usd"}},"type":"object","required":["usd"],"title":"CheckoutRequest"},"EstimateResponse":{"properties":{"engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine"},"reason":{"type":"string","title":"Reason"},"n_qubits":{"type":"integer","title":"N Qubits"},"depth":{"type":"integer","title":"Depth"},"predicted_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Predicted Seconds"},"predicted_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Predicted Cost Usd"},"note":{"type":"string","title":"Note","default":"Predicted runtime and cost are estimates calibrated against measured benchmarks, not quoted prices. An individual run can differ."}},"type":"object","required":["engine","reason","n_qubits","depth","predicted_seconds","predicted_cost_usd"],"title":"EstimateResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobRequest":{"properties":{"qasm2":{"type":"string","title":"Qasm2"},"shots":{"type":"integer","title":"Shots","default":1024},"engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"observable":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Observable"}},"type":"object","required":["qasm2"],"title":"JobRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}