Skip to main content
IBM Quantum Platform

Migrate to the new IBM Quantum Platform (early access)

This guide is for users who do not have Premium access and want to start using the updated version of IBM Quantum® Platform (which runs on IBM Cloud®). If you have Premium access, contact your administrator for instructions.

Important

The updated version of IBM Quantum Platform is in early access mode. Therefore, you can log on, create instances, run jobs, and so on, but some functions are not available yet. If you need to use functions that are not yet available, use the classic IBM Quantum Platform or Qiskit Runtime on IBM Cloud instead.


Benefits

The new version of IBM Quantum Platform is very similar to the current interface, but provides the flexibility to add features that would be difficult or impossible to deploy with the classic platform. Examples include enhanced data privacy and security, a streamlined notifications experience, and multiple language options.


Major differences

There are a few major changes you will see in the updated IBM Quantum Platform:

  • For Open Plan users, there is no longer a limit to the number of jobs you can have in the queue.
  • Open Plan users cannot run session jobs. Previously, if you tried to run a job in a session, it was run in job mode. Now, if you try to run a job in a session, the job fails. Instead, Open Plan users should explicitly write their code to run in job or batch mode. See execution modes to learn how to set the execution mode.
  • When activating the service, an instance is required, and the channel must be set to ibm_cloud. The instance is specified by the its cloud resource name (CRN).
  • Quantum computers powered by the state-of-the-art IBM Quantum Heron processor are available through the Open Plan.
  • For classic IBM Quantum Platform users, the hierarchical authorization structure has changed. That is, there are no hubs, groups, or projects in the new platform. All user management is done through IBM Cloud identity and access management (IAM). By default, access groups are created for you when you create an instance through the IBM Quantum Platform user interface.

Instances

Instances are virtual servers that manage your workload execution, including executing quantum programs and classical compute tasks (such as processing error mitigation). Instances are specified by their Cloud Resource Name (CRN).

You can see the instances you have access to on the dashboard or by clicking the Instances tab from the dashboard. Each instance is listed with its CRN identifier. You need to include this identifier when connecting to Qiskit Runtime via the QiskitRuntimeService object when using qiskit-ibm-runtime in a Python environment.


Available plans

The following plans are available to non-Premium users:

  • Open - Free plan with 10 minutes of access to quantum computers per 28-day period.
  • Standard - Pay only for your actual usage.

The Lite Plan is deprecated and will be removed on 14 March 2025.


Current IBM Quantum Platform users

Instead of accessing the classic IBM Quantum Platform, you will now access the updated version of IBM Quantum Platform, which is integrated with IBM Cloud. Because of this integration, all users need to follow the onboarding instructions before using the new platform.

Onboard

Follow these steps to start using the new version of IBM Quantum Platform.

  1. If you don't already have one, register for an IBM Cloud account. If you already have an IBM Quantum Platform account, use the same email for this account.
  2. Create an instance.
    1. Log on to the new IBM Quantum Platform. Choose IBMid and enter your IBM Cloud account information. The dashboard opens.
    2. If you do not already have an instance, Click Create instance on the dashboard page.
      Note

      If you have already created an instance, go to your account administration page to create new ones.

    3. Specify a name and choose the type of plan you want. Scroll down to see the Terms link. After reading the terms, select the agree checkbox and click Next.
    4. On the Plan inheritance page, leave the default setting (toggle is not enabled) and click Next if you're setting up an Open instance. If you are not setting up an Open instance and you want a fixed set of QPUs to be available to this plan, enable the "Customize allocated compute resources" toggle, choose the QPUs you want this instance to be able to access, then click Next.
      Note

      If you customize the allocated compute resources, the available QPUs will never be automatically updated, regardless of any changes made to the parent plan. However, you can manually add or remove QPUs later. If you do not customize them, you will always have access to any QPU the account has access on the plan. So if in the future there is a new system added to the plan, the instance automatically has access to it.

    5. Choose whether you want an access group to be created for this instance and click Create instance. For an Open instance, you probably don't need an access group, although creating one won't impact your usage unless you add another user to the group. You can add or remove access groups at any time from IBM Cloud. To learn more, see Setting up access groups.
  3. Set up your credentials using the following steps.
    • Set the channel to ibm_cloud. If you previously set your default channel to ibm_quantum in your saved credentials, you need to update that setting. If you were previously working with Qiskit Runtime on IBM Cloud, you can skip this.
    • Specify the instance's CRN. To copy the instance CRN, go to your dashboard, go to Instances, and click the copy icon at the end of the instance's row.
    • Optionally name this set of credentials.

Set up your credentials

  1. Create an API key from the IBM Quantum Platform dashboard.

    Note

    This API key is only visible for a short amount of time so be sure to store it in a safe place. To manage your API key, including copying it again, you need to use IBM Cloud. See Managing user API keys for instructions.

  2. Use your API key to activate your Python virtual environment. See the installation instructions if you do not already have a virtual environment set up.

    If you are working in a trusted Python environment (such as on a personal laptop or workstation), use the save_account() method to save your credentials locally. (Skip to the next step if you are not using a trusted environment, such as a shared or public computer, to authenticate to IBM Quantum Platform.) To use save_account(), run python in your shell, then enter the following:

    token = "<your-API-token>"
    from qiskit_ibm_runtime import QiskitRuntimeService
     
    QiskitRuntimeService.save_account(
      token=token,
      channel="ibm_cloud", # `channel` distinguishes between different account types.
      instance="instance-CRN", # Copy the instance CRN from the Instance section on the dashboard.
      name="account-name", # Optionally name this set of credentials.
      overwrite=True # Only needed if you already have Cloud credentials.
    )

    Run exit() to close the Python shell. From now on, whenever you need to authenticate to the service, you can load your credentials with QiskitRuntimeService().

    # Load default saved credentials
    service = QiskitRuntimeService()
    # Load saved credentials if you specified a name
    service = QiskitRuntimeService(name="account-name")
    • If you have saved credentials for both an IBM Quantum Platform account and an IBM Cloud account, IBM Cloud is the default account used when you initialize your account, unless you specify set_as_default=True in your IBM Quantum Platform account when you use the save_account() method.
    • If you previously saved an IBM Quantum Platform account as the default, specify set_as_default=True for your new cloud account when you use the save_account() method.
    • If you are saving multiple accounts per channel, consider using the name parameter to differentiate them.
    • Credentials are saved to $HOME/.qiskit/qiskit-ibm.json. Do not manually edit this file.
  3. Avoid executing code on an untrusted machine or an external cloud Python environment to minimize security risks. If you must use an untrusted environment (for example, a public computer), change your API key after each use by creating a new one on the IBM Quantum Platform dashboard to reduce risk. To initialize the service in this situation, you can use code like the following:

    from qiskit_ibm_runtime import QiskitRuntimeService
     
    # After using the following code, go to the IBM Cloud API keys page (https://cloud.ibm.com/iam/apikeys)
    # and disable your API key (click Enabled slider in the API key field)
    service = QiskitRuntimeService(channel="ibm_cloud", token="<MY_IBM_QUANTUM_TOKEN>", instance="<MY_INSTANCE_CRN>")
    Caution

    When sharing code with others, ensure that your API key is not embedded directly within the Python script. Instead, share the script without the token and provide instructions for securely setting it up.

    If you accidentally share your token with someone or include it in version control like Git, immediately revoke your token by creating a new one on the IBM Quantum Platform dashboard to reduce risk.


Current Qiskit Runtime on IBM Cloud users

These updates are designed to enhance your workflow while keeping your IBM Cloud integration intact.

New interface

Until now, you’ve been using the IBM Cloud interface to create and manage your Qiskit Runtime instances. With the launch of the new IBM Quantum Platform, you can still view existing instances in IBM Cloud, but managing them in IBM Quantum Platform gives you deeper insights and control.

The new IBM Quantum Platform offers a quantum-first experience:

  • More workload insights – Better visibility into jobs and sessions.
  • Improved analytics – Understand and optimize performance like never before.
  • Greater control – Track, manage, and fine-tune workloads efficiently.

This transition enhances security, scalability, and user experience while keeping the IBM Cloud integration intact.

Steps to migrate

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