Rigetti QCS API (2020-07-31)

Download OpenAPI specification:Download

Introduction

This is the documentation for the Rigetti QCS HTTP API.

You can find out more about Rigetti at https://rigetti.com, and also interact with QCS via the web at https://qcs.rigetti.com.

This API is documented in OpenAPI format and so is compatible with the dozens of language-specific client generators available here and elsewhere on the web.

Principles

This API follows REST design principles where appropriate, and otherwise an HTTP RPC paradigm. We adhere to the Google API Improvement Proposals where reasonable to provide a consistent, intuitive developer experience. HTTP response codes match their specifications, and error messages fit a common format.

Authentication

All access to the QCS API requires OAuth2 authentication provided by Okta. You can request access here. Once you have a user account, you can download your access token from QCS here.

That access token is valid for 24 hours after issuance. The value of access_token within the JSON file is the token used for authentication (don't use the entire JSON file).

Authenticate requests using the Authorization header and a Bearer prefix:

curl --header "Authorization: Bearer eyJraW...Iow"

JWTBearer

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

JWTBearerOptional

Same as JWTBearer, but the Authorization header is optionally parsed. Clients will receive a 401 response if an invalid or expired token is provided. Otherwise, the server authorizes the request against either the valid token claims or an unauthenticated user. In either case, the client may receive a 403 response.

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Quantum Processor Access

Access to the quantum processors themselves is not yet provided directly by this HTTP API, but is instead performed over ZeroMQ/rpcq. Until that changes, we suggest using pyquil to build and execute quantum programs via the Legacy API.

Legacy API

Our legacy HTTP API remains accessible at https://forest-server.qcs.rigetti.com, and it shares a source of truth with this API's services. You can use either service with the same user account and means of authentication. We strongly recommend using the API documented here, as the legacy API is on the path to deprecation.

Account

Get Group Balance

Retrieve the balance of the requested QCS group account.

Authorizations:
path Parameters
groupName
required
string

URL encoded name of group for which to retrieve account balance.

Responses

200

Request completed successfully.

403

Client not authorized to complete request.

404

QCS group account does not exist.

422

Request validation failed.

get/v1/groups/{groupName}/balance

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/balance

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "balance": 0
}

GetGroupBillingCustomer

Retrieve billing customer for a QCS group account.

Authorizations:
path Parameters
groupName
required
string

URL-encoded name of group.

Responses

200

Billing customer retrieved successfully.

403

Client is not authorized to view account billing customer.

404

Group billing customer does not exist.

get/v1/groups/{groupName}/billingCustomer

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/billingCustomer

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "email": "string",
  • "id": "string"
}

ListGroupBillingInvoices

Retrieve billing invoices for a QCS group account.

Authorizations:
path Parameters
groupName
required
string

URL-encoded name of group.

query Parameters
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

pageSize
integer

Responses

200

Billing invoices retrieved successfully.

403

Client is not authorized to view group billing invoices.

404

Group billing customer does not exist.

get/v1/groups/{groupName}/billingInvoices

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/billingInvoices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "billingInvoices":
    [
    ],
  • "nextPageToken": "string"
}

ListGroupBillingInvoiceLines

Retrieve billing invoice lines for a QCS group account's invoice.

Authorizations:
path Parameters
groupName
required
string

URL-encoded name of group.

billingInvoiceId
required
string

URL-encoded billing invoice id.

query Parameters
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

pageSize
integer

Responses

200

Billing invoice lines retrieved successfully.

403

Client is not authorized to view group billing invoice lines.

404

Group billing customer or invoice does not exist.

get/v1/groups/{groupName}/billingInvoices/{billingInvoiceId}/lines

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/billingInvoices/{billingInvoiceId}/lines

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "billingInvoiceLines":
    [
    ],
  • "nextPageToken": "string"
}

GetGroupUpcomingBillingInvoice

Retrieve upcoming invoice for QCS group billing customer.

Authorizations:
path Parameters
groupName
required
string

URL-encoded name of group.

Responses

200

Billing invoice retrieved successfully.

403

Client is not authorized to view group billing invoice.

404

Group billing customer or invoice does not exist.

get/v1/groups/{groupName}/billingInvoices:getUpcoming

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/billingInvoices:getUpcoming

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "periodEnd": "2024-11-14T18:38:14Z",
  • "periodStart": "2024-11-14T18:38:14Z",
  • "startingBalance": 0,
  • "status": "draft",
  • "subtotal": 0,
  • "tax": 0,
  • "total": 0
}

ListGroupUpcomingBillingInvoiceLines

List invoice lines for QCS group billing customer upcoming invoice.

Authorizations:
path Parameters
groupName
required
string

URL-encoded name of group.

query Parameters
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

pageSize
integer

Responses

200

Billing invoice lines retrieved successfully.

403

Client is not authorized to view group billing invoice lines.

404

Group billing customer or invoice does not exist.

get/v1/groups/{groupName}/billingInvoices:listUpcomingLines

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/billingInvoices:listUpcomingLines

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "billingInvoiceLines":
    [
    ],
  • "nextPageToken": "string"
}

List users belonging to a group

List users belonging to a group. Note, group membership may take several minutes to update within our identity provider. After adding or removing a user to or from a group, please allow up to 60 minutes for changes to be reflected.

Authorizations:
path Parameters
groupName
required
string

URL encoded name of group for which to retrieve users.

query Parameters
pageSize
integer
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

Responses

200

Group users successfully retrieved.

404

The requested group does not exist.

422

Request validation failed.

get/v1/groups/{groupName}/users

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/users

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nextPageToken": "string",
  • "users":
    [
    ]
}

Add user to a group

Add a user to a group. Note, group membership may take several minutes to update within our identity provider. After adding a user to a group, please allow up to 60 minutes for changes to be reflected.

Authorizations:
Request Body schema: application/json
groupId
string
groupName
string
userEmail
string
userId
string

Responses

204

User successfully added to group.

404

Group or user does not exist.

422

Request validation failed.

post/v1/groups:addUser

Rigetti API

https://api.qcs.rigetti.com/v1/groups:addUser

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "groupId": "string",
  • "groupName": "string",
  • "userEmail": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Remove user from a group.

Remove a user from a group. Note, group membership may take several minutes to update within our identity provider. After removing a user from a group, please allow up to 60 minutes for changes to be reflected.

Authorizations:
Request Body schema: application/json
groupId
string
groupName
string
userEmail
string
userId
string

Responses

204

User successfully removed from group.

404

Group does not exist.

422

Request validation failed, possibly because the user does not belong to the group.

post/v1/groups:removeUser

Rigetti API

https://api.qcs.rigetti.com/v1/groups:removeUser

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "groupId": "string",
  • "groupName": "string",
  • "userEmail": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Get User Balance

Retrieve the balance of the requested QCS user account.

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

Responses

200

Request completed successfully.

403

Client not authorized to complete request.

404

QCS user account does not exist.

422

Request validation failed.

get/v1/users/{userId}/balance

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/balance

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "balance": 0
}

GetUserBillingCustomer

Retrieve billing customer for a QCS user account.

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

Responses

200

Billing customer retrieved successfully.

403

Client is not authorized to view user billing customer.

404

User billing customer does not exist.

get/v1/users/{userId}/billingCustomer

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/billingCustomer

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "email": "string",
  • "id": "string"
}

ListUserBillingInvoices

Retrieve billing invoices for a QCS user account.

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

query Parameters
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

pageSize
integer

Responses

200

Billing invoices retrieved successfully.

403

Client is not authorized to view user billing invoices.

404

User billing customer does not exist.

get/v1/users/{userId}/billingInvoices

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/billingInvoices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "billingInvoices":
    [
    ],
  • "nextPageToken": "string"
}

ListUserBillingInvoiceLines

Retrieve billing invoice lines for a QCS user account's invoice.

Authorizations:
path Parameters
userId
required
string

URL-encoded QCS id of user. May be found as idpId in the AuthGetUser API call.

billingInvoiceId
required
string

URL-encoded billing invoice id.

query Parameters
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

pageSize
integer

Responses

200

Billing invoice lines retrieved successfully.

403

Client is not authorized to view user billing invoice lines.

404

User billing customer or invoice does not exist.

get/v1/users/{userId}/billingInvoices/{billingInvoiceId}/lines

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/billingInvoices/{billingInvoiceId}/lines

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "billingInvoiceLines":
    [
    ],
  • "nextPageToken": "string"
}

GetUserUpcomingBillingInvoice

Retrieve upcoming invoice for QCS user billing customer.

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

Responses

200

Upcoming billing invoice retrieved successfully.

403

Client is not authorized to view user billing invoice.

404

User billing customer or invoice does not exist.

get/v1/users/{userId}/billingInvoices:getUpcoming

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/billingInvoices:getUpcoming

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "periodEnd": "2024-11-14T18:38:14Z",
  • "periodStart": "2024-11-14T18:38:14Z",
  • "startingBalance": 0,
  • "status": "draft",
  • "subtotal": 0,
  • "tax": 0,
  • "total": 0
}

ListUserUpcomingBillingInvoiceLines

List invoice lines for QCS user billing customer upcoming invoice.

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

query Parameters
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

pageSize
integer

Responses

200

Billing invoice lines retrieved successfully.

403

Client is not authorized to view user's billing invoice lines.

404

Group billing customer or invoice does not exist.

get/v1/users/{userId}/billingInvoices:listUpcomingLines

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/billingInvoices:listUpcomingLines

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "billingInvoiceLines":
    [
    ],
  • "nextPageToken": "string"
}

GetUserEventBillingPrice

Retrieve EventBillingPrice for a user for a specific event. If no price is configured this operation will return a default EventBillingPrice for the specified product.

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

Request Body schema: application/json
product
required
string (Product)
Enum: "reservationCreation" "qpuJobCompletion" "qpuJobTime"

The set of known QCS service products.

quantumProcessorId
string <= 1000 characters

Responses

200

Retrieved EventBillingPrice successfully.

403

Client is not authorized to retrieve the EventBillingPrice.

404

The EventBillingPrice does not exist for the specified event. Because the server guarantees prices for events, the server will trigger alerts whenever returning this response.

422

Request parameter validation error.

post/v1/users/{userId}/eventBillingPrices:get

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/eventBillingPrices:get

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "product": "reservationCreation",
  • "quantumProcessorId": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 0,
  • "product": "reservationCreation",
  • "quantumProcessorId": "string",
  • "unitAmountDecimal": 0,
  • "unitLabel": "string"
}

List QCS groups for the requested user

List QCS groups for the requested user

Authorizations:
path Parameters
userId
required
string

The user's QCS id. May be found as idpId in the AuthGetUser API call.

query Parameters
pageSize
integer
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

Responses

200

Successfully retrieved groups.

422

Request validation failed.

get/v1/users/{userId}/groups

Rigetti API

https://api.qcs.rigetti.com/v1/users/{userId}/groups

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "groups":
    [
    ],
  • "nextPageToken": "string"
}

Activate User

Activate a user, completing an invitation request.

Request Body schema: application/json
credentials
required
object (UserCredentials)
profile
required
object (UserProfile)
token
required
string

Verification token provided in invitation email.

Responses

204

Request completed successfully.

422

Request validation failed.

post/v1/users:activate

Rigetti API

https://api.qcs.rigetti.com/v1/users:activate

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "credentials":
    {
    },
  • "profile":
    {
    },
  • "token": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "createdTime": "2024-11-14T18:38:14Z",
  • "id": 0,
  • "idpId": "string",
  • "profile":
    {
    }
}

ListViewerAnnouncements

List all announcements relevant to the authenticating user. By default, does not include dismissed announcements.

Authorizations:
query Parameters
pageSize
integer
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

includeDismissed
boolean
Default: false

Include dismissed announcements in the response.

Responses

200

Request completed successfully.

401

Request authentication failed.

422

Request validation failed.

get/v1/viewer/announcements

Rigetti API

https://api.qcs.rigetti.com/v1/viewer/announcements

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nextPageToken": "string",
  • "announcements":
    [
    ]
}

DismissViewerAnnouncement

Dismiss an announcement for an authenticating user, indicating that they do not want to see it again.

Authorizations:
path Parameters
announcementId
required
integer

The ID of an existing announcement.

Responses

200

Request completed successfully.

401

Request authentication failed.

404

Unknown announcement ID.

delete/v1/viewer/announcements/{announcementId}

Rigetti API

https://api.qcs.rigetti.com/v1/viewer/announcements/{announcementId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

UpdateViewerUserProfile

Update the profile of the authenticated user.

Authorizations:
Request Body schema: application/json
firstName
required
string
lastName
required
string
organization
required
string

Responses

200

Request completed successfully.

401

Request authentication failed.

404

The authenticated user could not be located within our records. Please contact support@rigetti.com if you reach this error.

422

The request could not be validated.

put/v1/viewer/userProfile

Rigetti API

https://api.qcs.rigetti.com/v1/viewer/userProfile

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "firstName": "string",
  • "lastName": "string",
  • "organization": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "createdTime": "2024-11-14T18:38:14Z",
  • "id": 0,
  • "idpId": "string",
  • "profile":
    {
    }
}

GetViewerUserOnboardingCompleted

Get the onboarding status of the authenticated user.

Authorizations:

Responses

200

Request completed successfully.

401

Request authentication failed.

get/v1/viewer/onboardingCompleted

Rigetti API

https://api.qcs.rigetti.com/v1/viewer/onboardingCompleted

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "onboardingCompleted": true
}

PutViewerUserOnboardingCompleted

Update the onboarding status of the authenticated user.

Authorizations:
Request Body schema: application/json
onboardingCompleted
required
boolean

Responses

200

Request completed successfully.

401

Request authentication failed.

put/v1/viewer/onboardingCompleted

Rigetti API

https://api.qcs.rigetti.com/v1/viewer/onboardingCompleted

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "onboardingCompleted": true
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "onboardingCompleted": true
}

Authentication

Email Password Reset Token

Send a password reset link to the provided email address, if that email matches a registered user.

Request Body schema: application/json
email
required
string

Responses

204

Request completed successfully.

422

Request validation failed.

post/v1/auth:emailPasswordResetToken

Rigetti API

https://api.qcs.rigetti.com/v1/auth:emailPasswordResetToken

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "email": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Get User

Retrieve the profile of the authenticated user.

Authorizations:

Responses

200

Request completed successfully.

401

Request authentication failed.

404

The authenticated user could not be located within our records. Please contact support@rigetti.com if you reach this error.

get/v1/auth:getUser

Rigetti API

https://api.qcs.rigetti.com/v1/auth:getUser

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "createdTime": "2024-11-14T18:38:14Z",
  • "id": 0,
  • "idpId": "string",
  • "profile":
    {
    }
}

Reset Password

Reset the password using the user's existing password. Note, this is an authenticated route.

Authorizations:
Request Body schema: application/json
newPassword
required
string
oldPassword
required
string

Responses

204

Password successfully reset.

401

Request authentication failed.

422

Request validation failed.

post/v1/auth:resetPassword

Rigetti API

https://api.qcs.rigetti.com/v1/auth:resetPassword

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "newPassword": "string",
  • "oldPassword": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Reset Password With Token

Complete the forgot password flow, resetting the new password in exchange for an emailed token.

Request Body schema: application/json
newPassword
required
string
token
required
string

Responses

204

Password successfully reset.

404

No account exists for the requested email.

422

Request validation failed.

post/v1/auth:resetPasswordWithToken

Rigetti API

https://api.qcs.rigetti.com/v1/auth:resetPasswordWithToken

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "newPassword": "string",
  • "token": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Quantum Processor Endpoints

The Endpoint is the means of access to a Quantum Processor.

List Endpoints

List all endpoints, optionally filtering by attribute.

Authorizations:
query Parameters
filter
string (Filter)

Filtering logic specified using rule-engine grammar

pageSize
integer (Pagesize)
Default: 10
pageToken
string (Pagetoken)

Responses

200

Successful Response

422

Unprocessable Entity

get/v1/endpoints

Rigetti API

https://api.qcs.rigetti.com/v1/endpoints

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "endpoints":
    [
    ],
  • "nextPageToken": "string"
}

Create Endpoint

Create an endpoint associated with your user account.

Authorizations:
Request Body schema: application/json
datacenters
Array of strings (Datacenters)
Items Enum: "berkeley-775" "fremont-fab" "rigetti-gb-1"

Which datacenters are available for endpoint placement. Defaults to berkeley-775

quantumProcessorIds
Array of strings (Quantum Processor IDs)

Public identifiers for quantum processors served by this endpoint.

Responses

201

Successful Response

400

Bad Request

404

Not Found

422

Unprocessable Entity

post/v1/endpoints

Rigetti API

https://api.qcs.rigetti.com/v1/endpoints

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "datacenters":
    [
    ],
  • "quantumProcessorIds":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string",
  • "addresses":
    {
    },
  • "datacenter": "string",
  • "healthy": true,
  • "id": "string",
  • "mock": true,
  • "quantumProcessorIds":
    [
    ]
}

Delete Endpoint

Delete an endpoint, releasing its resources. This operation is not reversible.

Authorizations:
path Parameters
endpointId
required
string (Endpoint ID)

Responses

204

Successful Response

403

Forbidden

404

Not Found

422

Unprocessable Entity

delete/v1/endpoints/{endpointId}

Rigetti API

https://api.qcs.rigetti.com/v1/endpoints/{endpointId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Get Endpoint

Retrieve a specific endpoint by its ID.

Authorizations:
path Parameters
endpointId
required
string (Endpoint ID)

Responses

200

Successful Response

404

Not Found

422

Unprocessable Entity

get/v1/endpoints/{endpointId}

Rigetti API

https://api.qcs.rigetti.com/v1/endpoints/{endpointId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string",
  • "addresses":
    {
    },
  • "datacenter": "string",
  • "healthy": true,
  • "id": "string",
  • "mock": true,
  • "quantumProcessorIds":
    [
    ]
}

Restart Endpoint

Restart an entire endpoint or a single component within an endpoint.

Authorizations:
path Parameters
endpointId
required
string (Endpoint ID)
Request Body schema: application/json
componentName
string (Component Name)

Individual component to restart

Responses

204

Successful Response

403

Forbidden

422

Unprocessable Entity

post/v1/endpoints/{endpointId}:restart

Rigetti API

https://api.qcs.rigetti.com/v1/endpoints/{endpointId}:restart

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "componentName": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

Get Default Endpoint

Retrieve the endpoint set as "default" for the given Quantum Processor.

If no endpoint is set as the default, return "not found."

Authorizations:
path Parameters
quantumProcessorId
required
string (Quantum Processor ID)

Public identifier for a quantum processor [example: Aspen-1]

Responses

200

Successful Response

404

Not Found

422

Unprocessable Entity

get/v1/quantumProcessors/{quantumProcessorId}/endpoints:getDefault

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors/{quantumProcessorId}/endpoints:getDefault

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string",
  • "addresses":
    {
    },
  • "datacenter": "string",
  • "healthy": true,
  • "id": "string",
  • "mock": true,
  • "quantumProcessorIds":
    [
    ]
}

Engagements

The Engagement is the authorization mechanism for access to the Quantum Processor.

Create Engagement

Create a new engagement using the specified parameters.

At least one of the following parameters must be supplied:

  • endpointId: The ID of the endpoint on which to engage.
  • quantumProcessorId: The ID of the quantum processor on which to engage, allowing the service to select a default endpoint. Ignored if endpointId is set.
Authorizations:
header Parameters
x-qcs-account-id
string (X-Qcs-Account-Id)

Either the client's user ID or the name of a group on behalf of which the client wishes to engage. May be overriden by accountId set in body.

x-qcs-account-type
string
Enum: "group" "user"

Indicates whether the engagement request should be made for the user or on behalf of a group. May be overriden by accountType set in body.

Request Body schema: application/json
accountId
string (Account Id)

Either the client's user ID or the name of a group on behalf of which the client wishes to engage. This value will override any values set in the headers.

accountType
string (Account Type)
Enum: "group" "user"

Indicates whether the engagement request should be made for the user or on behalf of a group. This value will override any values set in the headers.

endpointId
string (Endpoint ID)

Unique, opaque identifier for the endpoint

quantumProcessorId
string (Quantum Processor ID)

Public identifier for a quantum processor [example: Aspen-1]

tags
Array of strings (Tags)

Tags recorded on QPU requests, which reporting services may later use for querying usage records.

Responses

200

Successful Response

400

Bad Request

404

Not Found

422

Validation error

503

Endpoint is temporarily unavailable, try again later.

post/v1/engagements

Rigetti API

https://api.qcs.rigetti.com/v1/engagements

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "accountId": "string",
  • "accountType": "group",
  • "endpointId": "string",
  • "quantumProcessorId": "string",
  • "tags":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "accountId": "string",
  • "accountType": "group",
  • "address": "string",
  • "credentials":
    {
    },
  • "endpointId": "string",
  • "expiresAt": "string",
  • "minimumPriority": 0,
  • "quantumProcessorIds": [ ],
  • "tags":
    [
    ],
  • "userId": "string"
}

Quantum Processors

The Quantum Processor is the heart of the Rigetti services.

List Instruction Set Architectures

Retrieve all Instruction Set Architectures available to the user.

Authorizations:
query Parameters
pageSize
integer (Pagesize) <= 5
Default: 5
pageToken
string (Pagetoken)

Responses

200

Successful Response

422

Unprocessable Entity

get/v1/instructionSetArchitectures

Rigetti API

https://api.qcs.rigetti.com/v1/instructionSetArchitectures

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "instructionSetArchitectures":
    [
    ],
  • "nextPageToken": "string"
}

List Quantum Processors

List all QuantumProcessors available to the user.

Authorizations:
query Parameters
pageSize
integer (Pagesize)
Default: 10
pageToken
string (Pagetoken)

Responses

200

Successful Response

422

Unprocessable Entity

get/v1/quantumProcessors

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nextPageToken": "string",
  • "quantumProcessors":
    [
    ]
}

Get Quantum Processor

Retrieve a single QuantumProcessor by ID.

Authorizations:
path Parameters
quantumProcessorId
required
string (Quantum Processor ID)

Public identifier for a quantum processor [example: Aspen-1]

Responses

200

Successful Response

404

Not Found

422

Unprocessable Entity

get/v1/quantumProcessors/{quantumProcessorId}

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors/{quantumProcessorId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string"
}

List Quantum Processor Accessors

List all means of accessing a QuantumProcessor available to the user.

Authorizations:
path Parameters
quantumProcessorId
required
string (Quantum Processor ID)

Public identifier for a quantum processor [example: Aspen-1]

query Parameters
pageSize
integer (Pagesize)
Default: 10
pageToken
string (Pagetoken)

Responses

200

Successful Response

422

Unprocessable Entity

get/v1/quantumProcessors/{quantumProcessorId}/accessors

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors/{quantumProcessorId}/accessors

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "accessors":
    [
    ],
  • "nextPageToken": "string"
}

Get Instruction Set Architecture

Retrieve the Instruction Set Architecture of a QuantumProcessor by ID.

Authorizations:
path Parameters
quantumProcessorId
required
string (Quantum Processor ID)

Responses

200

Successful Response

404

Not Found

422

Unprocessable Entity

get/v1/quantumProcessors/{quantumProcessorId}/instructionSetArchitecture

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors/{quantumProcessorId}/instructionSetArchitecture

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "architecture":
    {
    },
  • "benchmarks":
    [
    ],
  • "instructions":
    [
    ],
  • "name": "string"
}

Reservations

Find existing time on a Rigetti QPU and reserve it.

Get Quantum Processor Calendar

Get calendar details for the requested quantum processor.

Authorizations:
path Parameters
quantumProcessorId
required
string

Responses

200

Request completed successfully.

403

Client not authorized to complete request.

404

The requested quantum processor does not exist.

get/v1/calendars/{quantumProcessorId}

Rigetti API

https://api.qcs.rigetti.com/v1/calendars/{quantumProcessorId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "maintenanceICal": "string"
}

List Group Reservations

List existing reservations for the requested group.

Available filter fields include:

  • startTime - timestamp
  • endTime - timestamp
  • createdTime - timestamp
  • price - integer
  • quantumProcessorId - string

Available order fields include:

  • startTime - timestamp
  • endTime - timestamp
  • createdTime - timestamp
  • price - integer
Authorizations:
path Parameters
groupName
required
string

URL encoded name of group for which to retrieve reservations.

query Parameters
filter
string (Filter)

A string conforming to a limited set of the filtering operations described in Google AIP 160.

  • Expressions are always of the form {field} {operator} {value} and may be grouped with () and joined with AND or OR.
  • Fields are specific to the route in question, but are typically a subset of attributes of the requested resource.
  • Operators are limited to =, >, >=, <, <=, and !=.
  • Values may take the following forms:
    • true or false for boolean fields
    • a number
    • a string (include surrounding "s),
    • a duration string (include surrounding "s). Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
    • a date string (include surrounding "s). Should be formatted RFC3339 5.6.

For example, startTime >= "2020-06-24T22:00:00.000Z" OR (duration >= "15m" AND endTime < "2020-06-24T22:00:00.000Z").

order
string (Order)

A string conforming to order specification described in Google AIP 132.

  • Fields are specific to the route in question, but are typically a subset of attributes of the requested resource.
  • May include a comma separated list of many fields.
  • Fields are sorted in ascending order unless the field is followed by DESC.

For example, quantumProcessorId, startTime DESC.

pageSize
integer
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

showDeleted
string
Default: "false"
Enum: "true" "false"

If you wish to include deleted (or cancelled) resources in your response, include showDeleted=true.

Responses

200

Request completed successfully.

401

Request authentication failed.

422

Request validation failed.

get/v1/groups/{groupName}/reservations

Rigetti API

https://api.qcs.rigetti.com/v1/groups/{groupName}/reservations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nextPageToken": "string",
  • "reservations":
    [
    ]
}

List Reservations

List existing reservations for the authenticated user, or a target user when specifying X-QCS-ACCOUNT-ID and X-QCS-ACCOUNT-TYPE headers.

Available filter fields include:

  • startTime - timestamp
  • endTime - timestamp
  • createdTime - timestamp
  • price - integer
  • cancelled - boolean (deprecated, use showDeleted parameter)
  • quantumProcessorId - string

Available order fields include:

  • startTime - timestamp
  • endTime - timestamp
  • createdTime - timestamp
  • price - integer
Authorizations:
query Parameters
filter
string (Filter)

A string conforming to a limited set of the filtering operations described in Google AIP 160.

  • Expressions are always of the form {field} {operator} {value} and may be grouped with () and joined with AND or OR.
  • Fields are specific to the route in question, but are typically a subset of attributes of the requested resource.
  • Operators are limited to =, >, >=, <, <=, and !=.
  • Values may take the following forms:
    • true or false for boolean fields
    • a number
    • a string (include surrounding "s),
    • a duration string (include surrounding "s). Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
    • a date string (include surrounding "s). Should be formatted RFC3339 5.6.

For example, startTime >= "2020-06-24T22:00:00.000Z" OR (duration >= "15m" AND endTime < "2020-06-24T22:00:00.000Z").

order
string (Order)

A string conforming to order specification described in Google AIP 132.

  • Fields are specific to the route in question, but are typically a subset of attributes of the requested resource.
  • May include a comma separated list of many fields.
  • Fields are sorted in ascending order unless the field is followed by DESC.

For example, quantumProcessorId, startTime DESC.

pageSize
integer
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

showDeleted
string
Default: "false"
Enum: "true" "false"

If you wish to include deleted (or cancelled) resources in your response, include showDeleted=true.

header Parameters
X-QCS-ACCOUNT-ID
string (AccountId)

Used to specify a subject account ID for a request. Does not take precedence over a corresponding request body field when one is present.

X-QCS-ACCOUNT-TYPE
string (AccountType)
Enum: "group" "user"

Used to specify the subject account's type for a request in conjunction with the X-QCS-ACCOUNT-ID header. Does not take precedence over a corresponding request body field when one is present.

Responses

200

Request completed successfully.

401

Request authentication failed.

422

Request validation failed.

get/v1/reservations

Rigetti API

https://api.qcs.rigetti.com/v1/reservations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nextPageToken": "string",
  • "reservations":
    [
    ]
}

Create Reservation

Create a new reservation.

The following precedence applies when specifying the reservation subject account ID and type:

  • request body accountId field, or if unset then X-QCS-ACCOUNT-ID header, or if unset then requesting user's ID.
  • request body accountType field, or if unset then X-QCS-ACCOUNT-TYPE header, or if unset then "user" type.
Authorizations:
header Parameters
X-QCS-ACCOUNT-ID
string (AccountId)

Used to specify a subject account ID for a request. Does not take precedence over a corresponding request body field when one is present.

X-QCS-ACCOUNT-TYPE
string (AccountType)
Enum: "group" "user"

Used to specify the subject account's type for a request in conjunction with the X-QCS-ACCOUNT-ID header. Does not take precedence over a corresponding request body field when one is present.

Request Body schema: application/json
accountId
string (AccountId)

userId for accountType "user", group name for accountType "group".

accountType
string (AccountType)
Enum: "group" "user"

There are two types of accounts within QCS: user (representing a single user in Okta) and group (representing one or more users in Okta).

endTime
required
string <date-time>
notes
string
quantumProcessorId
required
string
startTime
required
string <date-time>

Responses

201

Reservation successfully created.

401

Request authentication failed.

402

Insufficient payment to book reservation.

403

User not authorized to make the requested reservation.

409

The requested reservation is unavailable.

422

Request validation failed.

post/v1/reservations

Rigetti API

https://api.qcs.rigetti.com/v1/reservations

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "accountId": "string",
  • "accountType": "group",
  • "endTime": "2024-11-14T18:38:14Z",
  • "notes": "string",
  • "quantumProcessorId": "string",
  • "startTime": "2024-11-14T18:38:14Z"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "accountId": "string",
  • "accountType": "group",
  • "cancellationBillingInvoiceItemId": "string",
  • "cancelled": true,
  • "createdByAccountId": "string",
  • "createdByAccountType": "group",
  • "createdTime": "2024-11-14T18:38:14Z",
  • "creationBillingInvoiceItemId": "string",
  • "endTime": "2024-11-14T18:38:14Z",
  • "id": 0,
  • "notes": "string",
  • "price": 0,
  • "quantumProcessorId": "string",
  • "startTime": "2024-11-14T18:38:14Z",
  • "updatedTime": "2024-11-14T18:38:14Z",
  • "userId": "string"
}

Delete Reservation

Cancel an existing reservation for the user.

Authorizations:
path Parameters
reservationId
required
integer

Responses

200

Reservation successfully cancelled.

401

Request authentication failed.

403

User not authorized to delete reservation.

404

Requested reservation does not exist.

delete/v1/reservations/{reservationId}

Rigetti API

https://api.qcs.rigetti.com/v1/reservations/{reservationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "accountId": "string",
  • "accountType": "group",
  • "cancellationBillingInvoiceItemId": "string",
  • "cancelled": true,
  • "createdByAccountId": "string",
  • "createdByAccountType": "group",
  • "createdTime": "2024-11-14T18:38:14Z",
  • "creationBillingInvoiceItemId": "string",
  • "endTime": "2024-11-14T18:38:14Z",
  • "id": 0,
  • "notes": "string",
  • "price": 0,
  • "quantumProcessorId": "string",
  • "startTime": "2024-11-14T18:38:14Z",
  • "updatedTime": "2024-11-14T18:38:14Z",
  • "userId": "string"
}

Find Available Reservations

List currently available reservations on the requested Rigetti quantum computer.

Authorizations:
query Parameters
pageSize
integer
pageToken
string

An opaque token that can be appended to a request query to retrieve the next page of results. Empty if there are no more results to retrieve.

quantumProcessorId
required
string
startTimeFrom
required
string <date-time>
duration
required
string

Formatted as specified for golang https://golang.org/pkg/time/#ParseDuration.

Responses

200

Request completed successfully.

401

Request authentication failed.

422

Request validation failed.

get/v1/reservations:findAvailable

Rigetti API

https://api.qcs.rigetti.com/v1/reservations:findAvailable

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "availableReservations":
    [
    ],
  • "nextPageToken": "string"
}

Translation

Translation is the process of transforming Quil into programs ready for execution on a Quantum Processor.

Get Quilt Calibrations

Retrieve the calibration data used for client-side Quilt generation.

Authorizations:
path Parameters
quantumProcessorId
required
string (Quantum Processor ID)

Public identifier for a quantum processor [example: Aspen-1]

Responses

200

Successful Response

404

Not Found

422

Unprocessable Entity

get/v1/quantumProcessors/{quantumProcessorId}/quiltCalibrations

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors/{quantumProcessorId}/quiltCalibrations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "quilt": "string",
  • "settingsTimestamp": "string"
}

Translate Native Quil To Encrypted Binary

Compile Rigetti-native Quil code to encrypted binary form, ready for execution on a Rigetti Quantum Processor.

Authorizations:
path Parameters
quantumProcessorId
required
string (Quantum Processor ID)

Public identifier for a quantum processor [example: Aspen-1]

Request Body schema: application/json
numShots
required
integer (Number of Shots)

Number of iterations to execute on the control hardware

quil
required
string (Quil)

The native Quil program to be translated for execution

settingsTimestamp
string (Settings Timestamp)

ISO8601 timestamp of the latest settings to be used in translation. If omitted, latest settings will be used.

Responses

200

Successful Response

400

Translation Failure

404

Not Found

422

Unprocessable Entity

post/v1/quantumProcessors/{quantumProcessorId}:translateNativeQuilToEncryptedBinary

Rigetti API

https://api.qcs.rigetti.com/v1/quantumProcessors/{quantumProcessorId}:translateNativeQuilToEncryptedBinary

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "numShots": 0,
  • "quil": "string",
  • "settingsTimestamp": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "memoryDescriptors": { },
  • "program": "string",
  • "roSources": [ ],
  • "settingsTimestamp": "string"
}

SDK Versions

Check for the latest SDK versions.

List Client Applications

List supported clients of Rigetti system components along with their latest and minimum supported versions.

Responses

200

Request completed successfully.

get/v1/clientApplications

Rigetti API

https://api.qcs.rigetti.com/v1/clientApplications

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "clientApplications":
    [
    ]
}

Get Client Application

Get details of a specific Rigetti system component along with its latest and minimum supported versions.

path Parameters
clientApplicationName
required
string

Responses

200

Request completed successfully.

404

The requested client application does not exist.

get/v1/clientApplications/{clientApplicationName}

Rigetti API

https://api.qcs.rigetti.com/v1/clientApplications/{clientApplicationName}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "detailsUri": "string",
  • "latestVersion": "string",
  • "links":
    [
    ],
  • "minimumVersion": "string",
  • "name": "string",
  • "supported": true
}

Check Client Application

Check the requested client application version against the latest and minimum version.

Request Body schema: application/json
name
required
string

Name of component

version
required
string

Semantic version of component.

Responses

200

Successfully checked Forest versions.

404

Requested component does not exist.

422

Request validation failed.

post/v1/clientApplications:check

Rigetti API

https://api.qcs.rigetti.com/v1/clientApplications:check

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "string",
  • "version": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "isLatestVersion": true,
  • "isUpdateRequired": true,
  • "message": "string"
}

Filter Parameter

string (Filter)

A string conforming to a limited set of the filtering operations described in Google AIP 160.

  • Expressions are always of the form {field} {operator} {value} and may be grouped with () and joined with AND or OR.
  • Fields are specific to the route in question, but are typically a subset of attributes of the requested resource.
  • Operators are limited to =, >, >=, <, <=, and !=.
  • Values may take the following forms:
    • true or false for boolean fields
    • a number
    • a string (include surrounding "s),
    • a duration string (include surrounding "s). Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
    • a date string (include surrounding "s). Should be formatted RFC3339 5.6.

For example, startTime >= "2020-06-24T22:00:00.000Z" OR (duration >= "15m" AND endTime < "2020-06-24T22:00:00.000Z").

Copy
Expand all Collapse all
"string"

Order Parameter

string (Order)

A string conforming to order specification described in Google AIP 132.

  • Fields are specific to the route in question, but are typically a subset of attributes of the requested resource.
  • May include a comma separated list of many fields.
  • Fields are sorted in ascending order unless the field is followed by DESC.

For example, quantumProcessorId, startTime DESC.

Copy
Expand all Collapse all
"string"

errors

All service errors conform to the below schema.

code
required
string (Code)
message
required
string (Message)
requestId
required
string (Request ID)
validationErrors
Array of objects (Validation Errors)
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string",
  • "requestId": "string",
  • "validationErrors":
    [
    ]
}

code conforms to the conventional HTTP status code, but offers more granularity.

Code HTTP Status Code Notes
unauthorized 401 If your token expires, we will return a 401 and you should refresh it accordingly.
forbidden 403
not_found 404
insufficient_payment 402 Insufficient funds are available to book the reservation.
reservation_unavailable 409 The requested reservation time is not available.
invalid_input 422
invalid_password_reset_token 422
invalid_email_verification_token 422

Additionally, errors returned with code invalid_input may include additional detail under the validationErrors attribute. Note, not all validation errors will specify a path, but they will contain a message. Please heed those messages in addition to the top level error message.

in
required
string
Enum: "header" "query" "path" "body"
message
required
string (Message)
path
Array of strings (Path)
Copy
Expand all Collapse all
{
  • "in": "header",
  • "message": "string",
  • "path":
    [
    ]
}