openapi: 3.0.3 info: contact: email: support@ionq.co name: IonQ url: https://ionq.com/ description: '*Last updated: May 15, 2026* IonQ''s API for accessing the IonQ Quantum Cloud platform Please subscribe for automated updates when we perform maintenance or experience an outage. In addition, you may use the [status endpoint](#tag/status) to check the current status of our API. ## Authentication ' title: IonQ Cloud Platform backends Jobs API version: v0.4 servers: - url: https://api.ionq.co/v0.4 tags: - name: Jobs paths: /jobs: post: operationId: CreateJob responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/JobCreationResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JobCreationPayload' description: 'Submit a single-circuit or multi-circuit job for simulation or execution. In `ionq.multi-circuit.v1` payloads, each entry in `input.circuits` inherits the parent `input.gateset` unless the circuit sets its own `gateset`. ' x-codeSamples: - lang: curl label: Single-circuit QIS job source: "curl -X POST \"https://api.ionq.co/v0.4/jobs\" \\\n -H \"Authorization: apiKey your-api-key\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"type\" : \"ionq.circuit.v1\",\n \"name\": \"Sample circuit\",\n \"metadata\": {\n \"fizz\": \"buzz\",\n \"foo\": \"bar\"\n },\n \"shots\": 500,\n \"backend\": \"qpu.forte-1\",\n \"settings\" :\n {\n \"error_mitigation\":\n {\n \"debiasing\": false\n }\n },\n \"input\": {\n \"qubits\": 2,\n \"gateset\": \"qis\",\n \"circuit\": [\n {\n \"gate\": \"h\",\n \"target\": 0\n }\n ]\n }\n }'\n" - lang: curl label: Mixed-gateset multi-circuit job source: "curl -X POST \"https://api.ionq.co/v0.4/jobs\" \\\n -H \"Authorization: apiKey your-api-key\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"type\": \"ionq.multi-circuit.v1\",\n \"backend\": \"simulator\",\n \"shots\": 500,\n \"input\": {\n \"gateset\": \"native\",\n \"qubits\": 2,\n \"circuits\": [\n {\n \"name\": \"qis circuit override\",\n \"gateset\": \"qis\",\n \"circuit\": [\n {\n \"gate\": \"h\",\n \"target\": 0\n },\n {\n \"gate\": \"cnot\",\n \"target\": 0,\n \"control\": 1\n }\n ]\n },\n {\n \"name\": \"native circuit from parent\",\n \"circuit\": [\n {\n \"gate\": \"ms\",\n \"targets\": [0, 1],\n \"phases\": [0, 0.25]\n },\n {\n \"gate\": \"gpi2\",\n \"target\": 0,\n \"phase\": 0.75\n }\n ]\n }\n ]\n }\n }'\n" tags: - Jobs get: operationId: GetJobs responses: '200': description: Successfully retrieved a list of jobs. content: application/json: schema: $ref: '#/components/schemas/GetJobsResponse' examples: Example 1: value: jobs: - id: e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524 status: completed type: ionq.circuit.v1 backend: simulator dry_run: false cost_model: quantum_compute_time submitter_id: 64b03577072d45001c85e9c4 project_id: 1333d459-cf47-4a5e-acc1-8d4eb4f7b025 parent_job_id: null session_id: null metadata: null name: null submitted_at: '2025-05-28T20:47:05.440Z' started_at: null completed_at: null predicted_execution_duration_ms: null predicted_wait_time_ms: null execution_duration_ms: null shots: 1000 noise: model: ideal failure: null settings: compilation: {} stats: qubits: 20 circuits: 1 gate_counts: 1q: 1028 2q: 110 predicted_quantum_compute_time_us: 5000 billed_quantum_compute_time_us: 5200 results: probabilities: url: /v0.4/jobs/e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524/results/probabilities output: {} next: null '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: - in: query name: ids required: false schema: type: array items: type: string - in: query name: parent_job_id required: false schema: type: string - in: query name: status required: false schema: $ref: '#/components/schemas/JobStatus' - description: Filter jobs by backend target. Supports single target or comma-separated list of targets. in: query name: target required: false schema: type: string example: simulator - in: query name: session_id required: false schema: type: string - description: The id of another user within a shared project to view their submitted jobs. Ignored if not a project member. in: query name: submitter_id required: false schema: type: string - in: query name: limit required: false schema: format: int32 type: integer - in: query name: next required: false schema: type: string x-codeSamples: - lang: curl source: "# Get all jobs:\ncurl \"https://api.ionq.co/v0.4/jobs\" \\\n -H \"Authorization: apiKey your-api-key\"\n" tags: - Jobs delete: operationId: DeleteJobs responses: '200': description: Successfully deleted a list of jobs. content: application/json: schema: $ref: '#/components/schemas/JobsDeletedResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JobsBulkOperationRequest' x-codeSamples: - lang: curl source: "curl -X DELETE \"https://api.ionq.co/v0.4/jobs\" \\\n -H \"Authorization: apiKey your-api-key\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"ids\": [\n \"617a1f8b-59d4-435d-aa33-695433d7155e\",\n \"2ccf2773-4c28-468e-a290-2f8554808a25\",\n \"f92df2b6-d212-4f4a-b9ea-024b58c5c3e8\"\n ]\n }'\n" tags: - Jobs /jobs/{UUID}: get: operationId: GetJob responses: '200': description: Successfully retrieved a job. content: application/json: schema: $ref: '#/components/schemas/GetJobResponse' examples: Example 1: value: id: e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524 status: completed type: ionq.circuit.v1 backend: simulator dry_run: false cost_model: quantum_compute_time submitter_id: 64b03577072d45001c85e9c4 project_id: 1333d459-cf47-4a5e-acc1-8d4eb4f7b025 parent_job_id: null child_job_ids: null session_id: null metadata: null name: null submitted_at: '2025-05-28T20:47:05.440Z' started_at: null completed_at: null predicted_execution_duration_ms: null predicted_wait_time_ms: null execution_duration_ms: null shots: 1000 noise: model: ideal failure: null settings: compilation: {} stats: qubits: 20 circuits: 1 gate_counts: 1q: 1028 2q: 110 predicted_quantum_compute_time_us: 5000 billed_quantum_compute_time_us: 5200 results: probabilities: url: /v0.4/jobs/e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524/results/probabilities output: compilation: {} error_mitigation: debiasing: variants: - variant_id: 069ce8f8-f437-7d75-8000-9f5f8c3d7897 qubit_map: - 4 - 12 - 7 shots: 120 results: probabilities: url: /v0.4/jobs/e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524/variants/069ce8f8-f437-7d75-8000-9f5f8c3d7897/results/probabilities histogram: url: /v0.4/jobs/e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524/variants/069ce8f8-f437-7d75-8000-9f5f8c3d7897/results/histogram shots: url: /v0.4/jobs/e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524/variants/069ce8f8-f437-7d75-8000-9f5f8c3d7897/results/shots '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: - description: The UUID of the job — this UUID is provided in the response on job creation. in: path name: UUID required: true schema: type: string x-codeSamples: - lang: curl source: "curl \"https://api.ionq.co/v0.4/jobs/617a1f8b-59d4-435d-aa33-695433d7155e\" \\\n -H \"Authorization: apiKey your-api-key\"\n" tags: - Jobs delete: operationId: DeleteJob responses: '200': description: Successfully deleted a job. content: application/json: schema: $ref: '#/components/schemas/JobDeletedResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: - description: The UUID of the job — this UUID is provided in the response on job creation. in: path name: UUID required: true schema: type: string x-codeSamples: - lang: curl source: "curl -X DELETE \"https://api.ionq.co/v0.4/jobs/617a1f8b-59d4-435d-aa33-695433d7155e\" \\\n -H \"Authorization: apiKey your-api-key\"\n" tags: - Jobs /jobs/{UUID}/cost: get: operationId: GetJobCost responses: '200': description: Successfully retrieved the cost of a job. content: application/json: schema: $ref: '#/components/schemas/GetJobCostResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: - in: path name: UUID required: true schema: type: string x-codeSamples: - lang: curl source: "curl \"https://api.ionq.co/v0.4/jobs/0197379a-c3b8-7548-9da4-bbb7067311c1/cost\" \\\n -H \"Authorization: apiKey your-api-key\"\n" tags: - Jobs /jobs/{UUID}/circuits/{lang}: get: operationId: GetCompiledFile responses: '200': description: Successfully downloaded a compiled file. content: application/json: schema: type: string '403': description: Forbidden '404': description: Not Found '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: - in: path name: UUID required: true schema: type: string - in: path name: lang required: true schema: type: string enum: - native - qasm3 tags: - Jobs /jobs/{UUID}/status/cancel: put: operationId: CancelJob responses: '200': description: Successfully canceled a job. content: application/json: schema: $ref: '#/components/schemas/JobCanceledResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co description: Cancel the execution of many jobs at once by passing a list of jobs. summary: Cancel a job security: - apiKeyAuth: [] parameters: - description: The UUID of the job — this UUID is provided in the response on job creation. in: path name: UUID required: true schema: type: string x-codeSamples: - lang: curl source: "curl -X PUT \"https://api.ionq.co/v0.4/jobs/617a1f8b-59d4-435d-aa33-695433d7155e/status/cancel\" \\\n -H \"Authorization: apiKey your-api-key\"\n" tags: - Jobs /jobs/status/cancel: put: operationId: CancelJobs responses: '200': description: Successfully canceled a list of jobs. content: application/json: schema: $ref: '#/components/schemas/JobsCanceledResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JobsBulkOperationRequest' x-codeSamples: - lang: curl source: "curl -X PUT \"https://api.ionq.co/v0.4/jobs/status/cancel\" \\\n -H \"Authorization: apiKey your-api-key\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"ids\": [\n \"617a1f8b-59d4-435d-aa33-695433d7155e\",\n \"2ccf2773-4c28-468e-a290-2f8554808a25\",\n \"f92df2b6-d212-4f4a-b9ea-024b58c5c3e8\"\n ]\n }'\n" tags: - Jobs /jobs/estimate: get: operationId: EstimateJobCost responses: '200': description: Successfully retrieved the cost estimate of a job. content: application/json: schema: $ref: '#/components/schemas/GetJobEstimateResponse' '429': description: Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co '500': description: A generic server failure, please reach out to support@ionq.co for help with this error '502': description: Bad Gateway, this can be caused by misbehaving proxies, or by service issues. These can be retried, and downtime can be found on status.ionq.co '503': description: Service Unavailable, this is indicative of service outage, please check status.ionq.co security: - apiKeyAuth: [] parameters: - in: query name: backend required: true schema: $ref: '#/components/schemas/JobBackends' - in: query name: type required: false schema: default: ionq.circuit.v1 type: string - in: query name: qubits required: false schema: default: 25 format: int32 type: integer - in: query name: shots required: false schema: default: 1000 format: int32 type: integer - in: query name: 1q_gates required: false schema: default: 0 format: int32 type: integer - in: query name: 2q_gates required: false schema: default: 0 format: int32 type: integer - in: query name: error_mitigation required: false schema: default: false type: boolean tags: - Jobs /jobs/{UUID}/results/probabilities: get: operationId: GetJobProbabilities responses: '200': description: Probability distribution keyed by decimal qubit state. content: application/json: schema: $ref: '#/components/schemas/GetResultsResponse' '404': description: Job not found or not yet completed. summary: Fetch the probability distribution for a completed job. security: - apiKeyAuth: [] parameters: - description: The UUID of the job. in: path name: UUID required: true schema: type: string - description: Whether to apply sharpening to the probability distribution. in: query name: sharpen required: false schema: type: boolean tags: - Jobs /jobs/{UUID}/variants/{variantId}/results/probabilities: get: operationId: GetVariantProbabilities responses: '200': description: Per-variant probabilities histogram content: application/json: schema: $ref: '#/components/schemas/GetVariantResultsResponse' '404': description: Not found security: - apiKeyAuth: [] parameters: - in: path name: UUID required: true schema: type: string - in: path name: variantId required: true schema: type: string tags: - Jobs /jobs/{UUID}/variants/{variantId}/results/histogram: get: operationId: GetVariantHistogram responses: '200': description: Per-variant raw histogram (counts) content: application/json: schema: $ref: '#/components/schemas/GetVariantResultsResponse' '404': description: Not found security: - apiKeyAuth: [] parameters: - in: path name: UUID required: true schema: type: string - in: path name: variantId required: true schema: type: string tags: - Jobs /jobs/{UUID}/variants/{variantId}/results/shots: get: operationId: GetVariantShots responses: '200': description: Per-variant shot-wise results content: application/json: schema: $ref: '#/components/schemas/GetVariantResultsResponse' '404': description: Not found security: - apiKeyAuth: [] parameters: - in: path name: UUID required: true schema: type: string - in: path name: variantId required: true schema: type: string tags: - Jobs components: schemas: CircuitJobCreationPayload: properties: name: type: string metadata: $ref: '#/components/schemas/JobMetadata' description: User defined metadata shots: type: integer format: int32 default: 100 minimum: 1 maximum: 1000000 backend: $ref: '#/components/schemas/JobBackends' session_id: type: string settings: properties: error_mitigation: properties: debiasing: type: boolean type: object description: To turn on debiasing, you must request at least 500 shots compilation: properties: opt: type: number format: double precision: type: string type: object type: object dry_run: type: boolean noise: $ref: '#/components/schemas/Noise' type: type: string enum: - ionq.circuit.v1 nullable: false input: $ref: '#/components/schemas/JsonCircuitInput' required: - backend - type - input type: object additionalProperties: false GetVariantResultsResponse: properties: {} type: object additionalProperties: type: number format: double JobDeletedResponse: properties: id: type: string example: 617a1f8b-59d4-435d-aa33-695433d7155e status: type: string enum: - deleted nullable: false required: - id - status type: object additionalProperties: false QisGate: type: string enum: - x - y - z - rx - ry - rz - h - s - si - v - vi - t - ti - not - cnot - swap - xx - yy - zz - pauliexp GetJobCostResponse: properties: dry_run: type: boolean example: false estimated_cost: properties: value: type: number format: double example: 24.83 unit: type: string example: usd required: - value - unit type: object cost: properties: value: type: number format: double example: 24.83 unit: type: string example: usd required: - value - unit type: object required: - dry_run - estimated_cost type: object additionalProperties: false JsonObject: properties: {} type: object additionalProperties: {} CircuitJobCompilationSettings: properties: precision: type: string opt: type: number format: double gate_basis: type: string service_version: type: string type: object additionalProperties: false GetJobEstimateQueryParams: properties: backend: $ref: '#/components/schemas/JobBackends' type: type: string default: ionq.circuit.v1 qubits: type: integer format: int32 default: 25 shots: type: integer format: int32 default: 1000 1q_gates: type: integer format: int32 default: 0 2q_gates: type: integer format: int32 default: 0 error_mitigation: type: boolean default: false required: - backend type: object additionalProperties: false QuantumFunctionInput: oneOf: - $ref: '#/components/schemas/HamiltonianEnergyInput' - $ref: '#/components/schemas/GenericQuantumFunctionInput' discriminator: propertyName: type mapping: hamiltonian-energy: '#/components/schemas/HamiltonianEnergyInput' QuadraticConstraint: description: "A class to model quadratic inequality constraints of the form\n\n.. math::\n\n x^T P x + r^T x \\leq c." properties: quadratic_coeff: items: items: type: number type: array title: Quadratic Coeff type: array linear_coeff: items: type: number title: Linear Coeff type: array rhs: title: Rhs type: number required: - quadratic_coeff - linear_coeff - rhs type: object JobStatus: type: string enum: - submitted - ready - started - canceled - failed - completed Registers: properties: {} type: object additionalProperties: items: type: number format: double nullable: true type: array JobBackends: type: string description: 'Available options: `simulator`, `qpu.aria-1`, `qpu.aria-2`, `qpu.forte-1`, `qpu.forte-enterprise-1`' BaseJob: properties: id: type: string status: $ref: '#/components/schemas/JobStatus' type: type: string backend: type: string dry_run: type: boolean submitter_id: type: string description: The id of the user who submitted the job project_id: type: string nullable: true parent_job_id: type: string nullable: true session_id: type: string nullable: true metadata: allOf: - $ref: '#/components/schemas/JobMetadata' nullable: true name: type: string nullable: true submitted_at: $ref: '#/components/schemas/IsoTimestamp' started_at: allOf: - $ref: '#/components/schemas/IsoTimestamp' nullable: true completed_at: allOf: - $ref: '#/components/schemas/IsoTimestamp' nullable: true predicted_wait_time_ms: type: integer format: int32 nullable: true predicted_execution_duration_ms: type: integer format: int32 nullable: true execution_duration_ms: type: integer format: int32 nullable: true description: How long the job actually took to run on the QPU. Null if the job hasn't run yet. shots: type: integer format: int32 noise: $ref: '#/components/schemas/Noise' description: Only present in the response when `backend` is simulator. failure: allOf: - $ref: '#/components/schemas/Failure' nullable: true cost_model: $ref: '#/components/schemas/CostModel' description: The billing model used for this job. output: $ref: '#/components/schemas/JsonObject' settings: $ref: '#/components/schemas/JsonObject' stats: $ref: '#/components/schemas/JsonObject' results: allOf: - $ref: '#/components/schemas/JsonObject' nullable: true required: - id - status - type - backend - dry_run - submitter_id - project_id - parent_job_id - session_id - metadata - name - submitted_at - started_at - completed_at - predicted_wait_time_ms - predicted_execution_duration_ms - execution_duration_ms - failure - output - settings - stats - results type: object additionalProperties: false NumberMap: properties: {} type: object additionalProperties: type: number format: double CircuitJobStats: properties: qubits: type: integer format: int32 circuits: type: integer format: int32 gate_counts: $ref: '#/components/schemas/NumberMap' kwh: type: number format: double predicted_quantum_compute_time_us: type: integer format: int32 billed_quantum_compute_time_us: type: integer format: int32 type: object additionalProperties: false Noise: properties: model: $ref: '#/components/schemas/NoiseModel' seed: type: integer format: int32 required: - model type: object additionalProperties: false CircuitJobSettings: properties: compilation: $ref: '#/components/schemas/CircuitJobCompilationSettings' error_mitigation: properties: debiasing: anyOf: - properties: phi_chi_twirling: properties: p2q: type: number format: double t2q: type: number format: double t1q: type: number format: double type: object type: object - type: boolean type: object type: object additionalProperties: false CostModel: type: string enum: - quantum_compute_time - execution_time HamiltonianEnergyData: properties: hamiltonian: items: $ref: '#/components/schemas/HamiltonianPauliTerm' title: Hamiltonian type: array ansatz: $ref: '#/components/schemas/Ansatz' linear_constraints: default: [] items: $ref: '#/components/schemas/LinearConstraint' title: Linear Constraints type: array quadratic_constraints: default: [] items: $ref: '#/components/schemas/QuadraticConstraint' title: Quadratic Constraints type: array penalty: default: 0 nullable: true title: Penalty type: number cvar_alpha: default: null nullable: true title: Cvar Alpha type: number required: - hamiltonian - ansatz type: object QISCircuit: properties: name: type: string circuit: items: $ref: '#/components/schemas/Gate_QisGate' type: array description: Circuit gates. Can be either QIS gates or Native gates depending on the gateset property. qubits: type: integer format: int32 registers: $ref: '#/components/schemas/Registers' description: Registers to use in your circuit. Each register is a list of qubit indices (starting from zero). gateset: type: string enum: - qis nullable: false description: 'Optional gateset override for this individual circuit. If not specified, inherits from parent. When set, the circuit must use the appropriate gate format (QIS).' required: - circuit type: object additionalProperties: false Ansatz: properties: data: title: Data type: string required: - data type: object JobsDeletedResponse: properties: ids: items: type: string type: array status: type: string enum: - deleted nullable: false required: - ids - status type: object additionalProperties: false LinearConstraint: description: "A class to model linear inequality constraints of the form\n\n.. math::\n\n A x \\leq b." properties: coeffs: items: type: number title: Coeffs type: array rhs: title: Rhs type: number required: - coeffs - rhs type: object MultiCircuitJobCreationPayload: properties: name: type: string metadata: $ref: '#/components/schemas/JobMetadata' description: User defined metadata shots: type: integer format: int32 default: 100 minimum: 1 maximum: 1000000 backend: $ref: '#/components/schemas/JobBackends' session_id: type: string settings: properties: error_mitigation: properties: debiasing: type: boolean type: object description: To turn on debiasing, you must request at least 500 shots compilation: properties: opt: type: number format: double precision: type: string type: object type: object dry_run: type: boolean noise: $ref: '#/components/schemas/Noise' type: type: string enum: - ionq.multi-circuit.v1 nullable: false input: $ref: '#/components/schemas/JsonMultiCircuitInput' description: 'Submit multiple circuits in a single job. Each circuit inherits the parent `input.gateset` unless overridden by `circuits[].gateset`.' required: - backend - type - input type: object additionalProperties: false title: JSON Multi Circuit Job description: 'Submit multiple circuits in a single job. Each circuit inherits the parent `input.gateset` unless overridden by `circuits[].gateset`. ' example: type: ionq.multi-circuit.v1 backend: simulator shots: 500 input: gateset: native qubits: 2 circuits: - name: qis circuit override gateset: qis circuit: - gate: h target: 0 - gate: cnot target: 0 control: 1 - name: native circuit from parent circuit: - gate: ms targets: - 0 - 1 phases: - 0 - 0.25 - gate: gpi2 target: 0 phase: 0.75 JobCanceledResponse: properties: id: type: string example: 617a1f8b-59d4-435d-aa33-695433d7155e status: type: string enum: - canceled nullable: false required: - id - status type: object additionalProperties: false Failure: properties: code: type: string enum: - InvalidInput - CompilationError - ContractExpiredError - DebiasingError - InternalError - NotEnoughQubits - OptimizationError - PreflightError - QuantumCircuitComplexityError - QuantumComputerError - QuotaExhaustedError - SimulationError - SimulationTimeout - SystemCancel - TooLongPredictedExecutionTime - TooManyControls - TooManyGates - TooManyShots - UnknownBillingError - UnsupportedGate message: type: string required: - code - message type: object additionalProperties: false GetResultsResponse: properties: {} type: object additionalProperties: type: number format: double GetJobsResponse: properties: jobs: items: $ref: '#/components/schemas/BaseJob' type: array next: type: string nullable: true required: - jobs - next type: object additionalProperties: false Gate_NativeGate: properties: gate: $ref: '#/components/schemas/NativeGate' target: type: integer format: int32 targets: items: type: number format: double type: array description: The qubits that a quantum gate is applied to controls: items: type: number format: double type: array description: The qubits that determine whether the operation is applied to targets. phase: type: number format: double description: Phase for gpi/gpi2 gates phases: items: type: number format: double type: array description: Phases for ms gate angle: type: number format: double description: Interaction angle for ms gate (in turns, default 0.25) rotation: type: number format: double description: Rotation angle for rx/ry/rz gates required: - gate type: object additionalProperties: false GetJobEstimateResponse: properties: input_values: $ref: '#/components/schemas/GetJobEstimateQueryParams' estimated_at: $ref: '#/components/schemas/IsoTimestamp' cost_unit: type: string rate_information: properties: job_cost_minimum: type: number format: double cost_2q_gate: type: number format: double cost_1q_gate: type: number format: double organization: type: string required: - job_cost_minimum - cost_2q_gate - cost_1q_gate - organization type: object estimated_cost: type: number format: double estimated_execution_time: type: number format: double current_predicted_queue_time: type: number format: double required: - input_values - estimated_at - cost_unit - rate_information - estimated_cost - estimated_execution_time - current_predicted_queue_time type: object additionalProperties: false NoiseModel: type: string enum: - ideal - harmony - harmony-1 - harmony-2 - aria-1 - aria-2 - forte-1 - forte-enterprise-1 GetCircuitJobResponse: properties: id: type: string status: $ref: '#/components/schemas/JobStatus' type: type: string backend: type: string dry_run: type: boolean submitter_id: type: string description: The id of the user who submitted the job project_id: type: string nullable: true parent_job_id: type: string nullable: true session_id: type: string nullable: true metadata: allOf: - $ref: '#/components/schemas/JobMetadata' nullable: true name: type: string nullable: true submitted_at: $ref: '#/components/schemas/IsoTimestamp' started_at: allOf: - $ref: '#/components/schemas/IsoTimestamp' nullable: true completed_at: allOf: - $ref: '#/components/schemas/IsoTimestamp' nullable: true predicted_wait_time_ms: type: integer format: int32 nullable: true predicted_execution_duration_ms: type: integer format: int32 nullable: true execution_duration_ms: type: integer format: int32 nullable: true description: How long the job actually took to run on the QPU. Null if the job hasn't run yet. shots: type: integer format: int32 noise: $ref: '#/components/schemas/Noise' description: Only present in the response when `backend` is simulator. failure: allOf: - $ref: '#/components/schemas/Failure' nullable: true cost_model: $ref: '#/components/schemas/CostModel' description: The billing model used for this job. output: $ref: '#/components/schemas/JsonObject' settings: $ref: '#/components/schemas/CircuitJobSettings' stats: $ref: '#/components/schemas/CircuitJobStats' results: allOf: - $ref: '#/components/schemas/CircuitJobResult' nullable: true child_job_ids: items: type: string type: array nullable: true required: - id - status - type - backend - dry_run - submitter_id - project_id - parent_job_id - session_id - metadata - name - submitted_at - started_at - completed_at - predicted_wait_time_ms - predicted_execution_duration_ms - execution_duration_ms - failure - output - settings - stats - results - child_job_ids type: object additionalProperties: false CircuitJobResult: properties: probabilities: properties: url: type: string required: - url type: object histogram: properties: url: type: string required: - url type: object shots: properties: url: type: string required: - url type: object type: object additionalProperties: false JsonCircuitInput: anyOf: - $ref: '#/components/schemas/QisCircuitInput' title: Qis Circuit - $ref: '#/components/schemas/NativeCircuitInput' title: Native Circuit HamiltonianEnergyInput: type: object properties: data: type: object properties: type: type: string enum: - hamiltonian-energy data: $ref: '#/components/schemas/HamiltonianEnergyData' required: - type - data params: type: array items: type: number required: - data GetJobResponse: $ref: '#/components/schemas/GetCircuitJobResponse' NativeGate: type: string enum: - zz - ms - gpi - gpi2 - nop Gate_QisGate: properties: gate: $ref: '#/components/schemas/QisGate' target: type: integer format: int32 targets: items: type: number format: double type: array description: The qubits that a quantum gate is applied to controls: items: type: number format: double type: array description: The qubits that determine whether the operation is applied to targets. control: type: integer format: int32 rotation: type: number format: double description: Rotation angle for rx/ry/rz gates required: - gate type: object additionalProperties: false NativeCircuit: properties: name: type: string circuit: items: $ref: '#/components/schemas/Gate_NativeGate' type: array description: Circuit gates. Can be either QIS gates or Native gates depending on the gateset property. qubits: type: integer format: int32 registers: $ref: '#/components/schemas/Registers' description: Registers to use in your circuit. Each register is a list of qubit indices (starting from zero). gateset: type: string enum: - native nullable: false description: 'Optional gateset override for this individual circuit. If not specified, inherits from parent. When set, the circuit must use the appropriate gate format (Native).' required: - circuit type: object additionalProperties: false GenericQuantumFunctionInput: type: object properties: type: type: string data: type: object params: type: array items: type: number required: - type - data JobsCanceledResponse: properties: ids: items: type: string type: array example: - 617a1f8b-59d4-435d-aa33-695433d7155e - 617a1f8b-59d4-435d-aa33-695433d7155f status: type: string enum: - canceled nullable: false required: - ids - status type: object additionalProperties: false JobsBulkOperationRequest: properties: ids: items: type: string type: array required: - ids type: object additionalProperties: false QctrlQaoaJobCreationPayload: type: object description: 'Submit a combinatorial optimization job to solve a maxcut problem using Q-CTRL''s QAOA Solver. See our QAOA Job guide for more infromation. ' properties: name: type: string metadata: $ref: '#/components/schemas/JobMetadata' shots: type: integer format: int32 default: 100 maximum: 1000000 backend: $ref: '#/components/schemas/JobBackends' session_id: type: string settings: type: object properties: error_mitigation: type: object properties: debiasing: type: boolean dry_run: type: boolean type: type: string enum: - qctrl.qaoa.v1 input: $ref: '#/components/schemas/QctrlQaoaJobInput' external_settings: type: object properties: api_credentials: description: API Key for your Q-CTRL Account type: string external_organization: description: Optional unique slug for your target Q-CTRL organization type: string required: - api_credentials required: - backend - type - input - external_settings JobCreationPayload: anyOf: - $ref: '#/components/schemas/CircuitJobCreationPayload' title: Single Circuit - $ref: '#/components/schemas/MultiCircuitJobCreationPayload' title: Multi Circuit - $ref: '#/components/schemas/QuantumFunctionJobCreationPayload' title: Quantum Function - $ref: '#/components/schemas/QctrlQaoaJobCreationPayload' title: QAOA Function example: type: ionq.circuit.v1 input: qubits: 1 gateset: qis circuit: - gate: h target: 0 backend: qpu.forte-1 shots: 500 settings: error_mitigation: debiasing: false JsonMultiCircuitInput: properties: gateset: type: string enum: - qis - native circuits: items: anyOf: - $ref: '#/components/schemas/QISCircuit' - $ref: '#/components/schemas/NativeCircuit' type: array qubits: type: integer format: int32 minimum: 1 required: - gateset - circuits type: object QctrlQaoaJobInput: type: object properties: problem_type: type: string enum: - maxcut problem: type: object description: A NetworkX adjacency_graph object example: directed: false multigraph: false graph: [] nodes: - id: 0 - id: 1 - id: 2 adjacency: - - id: 1 - id: 2 - - id: 0 - id: 2 - - id: 0 - id: 1 required: - problem_type - problem IsoTimestamp: type: string JobCreationResponse: properties: id: type: string example: 617a1f8b-59d4-435d-aa33-695433d7155e status: $ref: '#/components/schemas/JobStatus' session_id: type: string nullable: true example: null required: - id - status - session_id type: object additionalProperties: false NativeCircuitInput: properties: qubits: type: integer format: int32 minimum: 1 circuit: items: $ref: '#/components/schemas/Gate_NativeGate' type: array gateset: type: string enum: - native nullable: false required: - circuit - gateset type: object additionalProperties: false JobMetadata: properties: {} type: object additionalProperties: type: string HamiltonianPauliTerm: properties: pauli_string: title: Pauli String type: string coefficient: title: Coefficient type: number required: - pauli_string - coefficient type: object QisCircuitInput: properties: qubits: type: integer format: int32 minimum: 1 circuit: items: $ref: '#/components/schemas/Gate_QisGate' type: array gateset: type: string enum: - qis nullable: false required: - circuit - gateset type: object additionalProperties: false QuantumFunctionJobCreationPayload: type: object properties: name: type: string metadata: $ref: '#/components/schemas/JobMetadata' shots: type: integer format: int32 default: 100 maximum: 1000000 backend: $ref: '#/components/schemas/JobBackends' session_id: type: string settings: type: object properties: error_mitigation: type: object properties: debiasing: type: boolean dry_run: type: boolean type: type: string enum: - quantum-function input: $ref: '#/components/schemas/QuantumFunctionInput' required: - backend - type - input securitySchemes: apiKeyAuth: description: 'API keys are associated with a user and can be created on the [IonQ Quantum Cloud](https://cloud.ionq.com) application. To authenticate, prefix your API Key with `apiKey ` and place it in the `Authorization` request header. Ex: `Authorization: apiKey your-api-key`' in: header name: Authorization type: apiKey