# Patchwork > The operated agent platform. Build agents you can trust with real operations. ## Docs - [Introduction](https://docs.usepatchwork.co/index.md): The operated agent platform — your APIs and ours, turned into agents you can trust with real operations. - [Authentication](https://docs.usepatchwork.co/authentication.md): API keys for the workbench. Session tokens or API keys for Loom. - [Identify](https://docs.usepatchwork.co/guides/identify.md): Resolve a bank account or wallet to the institution, the rails that reach it, and — where we can — the holder. - [FX rates](https://docs.usepatchwork.co/guides/fx-rates.md): Live and historical exchange rates across currencies and corridors. - [Extract](https://docs.usepatchwork.co/guides/extract.md): Send a file — invoice, statement, KYC doc — and get structured data back. - [Vision](https://docs.usepatchwork.co/guides/vision.md): Match a photo to a catalog, read a receipt, check a document. - [Loom](https://docs.usepatchwork.co/guides/loom.md): The operated agent platform — connections, patches, agents, and runs. - [Direct integration](https://docs.usepatchwork.co/guides/loom-direct.md): The browser talks to Patchwork. Your backend mints a short-lived session token. - [Relay integration](https://docs.usepatchwork.co/guides/loom-relay.md): Your backend talks to Patchwork with a workspace API key. Use this for Slack, WhatsApp, email, or any channel you already own. - [API Reference](https://docs.usepatchwork.co/api-reference/index.md): The Patchwork API is organized around REST. JSON in, JSON out, grouped by product. - [Errors](https://docs.usepatchwork.co/api-reference/errors.md): Every response is an envelope. Successes carry data. Failures carry a stable code you can branch on. - [The Identify Result object](https://docs.usepatchwork.co/api-reference/identify.md): The institution, reachable rails, and — on supported rails — the holder behind an account or wallet identifier. - [Identify an account](https://docs.usepatchwork.co/api-reference/identify/identify-an-account.md): Resolve a bank or wallet identifier to the institution behind it, the rails that can reach it, and — on supported rails — the holder name. Charged on an `identified` outcome. Promo credits cover first calls; there is no complimentary test lane. - [Loom](https://docs.usepatchwork.co/api-reference/loom.md): Threads, messages, runs, and traces. The HTTP surface of an embedded agent. - [The Thread object](https://docs.usepatchwork.co/api-reference/thread.md): One conversation. Belongs to a subject. Holds messages and runs. - [Create a thread](https://docs.usepatchwork.co/api-reference/loom/create-a-thread.md): Open a conversation against a published agent. Direct tokens take the subject from `sub`. Relay may pass `subject_ref` in the body. - [List threads](https://docs.usepatchwork.co/api-reference/loom/list-threads.md): Recent active threads for the authenticated subject (direct) or workspace (relay). Capped at 30, newest first. - [The Message object](https://docs.usepatchwork.co/api-reference/message.md): One line on a thread. Posting a user message starts or resumes a run. - [Send a message](https://docs.usepatchwork.co/api-reference/loom/send-a-message.md): Post a user message and start (or resume) a run. Returns `202` with a `run_id`. Poll the run, or subscribe to realtime, for the assistant reply. If a run is `awaiting_input`, this message is the answer. - [List messages](https://docs.usepatchwork.co/api-reference/loom/list-messages.md): Messages on a thread, in sequence. Direct tokens can only read their own threads. - [The Run object](https://docs.usepatchwork.co/api-reference/run.md): One conversation turn. Has a state, an optional assistant message, and a trace. - [Retrieve a run](https://docs.usepatchwork.co/api-reference/loom/retrieve-a-run.md): Current state of a run, plus the latest assistant message when one exists. - [Retrieve a run trace](https://docs.usepatchwork.co/api-reference/loom/retrieve-a-run-trace.md): Full trace — turns, tool calls, tokens, and outcomes. This is what "every run on a trace" means. - [Resolve an outcome](https://docs.usepatchwork.co/api-reference/loom/resolve-an-outcome.md): Tell the runtime what happened to a proposed action — the user approved it (`occurred`) or it failed (`failed`). Resumes the run. - [Realtime](https://docs.usepatchwork.co/api-reference/realtime.md): Subscribe to thread events over Pusher. The browser configures nothing except what we return here. - [Realtime config](https://docs.usepatchwork.co/api-reference/loom/realtime-config.md): Public client config for subscribing to thread events. - [Authorize a realtime channel](https://docs.usepatchwork.co/api-reference/loom/authorize-a-realtime-channel.md): Sign a Pusher subscription for `private-thread-{id}`. The token must own the thread. Used by the browser SDK after `realtime/config`. - [FX rates](https://docs.usepatchwork.co/api-reference/fx-rates.md): Live and historical exchange rates. The API is not live. - [Extract](https://docs.usepatchwork.co/api-reference/extract.md): Structured data from a document. The API is not live. - [Vision](https://docs.usepatchwork.co/api-reference/vision.md): Image understanding as a bare API. The API is not live. ## OpenAPI Specs - [openapi](https://docs.usepatchwork.co/openapi.yaml)