--- vendored
+++ upstream
@@ -258,6 +258,44 @@
],
"type": "object"
},
+ "AggregationArtifactDescriptor": {
+ "additionalProperties": false,
+ "properties": {
+ "format": {
+ "$ref": "#/components/schemas/ResultFormat.ProbabilitiesV2"
+ },
+ "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 +316,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": {
@@ -494,6 +555,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 +579,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"
@@ -669,6 +732,28 @@
},
"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"
+ }
+ },
+ "required": [
+ "ionq.native.v1"
+ ],
+ "type": "object"
+ },
"CircuitJobCompilationSettings": {
"additionalProperties": false,
"properties": {
@@ -717,12 +802,18 @@
"properties": {
"compilation": {
"properties": {
+ "gate_basis": {
+ "type": "string"
+ },
"opt": {
"format": "double",
"type": "number"
},
"precision": {
"type": "string"
+ },
+ "service_version": {
+ "type": "string"
}
},
"type": "object"
@@ -731,6 +822,35 @@
"description": "To turn on debiasing, you must request at least 500 shots",
"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"
+ }
+ ]
+ },
+ "symmetry_verification": {
"type": "boolean"
}
},
@@ -762,45 +882,64 @@
],
"type": "object"
},
- "CircuitJobResult": {
+ "CircuitJobErrorMitigationSettings": {
"additionalProperties": false,
"properties": {
- "histogram": {
- "properties": {
- "url": {
- "type": "string"
+ "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"
}
- },
- "required": [
- "url"
- ],
- "type": "object"
+ ]
},
- "probabilities": {
- "properties": {
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "type": "object"
+ "symmetry_verification": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "CircuitJobOutput": {
+ "additionalProperties": {},
+ "properties": {
+ "compilation": {
+ "$ref": "#/components/schemas/CompilationOutput"
},
- "shots": {
- "properties": {
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "type": "object"
+ "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 +947,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 +984,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 +1039,66 @@
],
"type": "object"
},
+ "ErrorMitigationOutput": {
+ "additionalProperties": false,
+ "properties": {
+ "aggregations": {
+ "$ref": "#/components/schemas/AggregationsOutput"
+ },
+ "debiasing": {
+ "anyOf": [
+ {
+ "properties": {
+ "phi_chi_twirling": {
+ "properties": {
+ "p2q": {
+ "format": "double",
+ "type": "number"
+ },
+ "t1q": {
+ "format": "double",
+ "type": "number"
+ },
+ "t2q": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "variants": {
+ "items": {
+ "$ref": "#/components/schemas/VariantInfo"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "enum": [
+ false
+ ],
+ "type": "boolean"
+ }
+ ]
+ },
+ "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 +1137,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,160 +1295,6 @@
],
"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": {
@@ -1397,7 +1469,25 @@
"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 +1530,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"
},
@@ -1608,6 +1699,194 @@
],
"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"
+ },
+ "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"
},
@@ -1883,6 +2162,167 @@
],
"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",
@@ -1961,12 +2401,18 @@
"properties": {
"compilation": {
"properties": {
+ "gate_basis": {
+ "type": "string"
+ },
"opt": {
"format": "double",
"type": "number"
},
"precision": {
"type": "string"
+ },
+ "service_version": {
+ "type": "string"
}
},
"type": "object"
@@ -1975,6 +2421,35 @@
"description": "To turn on debiasing, you must request at least 500 shots",
"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"
+ }
+ ]
+ },
+ "symmetry_verification": {
"type": "boolean"
}
},
@@ -2007,6 +2482,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": {
@@ -2146,12 +2629,18 @@
"properties": {
"compilation": {
"properties": {
+ "gate_basis": {
+ "type": "string"
+ },
"opt": {
"format": "double",
"type": "number"
},
"precision": {
"type": "string"
+ },
+ "service_version": {
+ "type": "string"
}
},
"type": "object"
@@ -2159,6 +2648,35 @@
"error_mitigation": {
"properties": {
"debiasing": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "properties": {
+ "phi_chi_twirling": {
+ "properties": {
+ "p2q": {
+ "format": "double",
+ "type": "number"
+ },
+ "t1q": {
+ "format": "double",
+ "type": "number"
+ },
+ "t2q": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ "symmetry_verification": {
"type": "boolean"
}
},
@@ -2213,6 +2731,207 @@
],
"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"
+ },
"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": {
@@ -2446,6 +3165,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 +3379,107 @@
],
"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"
+ },
+ "QuantumFunctionJobSettings": {
+ "additionalProperties": false,
+ "description": "Settings for quantum-function-family jobs (`qctrl.qaoa.v1`, `quantum-function`).\nUnlike circuit jobs, no compilation settings are accepted — only error mitigation.",
+ "properties": {
+ "error_mitigation": {
+ "$ref": "#/components/schemas/CircuitJobErrorMitigationSettings"
+ }
+ },
+ "type": "object"
+ },
+ "QuantumFunctionJobStats": {
+ "additionalProperties": {},
+ "description": "Stats for quantum-function jobs. Shape varies by function implementation.",
+ "properties": {},
+ "type": "object"
+ },
+ "RegisterHistogram": {
+ "additionalProperties": {
+ "format": "double",
+ "type": "number"
+ },
+ "description": "Bitstring → shot count map for one register.",
+ "properties": {},
+ "type": "object"
+ },
+ "RegisterProbabilities": {
+ "additionalProperties": {
+ "format": "double",
+ "type": "number"
+ },
+ "description": "Bitstring → probability map for one register. Range 0–1; probabilities\nsum to 1 within the register.",
+ "properties": {},
+ "type": "object"
+ },
+ "RegisterShot": {
+ "description": "Bit array measured on a register for one shot. Each element is 0 or 1.",
+ "items": {
+ "format": "double",
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "RegisteredHistogram": {
+ "additionalProperties": false,
+ "description": "Per-register histogram counts.",
+ "properties": {
+ "registers": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/RegisterHistogram"
+ },
+ "description": "Per-register shot counts, keyed by register name.",
+ "properties": {},
+ "type": "object"
+ }
+ },
+ "required": [
+ "registers"
+ ],
+ "type": "object"
+ },
+ "RegisteredProbabilities": {
+ "additionalProperties": false,
+ "description": "Per-register probability distributions, keyed by register name.",
+ "properties": {
+ "registers": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/RegisterProbabilities"
+ },
+ "description": "Bitstring → probability map for this register.",
+ "properties": {},
+ "type": "object"
+ }
+ },
+ "required": [
+ "registers"
+ ],
+ "type": "object"
+ },
"Registers": {
"additionalProperties": {
"items": {
@@ -2528,6 +3509,65 @@
},
"type": "object"
},
+ "ResultFormat": {
+ "enum": [
+ "ionq.result.shots.json.v1",
+ "ionq.result.shots.json.v2",
+ "ionq.result.histogram.json.v1",
+ "ionq.result.histogram.json.v2",
+ "ionq.result.probabilities.json.v1",
+ "ionq.result.probabilities.json.v2",
+ "ionq.result.probabilities-aggregate.json.v1",
+ "ionq.native.v1",
+ "ionq.qasm3.v1",
+ "ionq.ore.v1",
+ "ionq.mir.v1"
+ ],
+ "type": "string"
+ },
+ "ResultFormat.ProbabilitiesV2": {
+ "enum": [
+ "ionq.result.probabilities.json.v2"
+ ],
+ "type": "string"
+ },
+ "ResultFormatsCatalog": {
+ "additionalProperties": false,
+ "description": "Catalog of supported result artifact formats. Each property below documents\none format's payload structure. Used by the Results formats docs page.",
+ "properties": {
+ "ionq.result.histogram.json.v1": {
+ "$ref": "#/components/schemas/IonqResultHistogramJsonV1"
+ },
+ "ionq.result.histogram.json.v2": {
+ "$ref": "#/components/schemas/IonqResultHistogramJsonV2"
+ },
+ "ionq.result.probabilities-aggregate.json.v1": {
+ "$ref": "#/components/schemas/IonqResultProbabilitiesAggregateJsonV1"
+ },
+ "ionq.result.probabilities.json.v1": {
+ "$ref": "#/components/schemas/IonqResultProbabilitiesJsonV1"
+ },
+ "ionq.result.probabilities.json.v2": {
+ "$ref": "#/components/schemas/IonqResultProbabilitiesJsonV2"
+ },
+ "ionq.result.shots.json.v1": {
+ "$ref": "#/components/schemas/IonqResultShotsJsonV1"
+ },
+ "ionq.result.shots.json.v2": {
+ "$ref": "#/components/schemas/IonqResultShotsJsonV2"
+ }
+ },
+ "required": [
+ "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"
+ ],
+ "type": "object"
+ },
"Session": {
"additionalProperties": false,
"properties": {
@@ -2675,6 +3715,190 @@
],
"type": "object"
},
+ "ShotRegisters": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/RegisterShot"
+ },
+ "description": "Per-register bit arrays for one shot, keyed by register name.",
+ "properties": {},
+ "type": "object"
+ },
+ "ShotResult": {
+ "additionalProperties": false,
+ "description": "Result of a single shot — measured bit arrays for every named register.",
+ "properties": {
+ "registers": {
+ "$ref": "#/components/schemas/ShotRegisters",
+ "description": "Per-register bit arrays for this shot."
+ }
+ },
+ "required": [
+ "registers"
+ ],
+ "type": "object"
+ },
+ "SingleCircuitJob": {
+ "additionalProperties": false,
+ "description": "Response shape for single-circuit jobs.\n\nCovers every circuit-shaped job type: user-submitted (`ionq.circuit.v1`,\n`ionq.qir.v1`) and the per-circuit child jobs spawned by a QAOA run\n(`qctrl.qaoa-circuit.v1`). They all share the same settings, stats, output,\nand results shape — only the `type` discriminator differs.",
+ "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/CircuitJobResults"
+ }
+ ],
+ "description": "Result artifacts produced by the circuit, keyed by format identifier. 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": {
+ "allO
... (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)