Submit a Perceval job to Quandela Cloud and collect the result
A 7-step recipe with Quandela. We can help you get access.
Recipe · 7 steps
Submit a Perceval job to Quandela Cloud and collect the result
with Quandela
End-to-end Perceval job execution on Quandela Cloud.
- Mint a short-lived labelled Cloud Job Token for this run. Labels must be unique per account (400 "Label already exists").
- Read the account's concrete concurrency ceilings and current usage. This is the only place the {MAX_WAITING_JOBS} / {MAX_QT_JOBS} values referenced by the 400/403 error text become numbers — the API sends no RateLimit-* headers.
- Create the job. Supply exactly one of platform_name or platform_id or the call fails with 400 "Require platform_id or platform_name".
- Poll until the job leaves its running state. Re-enter this step with exponential backoff; there is no Retry-After header to obey. last_intermediate_results carries partial progress before completion.
- Retrieve the terminal result. Branch on results_type to interpret results.
- Fetch the full submission record for audit — command, platform_name, pcvl_version, token_label, rerun_from.
- Revoke the run's token. Revocation is reversible via post_api_tokens_reopen; use post_api_tokens_delete_by_ids to destroy it.
What you'll need to have ready
- account_token: Account access token from account.quandela.com (Bearer).
- token_label: Unique label for the per-run Cloud Job Token.
- token_duration: Requested job-token lifetime in seconds.
- job_name
- payload: Opaque circuit payload serialised by perceval-quandela. The OpenAPI does not describe its structure; build it with the SDK.
- platform_name: Namespaced platform. Use a sim: platform to rehearse before spending credits on a qpu: platform.
- max_shots
- max_duration: Seconds. Must be non-zero and at most 864000.
- pcvl_version
- process_id: Caller-supplied duplicate guard. NOT an idempotency key.
For your developer
Arazzo workflow quandela:submit-and-collect-perceval-job, 7 operations: $sourceDescriptions.apiPercevalJobTokenApi.post_api_tokens → $sourceDescriptions.apiPercevalJobApi.get_api_jobs_availability → $sourceDescriptions.apiPercevalJobApi.post_api_jobs → $sourceDescriptions.apiPercevalJobApi.get_api_jobs_by_job_id_status → $sourceDescriptions.apiPercevalJobApi.get_api_jobs_by_job_id_result → $sourceDescriptions.apiPercevalJobApi.get_api_jobs_by_job_id_data → $sourceDescriptions.apiPercevalJobTokenApi.post_api_tokens_revoke. Specs on APIs.io.