Playbooks · Chapter 12 of 13

For teams & integration

SDKs, API keys, billing model, what lives where.

~2 min read5 sectionssame text as the guide inside the lab
All chapters

Keys are written for macOS, the way the lab prints them — on Windows and Linux read ⌘ as Ctrl, ⌥ as Alt, ⇧ as Shift, ↵ as Enter.Keys are shown for Windows / Linux to match your platform — on a Mac, Ctrl is ⌘ and Alt is ⌥. Every binding: Keyboard shortcuts.

You are wiring RoRo into a product or a pipeline. The lab is where you prototype and read the catalogue; the Python client and the REST API are where the integration lives. Same run engine, same credits, same machine codenames everywhere.

Prototype here, ship from your stack

  • Everything the Python kernel runs is the real roro_platform SDK — write against roro_platform in a .py or a notebook, and the same file will run unchanged on your servers once the platform SDK (roro-quantum-platform 1.0, import roro_platform) is on PyPI — it is not yet. The client to install today is roro-quantum (pip install roro-quantum), the Python client for the REST API.
  • The Run rail's Machines — code names list is your integration reference: codename (targetId), simulator vs hardware, qubits, list per-shot rate, live status. The codename you copy here is the string the Python client, the REST API and /v1/machines accept.
  • The one-line submit_run example on the Python face (roro.submit_run("<codename>", shots=1000, circuit=qc)) is the Python client's call (pip install roro-quantum; RoRoClient(api_key=…)). Add wait=True to block until terminal, or poll the run id.

API keys and secrets

API keys are minted in the console (API keys, also linked from the account menu in the lab's title bar): create one, copy it from the once-only box — it is never shown again — and revoke it there when it leaks or a teammate leaves. Keys belong to your organisation, so runs made with them bill the org's balance at the org's pricing. Python and curl samples are in the documentation. Never paste a key into a project file — projects can be shared and forked, and the browser kernel does not need one (it runs locally and never submits on your behalf). Keep keys in your own environment.

Billing model in one paragraph

Every submission is quoted (POST /runs/quote) with the same code path that charges. Submit holds the quote; completion settles; cancel returns the hold; machine-side failure refunds automatically; a hardware job unfinished after 72 hours is failed and refunded. Org accounts can carry negotiated per-shot pricing, which is why the lab shows list rates as reference and the quote as truth. AI usage (Copilot, explanations) is free while RoRo Copilot is free right now shows; otherwise it is metered as separate AI credits per turn, with no per-message cap — every cost is visible as it settles.

Any other language: REST

  • There is no published JavaScript or Kotlin client: from any other language, call the REST API with an API key — the API reference lists every endpoint.
  • An OpenAPI contract describes the public API; the Python client follows it.
  • Run status streams over SSE and can be polled; a run can be cancelled from the API or the Python client.

Where team features stand in the lab

  • Sharing: read-only snapshot links, revocable. Recipients fork on their own credits.
  • Moving code in and out: your projects (⌘O) export any project as a .zip and import a .zip as a new project.
  • Members, roles, workspace budgets, spend caps and API keys are managed in the console.

Related: Python in the browser · Machines & credits · Sharing & export