--- vendored
+++ upstream
@@ -20,12 +20,8 @@
"required": true,
"schema": {
"enum": [
- "qpu.aria-1",
- "qpu.aria-2",
"qpu.forte-1",
- "qpu.forte-enterprise-1",
- "qpu.forte-enterprise-2",
- "qpu.forte-enterprise-3"
+ "qpu.forte-enterprise-1"
],
"type": "string"
}
@@ -258,6 +254,44 @@
],
"type": "object"
},
+ "AggregationArtifactDescriptor": {
+ "additionalProperties": false,
+ "properties": {
+ "format": {
+ "$ref": "#/components/schemas/ResultFormat.HistogramV2"
+ },
+ "id": {
+ "type": "string"
+ },
+ "media_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "format",
+ "media_type"
+ ],
+ "type": "object"
+ },
+ "AggregationsOutput": {
+ "additionalProperties": false,
+ "properties": {
+ "average": {
+ "$ref": "#/components/schemas/AggregationArtifactDescriptor"
+ },
+ "dnl": {
+ "$ref": "#/components/schemas/AggregationArtifactDescriptor"
+ },
+ "majority": {
+ "$ref": "#/components/schemas/AggregationArtifactDescriptor"
+ },
+ "voting": {
+ "$ref": "#/components/schemas/AggregationArtifactDescriptor"
+ }
+ },
+ "type": "object"
+ },
"Ansatz": {
"properties": {
"data": {
@@ -278,6 +312,29 @@
],
"type": "string"
},
+ "ArtifactDescriptor": {
+ "additionalProperties": false,
+ "description": "Artifact descriptor. Pass `id` to `GET /v0.4/jobs/{id}/artifacts/{artifactId}` to\ndownload the artifact payload, then validate it against the JSON Schema for its format.",
+ "properties": {
+ "format": {
+ "description": "Format identifier. Fetch the payload schema from the matching schema-catalog endpoint.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Artifact ID used to download via the artifacts endpoint.",
+ "type": "string"
+ },
+ "media_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "format",
+ "media_type"
+ ],
+ "type": "object"
+ },
"Backend": {
"description": "A backend that you can target your program to run on.",
"properties": {
@@ -288,8 +345,8 @@
"type": "number"
},
"backend": {
- "description": "Specifies target hardware and generation where applies: `simulator`, `qpu.aria-1`, `qpu.aria-2`, `qpu.forte-1`, `qpu.forte-enterprise-1`, `qpu.forte-enterprise-2`, `qpu.forte-enterprise-3`",
- "example": "qpu.aria-1",
+ "description": "Specifies target hardware and generation where applies: `simulator`, `qpu.forte-1`, `qpu.forte-enterprise-1`",
+ "example": "qpu.forte-1",
"type": "string"
},
"characterization_id": {
@@ -494,6 +551,7 @@
"$ref": "#/components/schemas/JsonObject"
}
],
+ "description": "Job-type-specific results. The concrete shape is determined by the job type — see the per-job-type tabs above.",
"nullable": true
},
"session_id": {
@@ -517,7 +575,8 @@
"nullable": true
},
"stats": {
- "$ref": "#/components/schemas/JsonObject"
+ "$ref": "#/components/schemas/JsonObject",
+ "description": "Job-type-specific execution statistics. The concrete shape is determined by the job type (see the per-job-type tabs above)."
},
"status": {
"$ref": "#/components/schemas/JobStatus"
@@ -563,7 +622,7 @@
"description": "Quantum hardware characterization data.",
"properties": {
"backend": {
- "description": "The backend calibrated hardware: `simulator`, `qpu.aria-1`, `qpu.aria-2`, `qpu.forte-1`, `qpu.forte-enterprise-1`, `qpu.forte-enterprise-2`, `qpu.forte-enterprise-3`",
+ "description": "The backend calibrated hardware: `simulator`, `qpu.forte-1`, `qpu.forte-enterprise-1`",
"type": "string"
},
"connectivity": {
@@ -669,6 +728,32 @@
},
"type": "object"
},
+ "ChildCircuitProbabilities": {
+ "additionalProperties": {
+ "format": "double",
+ "type": "number"
+ },
+ "description": "Decimal qubit state → probability map for a single child circuit.",
+ "properties": {},
+ "type": "object"
+ },
+ "CircuitFormatsCatalog": {
+ "additionalProperties": false,
+ "description": "Catalog of supported circuit artifact formats. The same identifiers are used\nboth when a circuit is submitted (the job `input` payload) and when the\ncompiler emits a transpiled circuit (the job `output.compilation.compiled_circuits`\nmap) — both are circuits, just at different stages of the pipeline.\n\nEach property below documents one format's payload structure. Used by the\nCircuit formats docs page.",
+ "properties": {
+ "ionq.native.v1": {
+ "$ref": "#/components/schemas/IonqNativeV1"
+ },
+ "ionq.qasm3.v1": {
+ "$ref": "#/components/schemas/IonqQasm3V1"
+ }
+ },
+ "required": [
+ "ionq.native.v1",
+ "ionq.qasm3.v1"
+ ],
+ "type": "object"
+ },
"CircuitJobCompilationSettings": {
"additionalProperties": false,
"properties": {
@@ -698,7 +783,8 @@
"type": "boolean"
},
"input": {
- "$ref": "#/components/schemas/JsonCircuitInput"
+ "$ref": "#/components/schemas/CircuitJobInput",
+ "description": "The circuit to run. `ionq.circuit.v1` takes a JSON gate list (`qubits`,\n`gateset`, `circuit`); `ionq.qasm3.v1` takes the OpenQASM 3 program\nsource in `input.data`."
},
"metadata": {
"$ref": "#/components/schemas/JobMetadata",
@@ -717,6 +803,9 @@
"properties": {
"compilation": {
"properties": {
+ "gate_basis": {
+ "type": "string"
+ },
"opt": {
"format": "double",
"type": "number"
@@ -732,6 +821,9 @@
"properties": {
"debiasing": {
"type": "boolean"
+ },
+ "symmetry_verification": {
+ "type": "boolean"
}
},
"type": "object"
@@ -749,9 +841,9 @@
},
"type": {
"enum": [
- "ionq.circuit.v1"
+ "ionq.circuit.v1",
+ "ionq.qasm3.v1"
],
- "nullable": false,
"type": "string"
}
},
@@ -762,45 +854,55 @@
],
"type": "object"
},
- "CircuitJobResult": {
+ "CircuitJobErrorMitigationSettings": {
"additionalProperties": false,
"properties": {
- "histogram": {
- "properties": {
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "type": "object"
+ "debiasing": {
+ "type": "boolean"
},
- "probabilities": {
- "properties": {
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "type": "object"
+ "symmetry_verification": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "CircuitJobInput": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/QisCircuitInput",
+ "title": "Qis Circuit"
},
- "shots": {
- "properties": {
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "type": "object"
+ {
+ "$ref": "#/components/schemas/NativeCircuitInput",
+ "title": "Native Circuit"
+ },
+ {
+ "$ref": "#/components/schemas/Qasm3CircuitInput",
+ "title": "QASM3 Circuit"
+ }
+ ],
+ "description": "Every input shape a single-circuit job can carry. QIS and native circuits\nare JSON gate lists; `ionq.qasm3.v1` carries the program source instead.\nThe `type` discriminator selects which one applies — see the per-option\ndocs below."
+ },
+ "CircuitJobOutput": {
+ "additionalProperties": {},
+ "properties": {
+ "compilation": {
+ "$ref": "#/components/schemas/CompilationOutput"
+ },
+ "error_mitigation": {
+ "$ref": "#/components/schemas/ErrorMitigationOutput"
}
},
"type": "object"
},
+ "CircuitJobResults": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/ArtifactDescriptor"
+ },
+ "description": "Results object for circuit-family jobs (single-circuit, qasm, qasm3, qir, qaoa-circuit).\nEach entry is keyed by an artifact format identifier. See the [Results formats](/api-reference/v0.4/schemas/results-formats) page for the catalog of valid identifiers.",
+ "properties": {},
+ "type": "object"
+ },
"CircuitJobSettings": {
"additionalProperties": false,
"properties": {
@@ -808,38 +910,7 @@
"$ref": "#/components/schemas/CircuitJobCompilationSettings"
},
"error_mitigation": {
- "properties": {
- "debiasing": {
- "anyOf": [
- {
- "properties": {
- "phi_chi_twirling": {
- "properties": {
- "p2q": {
- "format": "double",
- "type": "number"
- },
- "t1q": {
- "format": "double",
- "type": "number"
- },
- "t2q": {
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- {
- "type": "boolean"
- }
- ]
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/CircuitJobErrorMitigationSettings"
}
},
"type": "object"
@@ -876,6 +947,23 @@
"CloneJobPayload": {
"$ref": "#/components/schemas/Partial_BaseChildJobCreationPayload_"
},
+ "CompilationOutput": {
+ "additionalProperties": false,
+ "properties": {
+ "compiled_circuits": {
+ "$ref": "#/components/schemas/CompiledCircuits"
+ }
+ },
+ "type": "object"
+ },
+ "CompiledCircuits": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/ArtifactDescriptor"
+ },
+ "description": "Map of compiled-circuit artifacts keyed by circuit format identifier\n(e.g. `ionq.native.v1`). See the [Circuit formats](/api-reference/v0.4/schemas/circuit-formats) page for the catalog of valid identifiers.",
+ "properties": {},
+ "type": "object"
+ },
"CreateSessionRequest": {
"additionalProperties": false,
"properties": {
@@ -914,6 +1002,42 @@
],
"type": "object"
},
+ "ErrorMitigationOutput": {
+ "additionalProperties": false,
+ "properties": {
+ "aggregations": {
+ "$ref": "#/components/schemas/AggregationsOutput"
+ },
+ "debiasing": {
+ "properties": {
+ "aggregation_method": {
+ "type": "string"
+ },
+ "variants": {
+ "items": {
+ "$ref": "#/components/schemas/VariantInfo"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "symmetry_verification": {
+ "nullable": true,
+ "properties": {
+ "applied": {
+ "type": "boolean"
+ },
+ "num_allowed_states": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"Failure": {
"additionalProperties": false,
"properties": {
@@ -952,6 +1076,47 @@
],
"type": "object"
},
+ "FormatSchemaDocument": {
+ "additionalProperties": {},
+ "description": "JSON Schema document returned by the schemas endpoint. The exact contents\nvary by format identifier (see the Results / Circuit formats catalog\npages for each format's structure).",
+ "properties": {
+ "$id": {
+ "description": "Format identifier (matches the path parameter).",
+ "type": "string"
+ },
+ "$schema": {
+ "description": "JSON Schema draft URI.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Human-readable description of the format.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Top-level JSON type of the format payload.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "$schema",
+ "$id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Formats": {
+ "enum": [
+ "ionq.result.probabilities.json.v1",
+ "ionq.result.probabilities.json.v2",
+ "ionq.result.histogram.json.v1",
+ "ionq.result.histogram.json.v2",
+ "ionq.result.shots.json.v1",
+ "ionq.result.shots.json.v2",
+ "ionq.result.probabilities-aggregate.json.v1",
+ "ionq.native.v1"
+ ],
+ "type": "string"
+ },
"Gate_NativeGate": {
"additionalProperties": false,
"properties": {
@@ -1069,166 +1234,13 @@
],
"type": "object"
},
- "GetCircuitJobResponse": {
- "additionalProperties": false,
- "properties": {
- "backend": {
- "type": "string"
- },
- "child_job_ids": {
- "items": {
- "type": "string"
- },
- "nullable": true,
- "type": "array"
- },
- "completed_at": {
- "allOf": [
- {
- "$ref": "#/components/schemas/IsoTimestamp"
- }
- ],
- "nullable": true
- },
- "cost_model": {
- "$ref": "#/components/schemas/ApiCostModel",
- "description": "The billing model used for this job."
- },
- "dry_run": {
- "type": "boolean"
- },
- "execution_duration_ms": {
- "description": "How long the job actually took to run on the QPU. Null if the job hasn't run yet.",
- "format": "int32",
- "nullable": true,
- "type": "integer"
- },
- "failure": {
- "allOf": [
- {
- "$ref": "#/components/schemas/Failure"
- }
- ],
- "nullable": true
- },
- "id": {
- "type": "string"
- },
- "metadata": {
- "allOf": [
- {
- "$ref": "#/components/schemas/JobMetadata"
- }
- ],
- "nullable": true
- },
- "name": {
- "nullable": true,
- "type": "string"
- },
- "noise": {
- "$ref": "#/components/schemas/Noise",
- "description": "Only present in the response when `backend` is simulator."
- },
- "output": {
- "$ref": "#/components/schemas/JsonObject"
- },
- "parent_job_id": {
- "nullable": true,
- "type": "string"
- },
- "predicted_execution_duration_ms": {
- "format": "int32",
- "nullable": true,
- "type": "integer"
- },
- "predicted_wait_time_ms": {
- "format": "int32",
- "nullable": true,
- "type": "integer"
- },
- "project_id": {
- "nullable": true,
- "type": "string"
- },
- "results": {
- "allOf": [
- {
- "$ref": "#/components/schemas/CircuitJobResult"
- }
- ],
- "nullable": true
- },
- "session_id": {
- "nullable": true,
- "type": "string"
- },
- "settings": {
- "$ref": "#/components/schemas/CircuitJobSettings"
- },
- "shots": {
- "description": "`shots` are not included with ideal simulator backend.",
- "format": "int32",
- "type": "integer"
- },
- "started_at": {
- "allOf": [
- {
- "$ref": "#/components/schemas/IsoTimestamp"
- }
- ],
- "nullable": true
- },
- "stats": {
- "$ref": "#/components/schemas/CircuitJobStats"
- },
- "status": {
- "$ref": "#/components/schemas/JobStatus"
- },
- "submitted_at": {
- "$ref": "#/components/schemas/IsoTimestamp"
- },
- "submitter_id": {
- "description": "The id of the user who submitted the job.",
- "type": "string"
- },
- "type": {
- "type": "string"
- }
- },
- "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"
- },
"GetJobCostResponse": {
"additionalProperties": false,
"properties": {
"cost": {
"properties": {
"unit": {
+ "description": "The currency code the cost is denominated in. `credit` is used instead for organizations billed in Credits.",
"example": "usd",
"type": "string"
},
@@ -1251,6 +1263,7 @@
"estimated_cost": {
"properties": {
"unit": {
+ "description": "The currency code the cost is denominated in. `credit` is used instead for organizations billed in Credits.",
"example": "usd",
"type": "string"
},
@@ -1273,17 +1286,74 @@
],
"type": "object"
},
+ "GetJobEstimateContext": {
+ "additionalProperties": false,
+ "properties": {
+ "1q_gates": {
+ "default": 0,
+ "format": "int32",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "2q_gates": {
+ "default": 0,
+ "format": "int32",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "backend": {
+ "$ref": "#/components/schemas/JobBackends"
+ },
+ "error_mitigation": {
+ "default": false,
+ "type": "boolean"
+ },
+ "organization": {
+ "nullable": true,
+ "type": "string"
+ },
+ "project": {
+ "nullable": true,
+ "type": "string"
+ },
+ "qubits": {
+ "default": 25,
+ "format": "int32",
+ "minimum": 1,
+ "type": "integer"
+ },
+ "shots": {
+ "default": 1000,
+ "format": "int32",
+ "maximum": 1000000,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "type": {
+ "default": "ionq.circuit.v1",
+ "type": "string"
+ }
+ },
+ "required": [
+ "backend",
+ "organization",
+ "project"
+ ],
+ "type": "object"
+ },
"GetJobEstimateQueryParams": {
"additionalProperties": false,
"properties": {
"1q_gates": {
"default": 0,
"format": "int32",
+ "minimum": 0,
"type": "integer"
},
"2q_gates": {
"default": 0,
"format": "int32",
+ "minimum": 0,
"type": "integer"
},
"backend": {
@@ -1296,11 +1366,14 @@
"qubits": {
"default": 25,
"format": "int32",
+ "minimum": 1,
"type": "integer"
},
"shots": {
"default": 1000,
"format": "int32",
+ "maximum": 1000000,
+ "minimum": 1,
"type": "integer"
},
"type": {
@@ -1316,88 +1389,86 @@
"GetJobEstimateResponse": {
"additionalProperties": false,
"properties": {
- "cost_unit": {
- "type": "string"
- },
"current_predicted_queue_time": {
- "format": "double",
- "type": "number"
+ "description": "Predicted time this job will wait in the queue before running, in milliseconds.",
+ "example": 397577,
+ "format": "int32",
+ "type": "integer"
+ },
+ "estimate_context": {
+ "$ref": "#/components/schemas/GetJobEstimateContext"
},
"estimated_at": {
"$ref": "#/components/schemas/IsoTimestamp"
},
- "estimated_cost": {
- "format": "double",
- "type": "number"
- },
"estimated_execution_time": {
- "format": "double",
- "type": "number"
+ "description": "Predicted job execution time, in milliseconds.",
+ "example": 96250,
+ "format": "int32",
+ "type": "integer"
},
"estimated_quantum_compute_time_us": {
+ "description": "Predicted quantum compute time, in microseconds. Only present for\ncompute_second priced backends.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "estimated_total_cost": {
"format": "double",
"type": "number"
},
- "input_values": {
- "$ref": "#/components/schemas/GetJobEstimateQueryParams"
+ "estimated_unit": {
+ "type": "string"
},
- "rate_information": {
+ "rate_card": {
"properties": {
- "cost_1q_gate": {
- "format": "double",
- "nullable": true,
- "type": "number"
- },
- "cost_2q_gate": {
- "format": "double",
- "nullable": true,
- "type": "number"
- },
- "job_cost_minimum": {
- "format": "double",
- "nullable": true,
- "type": "number"
- },
- "organization": {
+ "id": {
"type": "string"
},
- "qct_cost_cents": {
- "format": "double",
- "nullable": true,
- "type": "number"
- },
- "rate_type": {
- "enum": [
- "qct",
- "2qge"
- ],
- "type": "string"
+ "rates": {
+ "items": {
+ "$ref": "#/components/schemas/RateCardEntry"
+ },
+ "type": "array"
}
},
"required": [
- "qct_cost_cents",
- "rate_type",
- "job_cost_minimum",
- "cost_2q_gate",
- "cost_1q_gate",
- "organization"
+ "rates",
+ "id"
],
"type": "object"
}
},
"required": [
- "input_values",
+ "estimate_context",
"estimated_at",
- "cost_unit",
- "rate_information",
- "estimated_cost",
+ "estimated_unit",
+ "rate_card",
+ "estimated_total_cost",
"estimated_execution_time",
"current_predicted_queue_time"
],
"type": "object"
},
"GetJobResponse": {
- "$ref": "#/components/schemas/GetCircuitJobResponse"
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/SingleCircuitJob",
+ "title": "Single Circuit"
+ },
+ {
+ "$ref": "#/components/schemas/MultiCircuitJob",
+ "title": "Multi Circuit"
+ },
+ {
+ "$ref": "#/components/schemas/QaoaJob",
+ "title": "QAOA Function"
+ },
+ {
+ "$ref": "#/components/schemas/QuantumFunctionJob",
+ "title": "Quantum Function"
+ }
+ ],
+ "description": "Discriminated union over the four job-type families. Tabs in the docs are\ngrouped by these families (matching the `JobCreationPayload` grouping on the\nCreate Job endpoint)."
},
"GetJobsQueryParams": {
"additionalProperties": false,
@@ -1440,6 +1511,7 @@
"additionalProperties": false,
"properties": {
"jobs": {
+ "description": "List of jobs. Common fields are shown below; each entry's full per-type shape (with `settings`, `stats`, `output`, `results` documented by job type) is available on the [Get Job](/api-reference/v0.4/jobs/get-job) page.",
"items": {
"$ref": "#/components/schemas/BaseJob"
},
@@ -1473,22 +1545,26 @@
},
"type": "object"
},
- "GetVariantResultsResponse": {
- "additionalProperties": {
- "format": "double",
- "type": "number"
- },
- "properties": {},
- "type": "object"
- },
"GroupUsage": {
"description": "A group's single date usage",
"properties": {
"amount": {
- "description": "The cost amount for the group of the given date",
+ "description": "The cost amount for the group of the given date, in units given by amount_unit",
"example": 144.39,
"type": "number"
},
+ "amount_unit": {
+ "description": "The unit amount is denominated in. Normalized to credits if any credit activity is present anywhere in the request",
+ "example": "USD",
+ "type": "string"
+ },
+ "amounts": {
+ "description": "The per-currency breakdown of amount before ACU normalization",
+ "items": {
+ "$ref": "#/components/schemas/UsageAmount"
+ },
+ "type": "array"
+ },
"group_id": {
"description": "The unique ID from the group",
"example": "2bfd0fd5-5854-4916-917f-a907af586755",
@@ -1608,11 +1684,204 @@
],
"type": "object"
},
+ "IonqNativeV1": {
+ "additionalProperties": false,
+ "description": "`ionq.native.v1` — Compiled circuit expressed in IonQ native gates.\nSame shape as the native-gate circuit accepted on job creation:\na qubit count plus an ordered list of native gate operations.",
+ "example": {
+ "circuit": [
+ {
+ "gate": "ms",
+ "phases": [
+ 0,
+ 0.25
+ ],
+ "targets": [
+ 0,
+ 1
+ ]
+ },
+ {
+ "gate": "gpi2",
+ "phase": 0.75,
+ "target": 0
+ }
+ ],
+ "qubits": 2
+ },
+ "properties": {
+ "circuit": {
+ "description": "Ordered list of native gate operations.",
+ "items": {
+ "$ref": "#/components/schemas/Gate_NativeGate"
+ },
+ "type": "array"
+ },
+ "qubits": {
+ "description": "Number of qubits used by the compiled circuit.",
+ "format": "int32",
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "qubits",
+ "circuit"
+ ],
+ "type": "object"
+ },
+ "IonqQasm3V1": {
+ "description": "`ionq.qasm3.v1` — Circuit expressed as an OpenQASM 3 program.\nOn submission the program is the job's `input.data`; when the compiler\nemits this format the artifact payload is the program source itself —\ndownload it with the descriptor's `id` and read its `media_type` for the\ncontent type.\nIonQ accepts a subset of the language — see the\n[OpenQASM 3](/api-reference/v0.4/openqasm3) page for the supported constructs.",
+ "example": "OPENQASM 3.0;\nqubit[2] q;\nbit[2] c;\nh q[0];\ncx q[0], q[1];\nc[0] = measure q[0];\nc[1] = measure q[1];",
+ "type": "string"
+ },
+ "IonqResultHistogramJsonV1": {
+ "additionalProperties": {
+ "format": "double",
+ "type": "number"
+ },
+ "description": "`ionq.result.histogram.json.v1` — Legacy shot count histogram.\nFlat object keyed by decimal qubit state integer strings, values are shot counts.",
+ "example": {
+ "0": 500,
+ "1": 250,
+ "3": 250
+ },
+ "properties": {},
+ "type": "object"
+ },
+ "IonqResultHistogramJsonV2": {
+ "additionalProperties": false,
+ "description": "`ionq.result.histogram.json.v2` — Register-nested shot count histogram.\nEach register maps zero-padded bitstrings to shot counts.",
+ "example": {
+ "histogram": {
+ "registers": {
+ "output_all": {
+ "00": 500,
+ "11": 500
+ }
+ }
+ }
+ },
+ "properties": {
+ "histogram": {
+ "$ref": "#/components/schemas/RegisteredHistogram",
+ "description": "Container holding per-register histogram counts."
+ }
+ },
+ "required": [
+ "histogram"
+ ],
+ "type": "object"
+ },
+ "IonqResultProbabilitiesAggregateJsonV1": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/ChildCircuitProbabilities"
+ },
+ "description": "`ionq.result.probabilities-aggregate.json.v1` — Aggregated probability\ndistributions across all circuits in an `ionq.multi-circuit.v1` job. Top-level\nkeys are child job UUIDs; each value is that child's probability distribution.",
+ "example": {
+ "06a2099c-f845-7208-8000-8111ee2dccbc": {
+ "2": 1
+ },
+ "06a2099c-f846-7d32-8000-5726853513db": {
+ "0": 0.5,
+ "1": 0.5
+ }
+ },
+ "properties": {},
+ "type": "object"
+ },
+ "IonqResultProbabilitiesJsonV1": {
+ "additionalProperties": {
+ "format": "double",
+ "type": "number"
+ },
+ "description": "`ionq.result.probabilities.json.v1` — Legacy probability distribution.\nFlat object keyed by decimal qubit state integer strings, values are\nprobabilities summing to 1.",
+ "example": {
+ "0": 0.5,
+ "1": 0.25,
+ "3": 0.25
+ },
+ "properties": {},
+ "type": "object"
+ },
+ "IonqResultProbabilitiesJsonV2": {
+ "additionalProperties": false,
+ "description": "`ionq.result.probabilities.json.v2` — Register-nested probability distribution.\nEach register maps zero-padded bitstrings to probabilities summing to 1 within\nthe register.",
+ "example": {
+ "probabilities": {
+ "registers": {
+ "output_all": {
+ "00": 0.5,
+ "11": 0.5
+ }
+ }
+ }
+ },
+ "properties": {
+ "probabilities": {
+ "$ref": "#/components/schemas/RegisteredProbabilities",
+ "description": "Container holding per-register probability distributions."
+ }
+ },
+ "required": [
+ "probabilities"
+ ],
+ "type": "object"
+ },
+ "IonqResultShotsJsonV1": {
+ "description": "`ionq.result.shots.json.v1` — Legacy per-shot outcomes.\nArray of decimal qubit state integer strings, one element per shot.",
+ "example": [
+ "2",
+ "1",
+ "3",
+ "0"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "IonqResultShotsJsonV2": {
+ "additionalProperties": false,
+ "description": "`ionq.result.shots.json.v2` — Per-shot register outcomes. Each shot\nrecords measured bit arrays for every named register.",
+ "example": {
+ "shots": [
+ {
+ "registers": {
+ "output_all": [
+ 1,
+ 0
+ ]
+ }
+ },
+ {
+ "registers": {
+ "output_all": [
+ 0,
+ 1
+ ]
+ }
+ }
+ ]
+ },
+ "properties": {
+ "shots": {
+ "description": "Array of shot results, one object per shot.",
+ "items": {
+ "$ref": "#/components/schemas/ShotResult"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "shots"
+ ],
+ "type": "object"
+ },
"IsoTimestamp": {
"type": "string"
},
"JobBackends": {
- "description": "Available options: `simulator`, `qpu.aria-1`, `qpu.aria-2`, `qpu.forte-1`, `qpu.forte-enterprise-1`",
+ "description": "Available options: `simulator`, `qpu.forte-1`, `qpu.forte-enterprise-1`",
"type": "string"
},
"JobCanceledResponse": {
@@ -1811,21 +2080,10 @@
],
"type": "object"
},
- "JsonCircuitInput": {
- "anyOf": [
- {
- "$ref": "#/components/schemas/QisCircuitInput",
- "title": "Qis Circuit"
- },
- {
- "$ref": "#/components/schemas/NativeCircuitInput",
- "title": "Native Circuit"
- }
- ]
- },
"JsonMultiCircuitInput": {
"properties": {
"circuits": {
+ "description": "Every circuit in the job. Passing a singular `input.circuit` alongside\nthis field is rejected rather than ignored. A single job accepts up to\n5,000 circuits and 150,000 gates in total across them.",
"items": {
"anyOf": [
{
@@ -1836,6 +2094,7 @@
}
]
},
+ "maxItems": 5000,
"type": "array"
},
"gateset": {
@@ -1883,9 +2142,170 @@
],
"type": "object"
},
+ "MultiCircuitJob": {
+ "additionalProperties": false,
+ "description": "Response shape for `ionq.multi-circuit.v1` jobs. Aggregates results across\nthe per-circuit child jobs into a single results object keyed by format\nidentifier (typically `ionq.result.probabilities-aggregate.json.v1`).",
+ "properties": {
+ "backend": {
+ "type": "string"
+ },
+ "child_job_ids": {
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "completed_at": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ }
+ ],
+ "nullable": true
+ },
+ "cost_model": {
+ "$ref": "#/components/schemas/ApiCostModel",
+ "description": "The billing model used for this job."
+ },
+ "dry_run": {
+ "type": "boolean"
+ },
+ "execution_duration_ms": {
+ "description": "How long the job actually took to run on the QPU. Null if the job hasn't run yet.",
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "failure": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Failure"
+ }
+ ],
+ "nullable": true
+ },
+ "id": {
+ "type": "string"
+ },
+ "metadata": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/JobMetadata"
+ }
+ ],
+ "nullable": true
+ },
+ "name": {
+ "nullable": true,
+ "type": "string"
+ },
+ "noise": {
+ "$ref": "#/components/schemas/Noise",
+ "description": "Only present in the response when `backend` is simulator."
+ },
+ "output": {
+ "$ref": "#/components/schemas/CircuitJobOutput"
+ },
+ "parent_job_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "predicted_execution_duration_ms": {
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "predicted_wait_time_ms": {
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "project_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "results": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/MultiCircuitJobResults"
+ }
+ ],
+ "description": "Aggregated result artifacts across all child circuits, keyed by format identifier. Typically contains `ionq.result.probabilities-aggregate.json.v1` — the merged probability distribution over every child circuit. Each entry is an `ArtifactDescriptor` — pass its `id` to the [artifact endpoint](/api-reference/v0.4/jobs/get-job-artifact) to download the payload. See [Results formats](/api-reference/v0.4/schemas/results-formats) for the catalog of valid identifiers and their payload schemas.",
+ "nullable": true
+ },
+ "session_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "settings": {
+ "$ref": "#/components/schemas/CircuitJobSettings"
+ },
+ "shots": {
+ "description": "`shots` are not included with ideal simulator backend.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "started_at": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ }
+ ],
+ "nullable": true
+ },
+ "stats": {
+ "$ref": "#/components/schemas/CircuitJobStats",
+ "description": "Job-type-specific execution statistics. The concrete shape is determined by the job type (see the per-job-type tabs above)."
+ },
+ "status": {
+ "$ref": "#/components/schemas/JobStatus"
+ },
+ "submitted_at": {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ },
+ "submitter_id": {
+ "description": "The id of the user who submitted the job.",
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "ionq.multi-circuit.v1"
+ ],
+ "nullable": false,
+ "type": "string"
+ }
+ },
+ "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"
+ },
"MultiCircuitJobCreationPayload": {
"additionalProperties": false,
- "description": "Submit multiple circuits in a single job. Each circuit inherits the parent `input.gateset` unless overridden by `circuits[].gateset`.\n",
+ "description": "Submit multiple circuits in a single job. Each circuit inherits the parent `input.gateset` unless overridden by `circuits[].gateset`. You can submit up to 5,000 circuits in a single multi-circuit job, totalling at most 150,000 gates across them.\n",
"example": {
"backend": "simulator",
"input": {
@@ -1961,6 +2381,9 @@
"properties": {
"compilation": {
"properties": {
+ "gate_basis": {
+ "type": "string"
+ },
"opt": {
"format": "double",
"type": "number"
@@ -1976,6 +2399,9 @@
"properties": {
"debiasing": {
"type": "boolean"
+ },
+ "symmetry_verification": {
+ "type": "boolean"
}
},
"type": "object"
@@ -2007,6 +2433,14 @@
"title": "JSON Multi Circuit Job",
"type": "object"
},
+ "MultiCircuitJobResults": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/ArtifactDescriptor"
+ },
+ "description": "Results object for ionq.multi-circuit.v1 jobs. Keyed by artifact format identifier;\n`ionq.result.probabilities-aggregate.json.v1` is the aggregated distribution across all circuits. See the [Results formats](/api-reference/v0.4/schemas/results-formats) page for the full list of valid identifiers.",
+ "properties": {},
+ "type": "object"
+ },
"NativeCircuit": {
"additionalProperties": false,
"properties": {
@@ -2046,6 +2480,7 @@
"additionalProperties": false,
"properties": {
"circuit": {
+ "description": "The single circuit to run. To submit multiple circuits, set `type` to\n`ionq.multi-circuit.v1` and use `input.circuits`.",
"items": {
"$ref": "#/components/schemas/Gate_NativeGate"
},
@@ -2097,16 +2532,7 @@
"type": "object"
},
"NoiseModel": {
- "enum": [
- "ideal",
- "harmony",
- "harmony-1",
- "harmony-2",
- "aria-1",
- "aria-2",
- "forte-1",
- "forte-enterprise-1"
- ],
+ "description": "Available options: `ideal`, `harmony`, `harmony-1`, `harmony-2`, `aria-1`, `aria-2`, `forte-1`, `forte-enterprise-1`",
"type": "string"
},
"NumberMap": {
@@ -2146,6 +2572,9 @@
"properties": {
"compilation": {
"properties": {
+ "gate_basis": {
+ "type": "string"
+ },
"opt": {
"format": "double",
"type": "number"
@@ -2160,6 +2589,9 @@
"properties": {
"debiasing": {
"type": "boolean"
+ },
+ "symmetry_verification": {
+ "type": "boolean"
}
},
"type": "object"
@@ -2213,6 +2645,225 @@
],
"type": "object"
},
+ "QaoaJob": {
+ "additionalProperties": false,
+ "description": "Response shape for `qctrl.qaoa.v1` jobs — the parent QAOA optimization job.\nIts per-iteration child jobs (`qctrl.qaoa-circuit.v1`) are surfaced via\n`child_job_ids` and are documented under the Single Circuit tab.",
+ "properties": {
+ "backend": {
+ "type": "string"
+ },
+ "child_job_ids": {
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "completed_at": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ }
+ ],
+ "nullable": true
+ },
+ "cost_model": {
+ "$ref": "#/components/schemas/ApiCostModel",
+ "description": "The billing model used for this job."
+ },
+ "dry_run": {
+ "type": "boolean"
+ },
+ "execution_duration_ms": {
+ "description": "How long the job actually took to run on the QPU. Null if the job hasn't run yet.",
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "failure": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Failure"
+ }
+ ],
+ "nullable": true
+ },
+ "id": {
+ "type": "string"
+ },
+ "metadata": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/JobMetadata"
+ }
+ ],
+ "nullable": true
+ },
+ "name": {
+ "nullable": true,
+ "type": "string"
+ },
+ "noise": {
+ "$ref": "#/components/schemas/Noise",
+ "description": "Only present in the response when `backend` is simulator."
+ },
+ "output": {
+ "$ref": "#/components/schemas/QuantumFunctionJobOutput"
+ },
+ "parent_job_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "predicted_execution_duration_ms": {
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "predicted_wait_time_ms": {
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "project_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "results": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/QaoaJobResults"
+ }
+ ],
+ "description": "Optimization results emitted by the QAOA solver — the best objective value, the corresponding bitstring, and the current state of the optimization loop. Populated once `processing_status` is `complete`.",
+ "nullable": true
+ },
+ "session_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "settings": {
+ "$ref": "#/components/schemas/QuantumFunctionJobSettings"
+ },
+ "shots": {
+ "description": "`shots` are not included with ideal simulator backend.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "started_at": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ }
+ ],
+ "nullable": true
+ },
+ "stats": {
+ "$ref": "#/components/schemas/QuantumFunctionJobStats",
+ "description": "Job-type-specific execution statistics. The concrete shape is determined by the job type (see the per-job-type tabs above)."
+ },
+ "status": {
+ "$ref": "#/components/schemas/JobStatus"
+ },
+ "submitted_at": {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ },
+ "submitter_id": {
+ "description": "The id of the user who submitted the job.",
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "qctrl.qaoa.v1"
+ ],
+ "nullable": false,
+ "type": "string"
+ }
+ },
+ "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"
+ },
+ "QaoaJobResults": {
+ "additionalProperties": false,
+ "description": "Results for `qctrl.qaoa.v1` jobs.",
+ "properties": {
+ "qaoa_results": {
+ "$ref": "#/components/schemas/QaoaResults"
+ }
+ },
+ "type": "object"
+ },
+ "QaoaResults": {
+ "additionalProperties": false,
+ "description": "Optimization output recorded by a Q-CTRL QAOA job after it completes.",
+ "properties": {
+ "optimal_bitstring": {
+ "description": "Bitstring corresponding to the best solution found.",
+ "type": "string"
+ },
+ "optimal_cost": {
+ "description": "Best objective value the optimizer reached.",
+ "format": "double",
+ "type": "number"
+ },
+ "processing_status": {
+ "description": "Current state of the optimization loop.",
+ "enum": [
+ "running",
+ "complete",
+ "max_iteration"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "optimal_cost",
+ "optimal_bitstring",
+ "processing_status"
+ ],
+ "type": "object"
+ },
+ "Qasm3CircuitInput": {
+ "additionalProperties": false,
+ "description": "Submit an OpenQASM 3 program with `type: ionq.qasm3.v1`. `data` carries the program source as a single string. IonQ accepts a subset of the language — see the [OpenQASM 3](/api-reference/v0.4/openqasm3) page.\n",
+ "example": {
+ "data": "OPENQASM 3.0;\ninclude \"stdgates.inc\";\nqubit[2] q;\nbit[2] c;\nh q[0];\ncx q[0], q[1];\nc[0] = measure q[0];\nc[1] = measure q[1];\n"
+ },
+ "properties": {
+ "data": {
+ "description": "The OpenQASM 3 program to run, as a single string.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "title": "QASM3 Circuit",
+ "type": "object"
+ },
"QctrlQaoaJobCreationPayload": {
"description": "Submit a combinatorial optimization job to solve a maxcut problem using Q-CTRL's QAOA Solver. See our QAOA Job guide for more information.\n",
"properties": {
@@ -2349,6 +3000,7 @@
"additionalProperties": false,
"properties": {
"circuit": {
+ "description": "The single circuit to run. To submit multiple circuits, set `type` to\n`ionq.multi-circuit.v1` and use `input.circuits`.",
"items": {
"$ref": "#/components/schemas/Gate_QisGate"
},
@@ -2446,6 +3098,167 @@
}
]
},
+ "QuantumFunctionJob": {
+ "additionalProperties": false,
+ "description": "Response shape for `quantum-function` jobs. Settings, stats, output, and\nresults are all free-form — the concrete shape is defined by the function\nimplementation and varies by provider.",
+ "properties": {
+ "backend": {
+ "type": "string"
+ },
+ "child_job_ids": {
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "completed_at": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ }
+ ],
+ "nullable": true
+ },
+ "cost_model": {
+ "$ref": "#/components/schemas/ApiCostModel",
+ "description": "The billing model used for this job."
+ },
+ "dry_run": {
+ "type": "boolean"
+ },
+ "execution_duration_ms": {
+ "description": "How long the job actually took to run on the QPU. Null if the job hasn't run yet.",
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "failure": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Failure"
+ }
+ ],
+ "nullable": true
+ },
+ "id": {
+ "type": "string"
+ },
+ "metadata": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/JobMetadata"
+ }
+ ],
+ "nullable": true
+ },
+ "name": {
+ "nullable": true,
+ "type": "string"
+ },
+ "noise": {
+ "$ref": "#/components/schemas/Noise",
+ "description": "Only present in the response when `backend` is simulator."
+ },
+ "output": {
+ "$ref": "#/components/schemas/QuantumFunctionJobOutput"
+ },
+ "parent_job_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "predicted_execution_duration_ms": {
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "predicted_wait_time_ms": {
+ "format": "int32",
+ "nullable": true,
+ "type": "integer"
+ },
+ "project_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "results": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/QuantumFunctionJobResults"
+ }
+ ],
+ "description": "Scalar metrics emitted by the quantum-function implementation — the expectation value of the observable (`value`) and its estimated variance across the shot ensemble (`variance`).",
+ "nullable": true
+ },
+ "session_id": {
+ "nullable": true,
+ "type": "string"
+ },
+ "settings": {
+ "$ref": "#/components/schemas/QuantumFunctionJobSettings"
+ },
+ "shots": {
+ "description": "`shots` are not included with ideal simulator backend.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "started_at": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ }
+ ],
+ "nullable": true
+ },
+ "stats": {
+ "$ref": "#/components/schemas/QuantumFunctionJobStats",
+ "description": "Job-type-specific execution statistics. The concrete shape is determined by the job type (see the per-job-type tabs above)."
+ },
+ "status": {
+ "$ref": "#/components/schemas/JobStatus"
+ },
+ "submitted_at": {
+ "$ref": "#/components/schemas/IsoTimestamp"
+ },
+ "submitter_id": {
+ "description": "The id of the user who submitted the job.",
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "quantum-function"
+ ],
+ "nullable": false,
+ "type": "string"
+ }
+ },
+ "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"
+ },
"QuantumFunctionJobCreationPayload": {
"properties": {
"backend": {
@@ -2499,6 +3312,147 @@
],
"type": "object"
},
+ "QuantumFunctionJobOutput": {
+ "additionalProperties": {},
+ "description": "Output for quantum-function jobs. Shape varies by function implementation.",
+ "properties": {},
+ "type": "object"
+ },
+ "QuantumFunctionJobResults": {
+ "additionalProperties": false,
+ "description": "Results for quantum-function jobs — a scalar estimator output (`value`) and\nits estimated variance across the shot ensemble (`variance`).",
+ "properties": {
+ "value": {
+ "description": "Scalar value produced by the function — typically the expectation value of the observable.",
+ "format": "double",
+ "type": "number"
+ },
+ "variance": {
+ "description": "Estimated variance of `value` across the shot ensemble.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "QuantumFunctionJobSet
... (truncated)
The spec at https://api.ionq.co/v0.4/api-docs has diverged from the vendored openapi.json. Fetch the new spec and regenerate the client.
Diff (sorted, pretty-printed JSON)