Beeble List Jobs
Your cancelled ComfyUI run is still billing you — this node finds it
- summary
- latest_job_id
- next_cursor
- raw_json
The most expensive thing you can do with this pack is hit "Cancel" on a SwitchX job. ComfyUI stops watching, but the job keeps running on Beeble's servers - and it keeps billing. That's the exact scenario Beeble List Jobs exists for: a read-only window into everything the API is doing on your account, so you can find the orphaned job id, check status, and stop guessing at concurrency.
It wraps GET /v1/switchx/generations and renders the response as a compact, fixed-width table: job id, status (in_queue → processing → completed/failed), generation type, progress percentage, and created-at timestamp. It's a pure read - no generation credits spent, though it does share the account's 5 RPM read limit with everything else in the pack.
The inputs
Three, and two of them are boring:
limit(INT, default 20, max 100) - how many jobs to fetch per page.trigger(STRING) - edit it to force a re-fetch. As with the Account Info node, the author overrides change-detection so it re-runs fresh each queue.cursor(STRING, optional) - the pagination cursor. Leave blank for the first page, then feed the previous run'snext_cursorin to page further back.
What comes out
summary(STRING) - the formatted job table, shown in the node's UI panel.latest_job_id(STRING) - handy. This is the id you want after a cancelled workflow: copy it, and you can re-fetch the render from the API later (remember,render_urlfrom the SwitchX node expires after 72 hours).next_cursor(STRING) - pagination, for when 20 rows isn't enough history.raw_json(STRING) - the full job list payload.
When you actually reach for it
The README is refreshingly direct about the two use cases. First, confirming headroom before a batch: the account allows 10 concurrent SwitchX generations, and this node shows you what's currently in flight - cheaper and more accurate than betting that everything from the last session finished. Second, recovering after a cancelled workflow: since cancelling in ComfyUI doesn't stop the API job, this is how you find the swx_... id that's still burning money, check whether it's close to done, and decide whether to let it ride.
Setup and gotchas
Same pack, same install: search comfyui-beeble-ai in ComfyUI Manager, or clone into ComfyUI/custom_nodes and pip install -r requirements.txt, restart, and set your BEEBLE_API_KEY (env var) or a config.toml at ~/.config/comfyui-beeble-ai/config.toml. No model files - the jobs live on Beeble's side.
The 5 RPM read limit is the one thing to respect. If you're listing jobs while a SwitchX node is polling every 15 seconds, that's already 4 reads per minute from one node; a List Jobs call or two on top is fine, but building a workflow that re-fetches the list every frame is how you get RATE_LIMIT_EXCEEDED wall-to-wall. One fetch per queue, read the table, act on latest_job_id.
And keep the maintenance caveat in mind: this is a self-serve, MIT-licensed wrapper by am-pipeline-prod, not officially maintained and not affiliated with Beeble. The API can change out from under it; if you run a lot of paid jobs through this, plan to maintain your own fork.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| limit | INT | 201–100 | Maximum number of jobs to return (per page). |
| trigger | STRING | Edit this value to force a re-fetch. ComfyUI caches results based on inputs. | |
| cursoropt | STRING | Pagination cursor (from the previous response's next_cursor). Leave empty for the first page. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| summary | STRING | — |
| latest_job_id | STRING | — |
| next_cursor | STRING | — |
| raw_json | STRING | — |