I can't find much resources about how Qiskit API libraries are organised. We could see versions by using:

import qiskit 
>> {'qiskit-terra': '0.21.2',
 'qiskit-aer': '0.10.4',
 'qiskit-ignis': None,
 'qiskit-ibmq-provider': '0.19.2',
 'qiskit': '0.37.2',
 'qiskit-nature': None,
 'qiskit-finance': None,
 'qiskit-optimization': None,
 'qiskit-machine-learning': None}

What is the purpose of these libraries?

  • 2
    $\begingroup$ This blogpost from Qiskit's official blog contains a good overview: medium.com/qiskit/… $\endgroup$ Sep 21, 2022 at 5:17
  • $\begingroup$ If the images are public licensed, please consider converting comment to answer. @Egretta.Thula $\endgroup$ Sep 21, 2022 at 5:48
  • $\begingroup$ @luciano Yes nicely ! $\endgroup$ Sep 21, 2022 at 7:14

1 Answer 1


-terra is the "core" of qiskit, containing things like the circuit class, gates, etc. -aer contains circuit simulators to test out your circuit. -ignis is for noise modeling, containing various error channels and quantum information and error correction utilities. -ibmq-provider is for running on the IBM cloud, be it QPUs or hosted simulators. Note: -ignis has been superseded by qiskit-experiments, as in @Egretta.Thula'a comment.

qiskit itself just packages everything together. -nature, -finance, -optimization, and -machine-learning are pretty self explanatory, containing tools to express problems in their respective domains as quantum programs.


Not the answer you're looking for? Browse other questions tagged or ask your own question.