> ## 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.

# List Circuits In Experiment

> List circuits that belong to an experiment.

Use this tool when the caller wants to inspect or choose circuits inside
one experiment before submitting runs, compression jobs, or follow-up job
lookups. Returned ``circuit.id`` values are valid inputs for execution,
compression, and circuit-job MCP tools.

When to Use:
    - Call this when the caller already has an ``experiment_id`` and needs
      candidate circuits for execution, compression, or further analysis.
    - Call this before ``list_jobs_for_circuit`` when the relevant circuit
      has not yet been selected.

Constraints:
    - ``limit`` controls the maximum number of rows returned.
    - Circuit IDs returned here should be forwarded unchanged into later MCP
      calls.

Notes:
    - Keep ``limit`` reasonably small for model-facing workflows because
      circuit objects can include analytics and metadata.
    - For agent-facing output, summarize the count and top candidates
      before expanding full records.

Args:
    experiment_id: Parent experiment identifier.
    user: Authenticated user resolved from the API key.
    db: Active database session.
    circuit_ids (list[str] | None): When specified, filter out only specific circuits.
    job_type (str | None): When specified, filter out only circuits that belong to specific job type.
                               Possible values are: "Analytics", "Data Loading", "Hybrid", "Run", "State Compression",
                               "Transpilation", "Variational", "Pretraining", "SKQD".
    limit: Maximum number of circuits to return. Defaults to ``100``.

Returns:
    A list of circuit objects capped by ``limit``.

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



## OpenAPI

````yaml https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/circuits
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.3.0
servers: []
security: []
paths:
  /ai/{experiment_id}/circuits:
    get:
      summary: List Circuits In Experiment
      description: >-
        List circuits that belong to an experiment.


        Use this tool when the caller wants to inspect or choose circuits inside

        one experiment before submitting runs, compression jobs, or follow-up
        job

        lookups. Returned ``circuit.id`` values are valid inputs for execution,

        compression, and circuit-job MCP tools.


        When to Use:
            - Call this when the caller already has an ``experiment_id`` and needs
              candidate circuits for execution, compression, or further analysis.
            - Call this before ``list_jobs_for_circuit`` when the relevant circuit
              has not yet been selected.

        Constraints:
            - ``limit`` controls the maximum number of rows returned.
            - Circuit IDs returned here should be forwarded unchanged into later MCP
              calls.

        Notes:
            - Keep ``limit`` reasonably small for model-facing workflows because
              circuit objects can include analytics and metadata.
            - For agent-facing output, summarize the count and top candidates
              before expanding full records.

        Args:
            experiment_id: Parent experiment identifier.
            user: Authenticated user resolved from the API key.
            db: Active database session.
            circuit_ids (list[str] | None): When specified, filter out only specific circuits.
            job_type (str | None): When specified, filter out only circuits that belong to specific job type.
                                       Possible values are: "Analytics", "Data Loading", "Hybrid", "Run", "State Compression",
                                       "Transpilation", "Variational", "Pretraining", "SKQD".
            limit: Maximum number of circuits to return. Defaults to ``100``.

        Returns:
            A list of circuit objects capped by ``limit``.

        Raises:
            HTTPException: Raised with ``404`` when the experiment is not available
                to the caller.
      operationId: list_circuits_in_experiment
      parameters:
        - name: experiment_id
          in: path
          required: true
          schema:
            type: string
            title: Experiment Id
        - name: circuit_ids
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            title: Circuit Ids
        - name: job_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Job Type
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 100
            title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContextCircuitModel'
                title: Response List Circuits In Experiment
        '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
        - Evolution computation is done
        - Done
        - Error
      title: CircuitStatus
      description: Class for circuit analytics calculation job status.
    CircuitAnalyticsModel:
      properties:
        qubits:
          type: integer
          title: Qubits
        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
        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

````