n8n node
n8n-nodes-ragextract is the official community node. From 0.2.0 it calls /v2 with the same key as the API, so every resource in this reference is an operation you can drop into a workflow.
The node wraps the endpoints documented here rather than adding anything to them. A workflow can upload documents to a workspace, build a table of questions over them, price and start a run, and read back each answer with the page it was read from — the same path the overview walks through in curl, one node per step. It also works as a tool for n8n’s AI Agent node.
Install it
In n8n, community nodes are installed by package name: n8n-nodes-ragextract. Whether your instance allows community nodes, and where a self-hosted install puts them, is n8n’s configuration rather than ours — its documentation on community nodes is the place to check.
Use 0.2.0 or later. 0.1.x reaches the frozen /v1 only, which has no tables and no bundles, and the upgrade is a breaking change: every operation now takes a workspace, the old Dataset resource is File, and output is no longer wrapped — {{ $json.data.id }} becomes {{ $json.id }}. Existing Ragextract nodes need reconfiguring.
The credential
The node’s Ragextract API credential takes two fields.
- API Key. A personal key, starting
psk_, minted under Integrations → API keys in the app. It reaches every workspace its owner can, and can be narrowed with scopes. A workspace key (sk_) also works, pinned to its one workspace at read & write with no scopes — build on a personal key. Authentication covers both. - Base URL. Leave it at
https://api.ragextract.com. The node appends/v2itself; the field exists for private deployments.
Saving the credential calls /v2/verify, so a wrong key fails there rather than halfway through a workflow.
Resources and operations
Every operation except Workspace → Get Many and Workspace → Create takes a workspace, because every /v2 route nests under one. Pick it from the dropdown or pass an id by expression.
| Resource | Operations |
|---|---|
| Workspace | Get Many, Get, Create, Update |
| File | Upload, Get Many, Get, Get Items, Get Item, Search, Share, Delete |
| Job | Get Many, Get, Cancel |
| Table | Get Many, Get, Create, Update, Delete |
| Table Column | Get Many, Create, Update, Delete, Run |
| Table Row | Get Many, Create, Delete |
| Table Cell | Get Many, Set Override, Clear Override, Get Events, Get Facts |
| Table Run | Start, Preview, Get Many, Get, Cancel, Cancel All |
| Bundle | Get Many, Get, Create, Update, Delete, Add Files, Update File, Remove File |
How it behaves
- Upload waits for ingest by default and returns the finished file, so the next node can use it directly. Turn Wait For Completion off to get the job back at once and poll it with Job → Get — the better choice for anything large enough that holding an execution open is unreasonable.
- Above 100 MB, upload switches to a multipart session on its own. The same threshold as upload sessions, chosen for you.
- A rate-limited call is retried, waiting as long as the
Retry-Afterheader asks, rather than failing the execution. - A run spends credits, per cell. Table Run → Preview prices exactly the same selection and charges nothing. Put one in front of any run over a large table — see Runs.
- A table marked Standing runs itself against every new file in the workspace, which is auto mode set from a workflow.
A table from a batch of documents
The whole build, one node per step:
- File → Upload for each document, from a binary property or a public URL.
- Table → Create in the same workspace.
- Table Column → Create, once per question — a prompt and an output type.
- Table Row → Create, once per file, or once per bundle when several documents are one subject.
- Table Run → Preview, to see what it will cost.
- Table Run → Start, then Table Cell → Get Many for the answers, each with its confidence and citations.
As an AI agent tool
Attached to an AI Agent node, any operation is available to the agent, which fills the parameters itself. File → Search is the obvious one to expose: it returns the pages that match a query, so the agent answers from those rather than from a whole document stuffed into its context.
Search is metered — $1 per 1,000 searches, charged in blocks — and an agent decides for itself how often to call it. See Search before giving one an unscoped key.
What it is not
- Not a trigger. The package ships one node, and it acts rather than listens: nothing fires when an ingest finishes or a run completes, because the API has no webhooks to fire it. Wait inside the node, or poll on a schedule.
- Not a way to reach anything the API cannot. Sharing a workspace, inviting someone and buying credits stay in the app.
- Not the MCP server. Letting Claude or another LLM client read your workspaces directly is MCP — read-only, connected by signing in rather than by a key.
The node’s own README, on its npm page, is the reference for its fields; where it and this page disagree about an endpoint, the API reference describes what the server does.