---
title: Qiskit SDK C API documentation (latest version)
description: Index of all the modules in the latest version of qiskit-c.
source: https://quantum.cloud.ibm.com/docs/en/api/qiskit-c
---

# Qiskit C API (`qiskit.h`)

The Qiskit C API is a low level interface to the core data model of Qiskit. It is designed to provide a high performance interface to Qiskit for compiled languages and provides a defined ABI to the internal Rust data model that is used to create the Python API. There are two expected modes of operation for the C API:

- A standalone shared library for creating and working with Qiskit objects from compiled languages without a runtime dependency on Python, and
- For building Python extensions that are using Qiskit but interface directly with the Rust objects from the extension code without using Python for better performance.

To get started, see [Install the Qiskit C API](/docs/guides/install-c-api). To combine the C API with custom Python extensions, see [Extend Qiskit in Python with C](/docs/guides/c-extension-for-python).

As this interface is still new in Qiskit it should be considered experimental and the interface might change between minor version releases.

## Quantum Circuit

- [QkCircuit](/docs/api/qiskit-c/qk-circuit)
- [QkQuantumRegister](/docs/api/qiskit-c/qk-quantum-register)
- [QkClassicalRegister](/docs/api/qiskit-c/qk-classical-register)
- [QkParam](/docs/api/qiskit-c/qk-param)
- [Control Flow](/docs/api/qiskit-c/qk-control-flow)
- [Classical Expressions](/docs/api/qiskit-c/qk-classical-expressions)

### Circuit Library

- [Circuit Library](/docs/api/qiskit-c/qk-circuit-library)

## Quantum information

- [QkObs](/docs/api/qiskit-c/qk-obs)
- [QkObsTerm](/docs/api/qiskit-c/qk-obs-term)
- [QkBitTerm](/docs/api/qiskit-c/qk-bit-term)
- [QkComplex64](/docs/api/qiskit-c/qk-complex-64)
- [QkExitCode](/docs/api/qiskit-c/qk-exit-code)

## Transpiler

Using the transpiler from the C API is intended to only cover circuits created solely via the C API. If you are in a hybrid mode where you’re using the C API with Python you should invoke the transpiler via the Python [`qiskit.transpiler`](/docs/api/qiskit/transpiler#module-qiskit.transpiler "qiskit.transpiler") module instead; the functionality is the same Rust internals they just offer different entrypoints. The C API for transpilation makes assumptions about the input only using constructs exposed to the C Quantum Circuit API and you will potentially get incomplete results transpiling circuits from Python via the C API.

- [QkDag](/docs/api/qiskit-c/qk-dag)
- [QkTranspiler](/docs/api/qiskit-c/qk-transpiler)
- [QkTarget](/docs/api/qiskit-c/qk-target)
- [QkTargetEntry](/docs/api/qiskit-c/qk-target-entry)
- [QkNeighbors](/docs/api/qiskit-c/qk-neighbors)
- [QkTranspileLayout](/docs/api/qiskit-c/qk-transpile-layout)
- [Transpiler Passes](/docs/api/qiskit-c/qk-transpiler-passes)
- [VF2 compiler-pass objects](/docs/api/qiskit-c/qk-vf-2-layout)
- [QkSabreLayoutOptions](/docs/api/qiskit-c/qk-sabre-layout-options)

## Utilities

- [Configuration](/docs/api/qiskit-c/config)
- [Versioning](/docs/api/qiskit-c/version)


## Contents

- [API index](/docs/api/qiskit-c)
- [Release notes](/docs/api/qiskit/release-notes)
- [Circuit Library](/docs/api/qiskit-c/qk-circuit-library)
- [Classical Expressions](/docs/api/qiskit-c/qk-classical-expressions)
- [Configuration](/docs/api/qiskit-c/config)
- [Control Flow](/docs/api/qiskit-c/qk-control-flow)
- [QkBitTerm](/docs/api/qiskit-c/qk-bit-term)
- [QkCircuit](/docs/api/qiskit-c/qk-circuit)
- [QkClassicalRegister](/docs/api/qiskit-c/qk-classical-register)
- [QkComplex64](/docs/api/qiskit-c/qk-complex-64)
- [QkDag](/docs/api/qiskit-c/qk-dag)
- [QkExitCode](/docs/api/qiskit-c/qk-exit-code)
- [QkNeighbors](/docs/api/qiskit-c/qk-neighbors)
- [QkObs](/docs/api/qiskit-c/qk-obs)
- [QkObsTerm](/docs/api/qiskit-c/qk-obs-term)
- [QkParam](/docs/api/qiskit-c/qk-param)
- [QkQuantumRegister](/docs/api/qiskit-c/qk-quantum-register)
- [QkSabreLayoutOptions](/docs/api/qiskit-c/qk-sabre-layout-options)
- [QkTarget](/docs/api/qiskit-c/qk-target)
- [QkTargetEntry](/docs/api/qiskit-c/qk-target-entry)
- [QkTranspileLayout](/docs/api/qiskit-c/qk-transpile-layout)
- [QkTranspiler](/docs/api/qiskit-c/qk-transpiler)
- [Transpiler Passes](/docs/api/qiskit-c/qk-transpiler-passes)
- [Versioning](/docs/api/qiskit-c/version)
- [VF2 compiler-pass objects](/docs/api/qiskit-c/qk-vf-2-layout)
