Verified n8n community node

IBM Quantum, inside n8n.

Build a circuit. Run it on a real QPU. Act on the result.

Build, run and retrieve quantum circuits on the IBM Quantum Platform, straight from n8n. Verified by n8n, so it installs on n8n Cloud as well as self-hosted.

On n8n’s community nodes screen, enter

n8n-nodes-ibm-quantum

n8n Cloud or self-hosted · Free, MIT License · Unofficial, not affiliated with IBM

A real run, job da45jem1vhnc73fkj6t0: 2,066 shots read 00 and 1,950 read 11, the two outcomes a Bell state should give. The other 80 are device error.

Zero runtime dependencies. No Qiskit, no quantum library, nothing to compile. Circuits travel as OpenQASM 3 text, and your API key becomes a short-lived token that n8n refreshes on its own.

Get the highlights.

36 operations.

Across six resources: Account, Backend, Circuit, Job, Session and Workload.

Three entries.

In the n8n picker: an action, a trigger for finished jobs, and an AI Agent tool that n8n builds from the action.

Hardware jobs.

Run through the node on three IBM Heron devices, every one listed in the testing record.

Tests.

With 100% coverage of the node’s logic, enforced by CI rather than reported.

Dependencies.

At runtime. No Qiskit, no quantum library, nothing to compile.

Operations

Six resources. 36 operations.

Pick a resource to see what it does, in the words n8n shows. Backend fields are dropdowns filled from your own account, labeled like ibm_kingston (Heron r2, online, 290 queued).

  • Get Account Configuration

    Per plan on the account this instance belongs to: usage limits, allowed backends, session TTLs and functions

  • Get API Versions

    List every IBM-API-Version and which one is still live

  • Get Configuration

    Read the cost limit set on this instance

  • Get Instance

    Read the plan, limits and backends attached to this instance

  • Get Many Instances

    Every IBM Quantum instance the API key can see, with the cost limit and allowed backends of each, read from the IBM Cloud Resource Controller

  • Get Usage

    Read seconds consumed against the quota for the current period

  • Get Usage Analytics

    Totals for jobs, sessions and usage over a date range, with every usage and queue-time figure in milliseconds

  • Get Usage Analytics Filters

    The backend, plan and instance values the analytics filters accept

  • Get Usage Analytics Grouped

    The same totals, in milliseconds, split by backend, instance, plan, subscription or user

  • Get Usage Analytics Grouped by Date

    The same totals as a time series, one point per day, in milliseconds

  • Set Cost Limit

    Cap the QPU seconds this instance may spend, or clear the cap, through the IBM Cloud Resource Controller

  • Get Configuration

    Static device data: basis gates, coupling map and qubit count

  • Get Defaults

    Pulse level defaults; every IBM Cloud device returns an empty object

  • Get Least Busy

    Pick the online device with the shortest queue

  • Get Many

    Every device on this instance, with status, qubits and queue

  • Get Properties

    Calibration data: gate errors, readout errors and timings

  • Get Status

    Live availability, queue depth and any operator message

  • Build

    Assemble an OpenQASM 3 program from a gate list, validated locally

  • Import OpenQASM 3

    Pass an existing OpenQASM 3 program through, header checked

  • Cancel

    Stop a queued or running job; queued jobs cost nothing

  • Delete

    Remove a job and its results permanently

  • Get Logs

    Read whatever the program wrote to the job log

  • Get Many

    Recent jobs, newest first, without their circuit payloads

  • Get Many Tags

    Search the tags in use; the term must be 3 to 100 characters

  • Get Metrics

    Timestamps, QPU seconds charged and execution time

  • Get Results

    Wait for a terminal state, then parse counts or expectation values

  • Get Status

    The current state of a job, with the failure reason when it has one

  • Submit to Estimator

    Run a circuit and read expectation values of observables

  • Submit to Noise Learner

    Characterize the noise of a circuit layer

  • Submit to Sampler

    Run a circuit and read measurement counts

  • Update Tags

    Replace the whole tag list on a job

  • Close

    End the session at once: it stops accepting new jobs, queued jobs will not run, and a running job finishes. To let queued jobs drain first, use Set Accepting Jobs instead.

  • Create

    Open a batch or dedicated session on one backend

  • Get

    Read a session state and its remaining time

  • Set Accepting Jobs

    Stop a session taking new jobs; that ends it and it cannot reopen

  • Get Many

    Jobs and sessions in one listing, with richer filters


Real hardware

A real chip runs only its own gates.

The Qiskit Runtime REST API does not transpile. A textbook h or cx is queued, then fails with reason code 1517, and a failed job still spends quota.

Runs as-is on Heron 10

  • x
  • sx
  • rx
  • rz
  • rzz
  • cz
  • measure
  • reset
  • delay
  • barrier

Transpile first 16

  • y
  • z
  • h
  • s
  • sdg
  • t
  • tdg
  • ry
  • p
  • u
  • cx
  • swap
  • crx
  • cry
  • crz
  • ccx

Accepted, writes nothing 1

  • id

IBM lists id as native, yet a job carrying it fails, so the node leaves it out of the program.

The 27 entries of the Circuit › Build palette. Every OpenQASM 3 Submit reads the chosen backend’s basis gates and coupling map first, and warns about an instruction or a qubit pair the device cannot run before the job is queued.

Build it native.

Two identities turn a Bell state into gates the chip runs, with no transpiler at all:

H = rz(π/2) · sx · rz(π/2)CNOT = H · cz · H

Measured on ibm_fez over 2,048 shots: 48.7% 00 and 46.2% 11.

Circuit › Build, 12 gates
OPENQASM 3.0;
include "stdgates.inc";
qubit[2] q;
bit[2] c;
rz(1.5707963267948966) q[0];
sx q[0];
rz(1.5707963267948966) q[0];
rz(1.5707963267948966) q[1];
sx q[1];
rz(1.5707963267948966) q[1];
cz q[0], q[1];
rz(1.5707963267948966) q[1];
sx q[1];
rz(1.5707963267948966) q[1];
c[0] = measure q[0];
c[1] = measure q[1];

Or transpile it, free.

Transpile locally with Qiskit, on any plan, then paste the result into the node. A fake backend carries the real device’s topology and gates, so no credentials are needed.

Pin the Submit to the device you transpiled for.

Python, with Qiskit
from qiskit import QuantumCircuit, qasm3
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime.fake_provider import FakeFez  # mirrors ibm_fez

backend = FakeFez()

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure(0, 0)
qc.measure(1, 1)

isa = generate_preset_pass_manager(optimization_level=1, backend=backend).run(qc)
print(qasm3.dumps(isa))  # paste this into the node

Long-running jobs

Submit now. React when it’s done.

A hardware job can sit in the queue for hours, and IBM offers no push or callback, so something has to poll. The trigger polls on n8n’s scheduler, not inside a held-open execution.

Workflow one

  1. Build
  2. Submit to Sampler

Submits and finishes at once, with the jobId. Nothing blocks.

Workflow two, active

  1. IBM Quantum Trigger
  2. Get Results

Fires when a job reaches a terminal state. Get Results returns at once, because the job is already done.

Trigger On

  • Any Terminal (Completed, Failed or Canceled)
  • Completed
  • Failed
  • Canceled
  • Failed or Canceled
  • Failed or Canceled is for alerting: every event carries reason, reasonCode and reasonSolution, so a workflow can page someone or resubmit elsewhere.
  • Restarts are safe. The jobs already fired live in the workflow’s static data, so a restart repeats none of them, and its first poll fires the ones that finished while n8n was down, up to Jobs to Scan.
  • Tags keep workflows apart. Set them on Submit and filter on them in the trigger, and each workflow reacts only to its own jobs.

AI Agent tool

Ask it in plain words.

Attach the node to an n8n AI Agent and the model calls its operations directly. It fits questions best, where the agent asks and gets a structured answer.

  • Which QPU has the shortest queue right now?

    Backend › Get Least Busy

  • Which Heron device will start my job soonest?

    Backend › Get Least Busy, Rank By an estimated wait, Processor Family Heron

  • How much runtime is left on my instance?

    Account › Get Usage

  • Which backends and session limits does my plan allow?

    Account › Get Account Configuration

  • Did job d1abc finish?

    Job › Get Status, with Include Circuit Params off

Submission works too, but on hardware the agent has to supply a transpiled circuit, so pair it with a circuit built beforehand rather than asking the model to write one.

Quota

QPU seconds are the budget.

The Open plan gives 600 seconds of QPU time per rolling 28 days, and a failed job still spends some of it. The node gives you the brakes.

  • Max Cost

    Caps what one job may spend. Left at zero, IBM stamps the job with the plan maximum, on the Open plan all 600 seconds, so set a real number.

  • Set Cost Limit

    A ceiling for every job on the instance, written through IBM Cloud’s Resource Controller and read back from it. Clear Limit returns the instance to the plan default, on the Open plan 600 seconds.

  • Sessions and batches

    Keep the jobs of a hybrid loop together instead of sending each back to the general queue. Batch is the only mode the Open plan allows.

  • Usage

    Get Usage compares seconds consumed with the limit; the analytics operations break the spend down by backend, plan, user or date.


In the editor

What it looks like in n8n.

Tested

Run on real hardware, and written down.

Every job this project has run on IBM hardware through the node is in its testing record, failed and canceled ones included: most of those were sent to measure exactly how IBM refuses something.

283 jobs

187 completed, 68 failed and 28 canceled, between June 24 and September 10, 2026.

1,799 QPU seconds

30.0 minutes of real device time, as IBM charged it.

3 Heron r2 devices

ibm_fez, ibm_marrakesh and ibm_kingston, 156 qubits each.

1,161 unit tests

In 25 files, holding the node’s logic at 100% of statements, branches, functions and lines, a gate CI enforces.

The testing record, job by job


Security

Four hosts, and no others.

n8n keeps your API key as an encrypted credential. The node reads it in one place, to exchange it with IBM for a short-lived token, and every API call it makes after that has a 30-second timeout.

HostUsed for
iam.cloud.ibm.comExchanging the API key for a short-lived token
quantum.cloud.ibm.comQiskit Runtime, US East instances
eu-de.quantum.cloud.ibm.comQiskit Runtime, EU (Germany) instances
resource-controller.cloud.ibm.comIBM Cloud Resource Controller, only for Get Many Instances and Set Cost Limit

Read the security policy


Questions.

What is n8n-nodes-ibm-quantum?

An unofficial, community-maintained n8n node for the IBM Quantum Platform. It builds OpenQASM 3 circuits, submits them to Qiskit Runtime on real IBM hardware, reads the results, and starts workflows when jobs finish. n8n has verified it.

Is it made by IBM?

No. It is unofficial and community-maintained, and it is not affiliated with, endorsed by, or sponsored by IBM. Every node carries an (Unofficial) marker in the n8n picker.

Does it work on n8n Cloud?

Yes. It is verified by n8n, so it installs on n8n Cloud as well as on self-hosted n8n: open the community nodes screen and enter the package name, n8n-nodes-ibm-quantum.

What do I need to use it?

An IBM Cloud account with access to the IBM Quantum Platform, an IBM Cloud API key, and the Cloud Resource Name (CRN) of your Qiskit Runtime instance. Self-hosted n8n needs Node.js 24 from n8n 2.36 on; Node.js 22 is enough for n8n 2.35 and older.

Do I need Qiskit?

Not to run the node: it has zero runtime dependencies. Real hardware accepts only transpiled circuits, though, so for anything beyond the native gates you transpile locally with Qiskit, free on any plan, and pass the result in.

Why did my job fail with reason code 1517?

The circuit was not transpiled to the backend’s native gates, or a two-qubit gate landed on a pair the chip does not connect. Build it from native gates, or transpile it for the exact device you submit to. The node warns about both before the job is queued.

Is there a simulator?

No. IBM retired its cloud simulators on May 15, 2024, so every backend is real hardware. To try a circuit without spending quota, simulate it locally with Qiskit first.

Can an AI Agent use it?

Yes. The action node is usable as an n8n AI Agent tool, and on n8n 1.85.0 or newer nothing extra is needed. It fits questions best, such as which QPU has the shortest queue or how much runtime is left.

Is it free?

The node is free and open source under the MIT License. Jobs use your IBM Quantum plan: the Open plan gives 600 seconds of QPU time per rolling 28 days, and a failed job still spends some of it.

Put IBM Quantum in a workflow.

Free and open source, under the MIT License.

n8n-nodes-ibm-quantum