2
$\begingroup$

I am a computer science master's student who is doing research in the field of quantum computing. I have an IBM quantum experience account(https://quantum-computing.ibm.com/) and as such I was provided an access token under my account settings page. As a part of my research I would like to be able to interact with the api to submit jobs, check device status, list all devices I have access to etc., using any programming language of my choice.

Unfortunately, I have been having a lot of difficulty interacting with this API due in part to not being able to find any documentation on the API endpoints, how to authenticate with the API etc. Additionally some of the information that I have found appears to be out of date or missing details. For instance, through my own investigations with monitoring network traffic on the quantum experience homepage I have discovered that the API url appears to have changed from https://quantumexperience.ng.bluemix.net/api/ to https://api.quantum-computing.ibm.com/api.

Does anyone have any documentation related to what endpoints are available and what data they return from the API, as well as how to properly authenticate with the API as this would be a great help.

Additionally, my research will involve accurate timing of how long quantum programs take to run. Is there any information either returned from the API jobs, such as the time taken to run the program or in device specifications with average times for gates, measurements, and if statements, so I can at least estimate a total time for my programs?

$\endgroup$
1
$\begingroup$

So Qiskit (qiskit.org) already does everything you are looking for. If you need to access the API directly then the IBMQ account connector (https://github.com/Qiskit/qiskit-ibmq-provider) is a good starting point in lieu of formal documentation.

| improve this answer | |
$\endgroup$
1
$\begingroup$

While the URL of the API actually changed, it looks like all methods have remained the same. You can find a list of such methods in Practical Quantum Computing for Developers by Vladimir Silva, starting at page 101. Here are some examples of these methods:

You have to log to your account:

curl -d 'apiToken=API_TOKEN' 'https://api.quantum-computing.ibm.com/api/users/loginWithToken'

where the API_TOKEN can be copied from your account information.

The answer to this request will give you four fields id, ttl, created and userId. The id field will be referred to below as ACCESS_TOKEN while userId will be referred to as USER_ID.

Thus:

  • list of all backends:

    curl 'https://api.quantum-computing.ibm.com/api/Backends?access_token=ACCESS_TOKEN'
    
  • personal infos:

    curl 'https://api.quantum-computing.ibm.com/api/users/USER_ID?access_token=ACCESS_TOKEN'
    
  • latest experiences:

    curl 'https://api.quantum-computing.ibm.com/api/users/USER_ID/codes/latest?access_token=ACCESS_TOKEN&includeExecutions=true'
    

etc.

You may have a look at my current project ibmq-shell which contains shell aliases for interacting with the API with common tools (curl and jq).

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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