> ## Documentation Index
> Fetch the complete documentation index at: https://docs.haiqu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Circuit By Id

> Get one stored circuit by ID, including its analytics snapshot.

Use this tool when the caller already holds a ``circuit_id`` and needs that
circuit alone. Prefer this over ``list_circuits_in_experiment`` for a single
known circuit, since listing an experiment returns every circuit it holds.

When to Use:
    - Call this to read the analytics of a circuit produced by
      ``transpile_circuits``, ``compress_circuit_with_state_compression``,
      or ``load_classical_data_with_data_loading``.
    - Call this to compare a derived circuit against its parent after
      ``list_children_circuits`` returns child IDs.

Constraints:
    - ``analytics`` reflects what has been computed so far and is ``null``
      until an analytics job has run for the circuit. Use
      ``compute_circuit_analytics`` to populate it.
    - The response carries stored metadata and analytics, not the QASM
      source.

Notes:
    - For agent-facing output, surface ``name``, ``status``, and the key
      analytics fields such as qubits, depth, and two-qubit gate counts.
    - Access is granted when the caller can access the parent experiment.

Args:
    circuit_id: Circuit identifier from a prior MCP response.
    user: Authenticated user resolved from the API key.
    db: Active database session.

Returns:
    The stored circuit object enriched with MCP context text.

Raises:
    HTTPException: Raised with ``404`` when the circuit or its experiment is
        not available to the caller.



## OpenAPI

````yaml https://api.haiqu.ai/openapi.json get /ai/circuit/{circuit_id}
openapi: 3.1.0
info:
  title: Haiqu API
  summary: Haiqu RESTful API service.
  description: Cloud service providing the access to Haiqu cloud runtime
  contact:
    name: Haiqu Inc.
    url: https://haiqu.ai/
    email: info@haiqu.ai
  version: 1.5.0
servers: []
security: []
paths:
  /ai/circuit/{circuit_id}:
    get:
      summary: Get Circuit By Id
      description: >-
        Get one stored circuit by ID, including its analytics snapshot.


        Use this tool when the caller already holds a ``circuit_id`` and needs
        that

        circuit alone. Prefer this over ``list_circuits_in_experiment`` for a
        single

        known circuit, since listing an experiment returns every circuit it
        holds.


        When to Use:
            - Call this to read the analytics of a circuit produced by
              ``transpile_circuits``, ``compress_circuit_with_state_compression``,
              or ``load_classical_data_with_data_loading``.
            - Call this to compare a derived circuit against its parent after
              ``list_children_circuits`` returns child IDs.

        Constraints:
            - ``analytics`` reflects what has been computed so far and is ``null``
              until an analytics job has run for the circuit. Use
              ``compute_circuit_analytics`` to populate it.
            - The response carries stored metadata and analytics, not the QASM
              source.

        Notes:
            - For agent-facing output, surface ``name``, ``status``, and the key
              analytics fields such as qubits, depth, and two-qubit gate counts.
            - Access is granted when the caller can access the parent experiment.

        Args:
            circuit_id: Circuit identifier from a prior MCP response.
            user: Authenticated user resolved from the API key.
            db: Active database session.

        Returns:
            The stored circuit object enriched with MCP context text.

        Raises:
            HTTPException: Raised with ``404`` when the circuit or its experiment is
                not available to the caller.
      operationId: get_circuit_by_id
      parameters:
        - name: circuit_id
          in: path
          required: true
          schema:
            type: string
            title: Circuit Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContextCircuitModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyQuery: []
        - APIKeyHeader: []
components:
  schemas:
    ContextCircuitModel:
      properties:
        id:
          type: string
          title: Id
        hash:
          type: string
          title: Hash
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          default: ''
        creation_date:
          type: string
          format: date-time
          title: Creation Date
        user_id:
          type: integer
          title: User Id
        experiment_id:
          type: string
          title: Experiment Id
        tags:
          anyOf:
            - type: string
            - type: 'null'
          title: Tags
          default: ''
        status:
          $ref: '#/components/schemas/CircuitStatus'
        generated:
          type: boolean
          title: Generated
        parameters:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Parameters
        analytics:
          anyOf:
            - $ref: '#/components/schemas/CircuitAnalyticsModel'
            - type: 'null'
        transpilation_target:
          anyOf:
            - type: string
            - type: 'null'
          title: Transpilation Target
        transpilation_options:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Transpilation Options
        transpiled_circuit_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Transpiled Circuit Ids
        compressed_circuit_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Compressed Circuit Ids
        job_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Job Ids
        context:
          type: string
          title: Context
      type: object
      required:
        - id
        - hash
        - name
        - creation_date
        - user_id
        - experiment_id
        - status
        - generated
        - context
      title: ContextCircuitModel
      description: |-
        Extend a stored circuit model with MCP context text.

        Attributes:
            context: ai summary describing the circuit role in the workflow.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CircuitStatus:
      type: string
      enum:
        - Submitted
        - Running analytics computation
        - Core metrics computation is done
        - Advanced metrics computation is done
        - Parameterized QML metrics computation is done
        - Evolution computation is done
        - Done
        - Error
      title: CircuitStatus
      description: Class for circuit analytics calculation job status.
    CircuitAnalyticsModel:
      properties:
        qubits:
          type: integer
          minimum: 1
          title: Qubits
          description: Number of qubits (must be >= 1)
        num_qubits_active:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Qubits Active
        num_parameters:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Parameters
        depth:
          type: integer
          title: Depth
        depth_2q:
          type: integer
          title: Depth 2Q
        gates_1q:
          type: integer
          title: Gates 1Q
        gates_2q:
          type: integer
          title: Gates 2Q
        other_gates:
          anyOf:
            - type: integer
            - type: 'null'
          title: Other Gates
        gates_total:
          type: integer
          title: Gates Total
        other_ops:
          type: integer
          title: Other Ops
        instructions_total:
          anyOf:
            - type: integer
            - type: 'null'
          title: Instructions Total
        operations_counts:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Operations Counts
        gate_size_distribution:
          anyOf:
            - additionalProperties:
                type: number
              type: object
            - type: 'null'
          title: Gate Size Distribution
        gate_diversity:
          anyOf:
            - additionalProperties:
                type: number
              type: object
            - type: 'null'
          title: Gate Diversity
        gate_diversity_basis_gates:
          anyOf:
            - additionalProperties:
                type: number
              type: object
            - type: 'null'
          title: Gate Diversity Basis Gates
        gate_count_distribution:
          anyOf:
            - additionalProperties:
                type: integer
              type: object
            - type: 'null'
          title: Gate Count Distribution
        program_communication:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Program Communication
          default: N/A
        critical_depth:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Critical Depth
          default: N/A
        entanglement_ratio:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Entanglement Ratio
          default: N/A
        parallelism:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Parallelism
          default: N/A
        liveness_per_qubit:
          anyOf:
            - items: {}
              type: array
            - type: string
            - type: 'null'
          title: Liveness Per Qubit
          default: N/A
        liveness:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Liveness
          default: N/A
        correlation_matrix:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Correlation Matrix
        kl_divergence:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Kl Divergence
          default: N/A
        entanglement_capability:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Entanglement Capability
          default: N/A
        expressibility:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Expressibility
          default: N/A
        quantum_fisher_information_matrix:
          anyOf:
            - items: {}
              type: array
            - type: string
            - type: 'null'
          title: Quantum Fisher Information Matrix
          default: N/A
        circuit_normalized:
          anyOf:
            - type: string
            - type: 'null'
          title: Circuit Normalized
      type: object
      required:
        - qubits
        - depth
        - depth_2q
        - gates_1q
        - gates_2q
        - gates_total
        - other_ops
      title: CircuitAnalyticsModel
      description: Data model for circuit metrics.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyQuery:
      type: apiKey
      in: query
      name: HAIQU_API_KEY
    APIKeyHeader:
      type: apiKey
      in: header
      name: authorization

````