capabilities.work

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

End-to-end Perceval job execution on Quandela Cloud.

  1. Mint a short-lived labelled Cloud Job Token for this run. Labels must be unique per account (400 "Label already exists").
  2. 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.
  3. Create the job. Supply exactly one of platform_name or platform_id or the call fails with 400 "Require platform_id or platform_name".
  4. 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.
  5. Retrieve the terminal result. Branch on results_type to interpret results.
  6. Fetch the full submission record for audit — command, platform_name, pcvl_version, token_label, rerun_from.
  7. 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.