Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.
Important

IBM Quantum Platform is moving and this version will be sunset on July 1. To get started on the new platform, read the migration guide.

qiskit.providers.ibmq.AccountProvider

class AccountProvider(credentials)

GitHub

Provider for a single IBM Quantum Experience account.

The account provider class provides access to the IBM Quantum Experience services available to this account.

You can access a provider by enabling an account with the IBMQ.enable_account() method, which returns the default provider you have access to:

from qiskit import IBMQ
provider = IBMQ.enable_account(<INSERT_IBM_QUANTUM_EXPERIENCE_TOKEN>)

To select a different provider, use the IBMQ.get_provider() method and specify the hub, group, or project name of the desired provider.

Each provider may offer different services. The main service, IBMQBackendService, is available to all providers and gives access to IBM Quantum Experience devices and simulators.

You can obtain an instance of a service using the service() method or as an attribute of this AccountProvider instance. For example:

backend_service = provider.service('backend')
backend_service = provider.service.backend

Since IBMQBackendService is the main service, some of the backend-related methods are available through this class for convenience.

The backends() method returns all the backends available to this account:

backends = provider.backends()

The get_backend() method returns a backend that matches the filters passed as argument. An example of retrieving a backend that matches a specified name:

simulator_backend = provider.get_backend('ibmq_qasm_simulator')

It is also possible to use the backend attribute to reference a backend. As an example, to retrieve the same backend from the example above:

simulator_backend = provider.backend.ibmq_qasm_simulator
Note

The backend attribute can be used to autocomplete the names of backends available to this provider. To autocomplete, press tab after provider.backend.. This feature may not be available if an error occurs during backend discovery. Also note that this feature is only available in interactive sessions, such as in Jupyter Notebook and the Python interpreter.

AccountProvider constructor.

Parameters

credentials (Credentials) – IBM Quantum Experience credentials.

__init__

__init__(credentials)

AccountProvider constructor.

Parameters

credentials (Credentials) – IBM Quantum Experience credentials.


Methods

__init__(credentials)AccountProvider constructor.
backends([name, filters])Return all backends accessible via this provider, subject to optional filtering.
get_backend([name])Return a single backend matching the specified filtering.
has_service(name)Check if this provider has access to the service.
run_circuits(circuits, backend[, shots, …])Execute the input circuit(s) on a backend using the runtime service.
service(name)Return the specified service.
services()Return all available services.

Attributes

backendReturn the backend service.
experimentReturn the experiment service.
randomReturn the random number service.
runtimeReturn the runtime service.
version

backend

Return the backend service.

Return type

IBMQBackendService

Returns

The backend service instance.

backends

backends(name=None, filters=None, **kwargs)

Return all backends accessible via this provider, subject to optional filtering.

Parameters

  • name (Optional[str]) – Backend name to filter by.

  • filters (Optional[Callable[[List[IBMQBackend]], bool]]) –

    More complex filters, such as lambda functions. For example:

    AccountProvider.backends(filters=lambda b: b.configuration().n_qubits > 5)
  • kwargs (Any) –

    Simple filters that specify a True/False criteria in the backend configuration, backends status, or provider credentials. An example to get the operational backends with 5 qubits:

    AccountProvider.backends(n_qubits=5, operational=True)

Return type

List[IBMQBackend]

Returns

The list of available backends that match the filter.

experiment

Return the experiment service.

Return type

ExperimentService

Returns

The experiment service instance.

Raises

IBMQNotAuthorizedError – If the account is not authorized to use the experiment service.

get_backend

get_backend(name=None, **kwargs)

Return a single backend matching the specified filtering.

Parameters

  • name (str) – name of the backend.
  • **kwargs – dict used for filtering.

Returns

a backend matching the filtering.

Return type

Backend

Raises

QiskitBackendNotFoundError – if no backend could be found or more than one backend matches the filtering criteria.

has_service

has_service(name)

Check if this provider has access to the service.

Parameters

name (str) – Name of the service.

Return type

bool

Returns

Whether the provider has access to the service.

Raises

IBMQInputValueError – If an unknown service name is specified.

random

Return the random number service.

Return type

IBMQRandomService

Returns

The random number service instance.

Raises

IBMQNotAuthorizedError – If the account is not authorized to use the service.

run_circuits

run_circuits(circuits, backend, shots=None, initial_layout=None, layout_method=None, routing_method=None, translation_method=None, seed_transpiler=None, optimization_level=None, init_qubits=True, rep_delay=None, transpiler_options=None, measurement_error_mitigation=False, **run_config)

Execute the input circuit(s) on a backend using the runtime service.

Note

This method uses the IBM Quantum runtime service which is not available to all accounts.

Parameters

  • circuits (Union[QuantumCircuit, List[QuantumCircuit]]) – Circuit(s) to execute.
  • backend (Union[BackendV1, BaseBackend]) – Backend to execute circuits on. Transpiler options are automatically grabbed from backend configuration and properties unless otherwise specified.
  • initial_layout (Union[Layout, Dict, List, None]) – Initial position of virtual qubits on physical qubits.
  • layout_method (Optional[str]) – Name of layout selection pass (‘trivial’, ‘dense’, ‘noise_adaptive’, ‘sabre’). Sometimes a perfect layout can be available in which case the layout_method may not run.
  • routing_method (Optional[str]) – Name of routing pass (‘basic’, ‘lookahead’, ‘stochastic’, ‘sabre’)
  • translation_method (Optional[str]) – Name of translation pass (‘unroller’, ‘translator’, ‘synthesis’)
  • seed_transpiler (Optional[int]) – Sets random seed for the stochastic parts of the transpiler.
  • optimization_level (Optional[int]) – How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer transpilation time. If None, level 1 will be chosen as default.
  • shots (Optional[int]) – Number of repetitions of each circuit, for sampling. Default: 1024.
  • rep_delay (Optional[float]) – Delay between programs in seconds. Only supported on certain backends (backend.configuration().dynamic_reprate_enabled ). If supported, rep_delay will be used instead of rep_time and must be from the range supplied by the backend (backend.configuration().rep_delay_range). Default is given by backend.configuration().default_rep_delay.
  • init_qubits (Optional[bool]) – Whether to reset the qubits to the ground state for each shot.
  • transpiler_options (Optional[dict]) – Additional transpiler options.
  • measurement_error_mitigation (Optional[bool]) – Whether to apply measurement error mitigation.
  • **run_config – Extra arguments used to configure the circuit execution.

Return type

RuntimeJob

Returns

Runtime job.

runtime

Return the runtime service.

Return type

IBMRuntimeService

Returns

The runtime service instance.

Raises

IBMQNotAuthorizedError – If the account is not authorized to use the service.

service

service(name)

Return the specified service.

Parameters

name (str) – Name of the service.

Return type

Any

Returns

The specified service.

Raises

  • IBMQInputValueError – If an unknown service name is specified.
  • IBMQNotAuthorizedError – If the account is not authorized to use the service.

services

services()

Return all available services.

Return type

Dict

Returns

All services available to this provider.

Was this page helpful?
Report a bug or request content on GitHub.