# Docs - API Reference: REST API reference for integrating with deployed Dynamiq apps. - [API Reference](/docs/api-reference): REST API surface for integrating with Dynamiq: deployed apps, runs, conversations, knowledge bases, and the AI gateway. - [Authentication](/docs/api-reference/authentication): Which credential calls what: access keys for deployed apps and the gateway, personal access tokens for the management API. - Runs: Execute and observe runs of a deployed app. Served on the deployed app's own hostname. - [Upload a file](/docs/api-reference/runs/uploadRunFile): Uploads a file to the app's storage so it can later be attached to a run via `file_ids`. The maximum request size is 128 MiB. - [List runs](/docs/api-reference/runs/listRuns): Lists runs of the app, most recently started first by default. Runs with at least one unresolved human-feedback or approval request are reported with the synthetic `awaiting_input` status. - [Create a run](/docs/api-reference/runs/createRun): Starts a run of the deployed app. Three execution modes are supported: **synchronous** (default — the request blocks until the run reaches a terminal state and returns the final run), **background** (`background: true` — returns `202 Accepted` immediately with the created run), and **streaming** (`stream: true` — the response is a Server-Sent Events stream of run events). `stream` and `background` cannot both be true. Files can be attached either by referencing previously uploaded files via `file_ids` or by sending the request as `multipart/form-data` with one or more `files` parts (max 128 MiB). - [Get a run](/docs/api-reference/runs/getRun): Returns a single run. If the run has unresolved human-feedback or approval requests, its status is reported as `awaiting_input` and the pending requests are listed in `input_requests`. - [Cancel a run](/docs/api-reference/runs/cancelRun): Cancels a run that has not reached a terminal state. Cancelling an already completed, failed, or canceled run is a no-op and still returns 200. - [Send input to a run](/docs/api-reference/runs/sendRunInput): Answers a pending human-feedback or approval request of a run. Only runs in `started` or `paused` status accept input; a paused run is resumed from its latest checkpoint first. The `request_id` must match the `id` of a pending request from the run's `input_requests` (or the corresponding `agent.human_feedback.requested` / `approval_request.created` event). - [List run events](/docs/api-reference/runs/listRunEvents): Returns the persisted events of a run in sequence order. Useful for replaying a finished run; for live runs use the stream endpoint. - [Stream run events (SSE)](/docs/api-reference/runs/streamRunEvents): Streams the run's events over Server-Sent Events in strict sequence order, starting from the beginning or from `after_sequence`. The stream closes after a terminal event (`run.completed`, `run.failed`, `run.canceled`). A `: heartbeat` comment is emitted every 15 seconds of inactivity. - Apps: App management and observability — apps, traces, sessions, and run artifacts. Served on the management API. - [List apps](/docs/api-reference/apps/listApps): Lists apps in a project, sorted by name by default. - [Get an app](/docs/api-reference/apps/getApp): Returns a single app, including its hostname — the base URL for the app's Runs API. - [Invoke an app (proxy)](/docs/api-reference/apps/invokeApp): Proxies the request to the deployed app's own host, so you can run an app through the management API without resolving its hostname. The request body and response are **workflow-defined**: the body fields are the app workflow's Input-node fields (passthrough), and the response is whatever the app's Runs API endpoint returns. The route accepts any HTTP method; POST with a JSON body is the common case. - [List app traces](/docs/api-reference/apps/listAppTraces): Lists execution traces of an app, most recent first. Supports field filters on `started_at` (time) and `status` via query parameters of the form `started_at:gte=` and `status=`. - [Download app traces](/docs/api-reference/apps/downloadAppTraces): Streams an app's execution traces as a downloadable JSON file (`Content-Disposition: attachment; filename="-traces.json"`). The body is a JSON array of trace objects — each with `id`, `started_at`, `ended_at`, `status`, `input`, `output`, and `usage` — ordered by `started_at` descending. When `include_runs` is `true`, each trace also carries a `runs` array. Optional time-range filters on `started_at` use the `started_at:gt|gte|lt|lte=` form; `gt`/`gte` and `lt`/`lte` are mutually exclusive. - [Get an app trace](/docs/api-reference/apps/getAppTrace): Returns a single execution trace of an app. - [List app trace runs](/docs/api-reference/apps/listAppTraceRuns): Lists the individual runs — workflow, flow, and node executions — that make up a trace, ordered by `start_time` descending by default. - [List app sessions](/docs/api-reference/apps/listAppSessions): Lists conversation sessions of an app. A session groups runs that share a `session_id`. - [List session messages](/docs/api-reference/apps/listAppSessionMessages): Lists the input/output message exchanges of a session in chronological order. - [List run artifacts](/docs/api-reference/apps/listAppRunArtifacts): Lists files produced by a run, with short-lived download URLs. - End User Requirements: End-user requirement fulfillment for deployed apps. An app's workflow can declare requirements that each end user must satisfy before runs can act on their behalf — providing connection credentials, completing an OAuth2 flow, or linking an action connector account. The status-check and connect-token endpoints are served on the deployed app's hostname; the `/v1/connect/*` fulfillment endpoints are served on the management API and authenticated with a short-lived connect token. - [Check requirements status for an end user](/docs/api-reference/end-user-requirements/getAppRequirementsStatus): Returns whether all end-user requirements of the app are satisfied for the given user, together with the list of unsatisfied requirements. A connection requirement counts as satisfied when the user has an active connection for it; an action connector account requirement counts as satisfied when the user has linked an account for it. The app is identified by the hostname. Private apps require an Access Key; public apps can be called without credentials. - [Create a connect token](/docs/api-reference/end-user-requirements/createConnectToken): Creates a short-lived **connect token** for an end user of the app. The token is a bearer JWT scoped to this app and this user, valid for **24 hours**, and is the credential accepted by the `/v1/connect/*` requirement-fulfillment endpoints on the management API — it is distinct from Access Keys and Personal Access Tokens. The response also includes the URL of the hosted connect page, pre-filled with the token, where the end user can fulfill the requirements in a browser. The app is identified by the hostname. Private apps require an Access Key; public apps can be called without credentials. - [List requirements](/docs/api-reference/end-user-requirements/listConnectRequirements): Lists the end-user requirements of the app the connect token is scoped to — the connection and action connector account requirements referenced by the app's deployed workflow version. Served on the management API; authenticate with a connect token. - [Get requirement statuses](/docs/api-reference/end-user-requirements/getConnectRequirementsStatus): Lists the end-user requirements of the app the connect token is scoped to, with a per-requirement `status` for the token's user: `completed` when the user has an active connection or a linked action connector account for the requirement, `pending` otherwise. Served on the management API; authenticate with a connect token. - [Submit credentials for a requirement](/docs/api-reference/end-user-requirements/createConnectRequirementCredentials): Submits connection credentials that satisfy a `connection` requirement for the token's user. The submitted `type` must match the connection type declared in the requirement's spec. OAuth2-based connection types are rejected — use the OAuth2 authorize endpoint instead. On success an active end-user connection is stored and the requirement becomes `completed`. Served on the management API; authenticate with a connect token. - [Start an OAuth2 authorization](/docs/api-reference/end-user-requirements/authorizeConnectRequirementOAuth2): Starts an OAuth2 authorization flow for a `connection` requirement whose connection type is OAuth2-based with a configured provider (Google, GitHub, Dropbox, Box, Notion, or Microsoft). Creates a pending end-user connection and returns the provider's authorization URL; redirect the end user there to grant consent. The connection becomes active — and the requirement `completed` — once the provider redirects back and the authorization completes. The request has no body. Served on the management API; authenticate with a connect token. - [Start linking an action connector account](/docs/api-reference/end-user-requirements/authorizeConnectRequirementActionConnector): Starts the hosted flow that links an action connector account for a `pipedream_account` requirement. Returns a connect URL, pre-targeted at the connector app declared in the requirement's spec (for example `gmail`); redirect the end user there to authorize their account. Once the account is linked, the requirement becomes `completed`. The request has no body. Served on the management API; authenticate with a connect token. - Knowledge Bases: Knowledge bases — lifecycle (CRUD), document ingestion and item management, connected sources and their syncs (management API), plus document search and uploads served on the knowledge base's own hostname. - [List knowledge bases](/docs/api-reference/knowledge-bases/listKnowledgebases): Lists the knowledge bases of a project, ordered by `name` by default. The `project_id` query parameter is required. - [Create a knowledge base](/docs/api-reference/knowledge-bases/createKnowledgebase): Creates a knowledge base in a project. The `flow` and `flow_ui` describe the ingestion workflow (how uploaded documents are chunked, embedded, and indexed) and its editor layout. On creation the knowledge base is provisioned with its own `hostname` for document search and uploads. - [Get a knowledge base](/docs/api-reference/knowledge-bases/getKnowledgebase): Returns a single knowledge base. - [Delete a knowledge base](/docs/api-reference/knowledge-bases/deleteKnowledgebase): Deletes a knowledge base along with its items, sources, and indexed documents. - [Update a knowledge base](/docs/api-reference/knowledge-bases/updateKnowledgebase): Updates a knowledge base. Supplying `workflow_version_id` publishes that ingestion-workflow version as the knowledge base's active configuration; `description` and `runtime_id` can be updated alongside it. - [Search knowledge base documents](/docs/api-reference/knowledge-bases/searchKnowledgebaseDocuments): Performs a semantic search over the knowledge base's documents using the knowledge base's configured embedder and retriever. Served on the knowledge base's own hostname (returned in the `hostname` field of the knowledge base resource). - [Upload documents (knowledge base hostname)](/docs/api-reference/knowledge-bases/uploadKnowledgebaseDocuments): Uploads one or more files for ingestion, served on the knowledge base's own hostname (returned in the `hostname` field of the knowledge base resource) and authenticated with an access key. Optional metadata is passed in the `metadata` form field as either a single JSON object (applied to every file) or a JSON array with one entry per file (its length must match the number of files). To replace existing items in place, pass their item IDs in the `ids` form field (JSON array, same length and order as `files`). The maximum request size is 128 MiB. Items are processed asynchronously; poll the items endpoints for status. - [Upload documents to a knowledge base](/docs/api-reference/knowledge-bases/uploadKnowledgebaseItems): Uploads one or more files for ingestion. Optional metadata is passed in the `metadata` form field as either a single JSON object (applied to every file) or a JSON array with one entry per file (its length must match the number of files). To replace existing items in place, pass their item IDs in the `ids` form field (JSON array, same length and order as `files`). The maximum request size is 128 MiB. Items are processed asynchronously; poll the items endpoints for status. - [Search knowledge base documents (management API)](/docs/api-reference/knowledge-bases/vectorSearchKnowledgebase): Performs a semantic search over a knowledge base's documents using the knowledge base's configured embedder and retriever. This is the management-API equivalent of the hostname `POST /v1/documents/search`, addressed by knowledge base ID and authenticated with a personal access token. - [List knowledge base items](/docs/api-reference/knowledge-bases/listKnowledgebaseItems): Lists items (ingested documents) of a knowledge base, most recently uploaded first by default. - [Bulk delete knowledge base items](/docs/api-reference/knowledge-bases/bulkDeleteKnowledgebaseItems): Deletes several knowledge base items (and their indexed documents) in one request. The `ids` array must contain unique item UUIDs. - [Reprocess knowledge base items](/docs/api-reference/knowledge-bases/reprocessKnowledgebaseItems): Re-runs ingestion for a knowledge base's items. Restrict the operation to items in specific processing states with the optional `statuses` array; when omitted, all items are reprocessed. Items are reprocessed asynchronously. - [Get a knowledge base item](/docs/api-reference/knowledge-bases/getKnowledgebaseItem): Returns a single knowledge base item. - [Delete a knowledge base item](/docs/api-reference/knowledge-bases/deleteKnowledgebaseItem): Deletes an item and its indexed documents from the knowledge base. - [Reprocess a knowledge base item](/docs/api-reference/knowledge-bases/reprocessKnowledgebaseItem): Re-runs ingestion for a single knowledge base item. The item is reprocessed asynchronously; poll the item endpoint for status. - [Replace a knowledge base item file](/docs/api-reference/knowledge-bases/replaceKnowledgebaseItem): Replaces an item's file in place and re-ingests it, keeping the same item ID. The new file is supplied in the `file` form field. The item is reprocessed asynchronously. - [Download a knowledge base item file](/docs/api-reference/knowledge-bases/downloadKnowledgebaseItem): Downloads the original file backing a knowledge base item as a binary attachment (`Content-Disposition: attachment; filename=""`). - [List knowledge base sources](/docs/api-reference/knowledge-bases/listKnowledgebaseSources): Lists the connected content sources of a knowledge base — for example Google Drive, SharePoint, Notion, or a crawled website — that feed documents into it. - [Create a knowledge base source](/docs/api-reference/knowledge-bases/createKnowledgebaseSource): Connects a content source to a knowledge base. `provider` selects the source type and `config` carries the provider-specific selection (drives, folders, files, or — for `website` — the URL and crawl limits). A `connection_id` referencing an OAuth connection is required for every provider except `website`. - [Get a knowledge base source](/docs/api-reference/knowledge-bases/getKnowledgebaseSource): Returns a single knowledge base source, including its latest sync. - [Delete a knowledge base source](/docs/api-reference/knowledge-bases/deleteKnowledgebaseSource): Disconnects a source from its knowledge base. Documents already ingested from the source remain unless deleted separately. - [Update a knowledge base source](/docs/api-reference/knowledge-bases/updateKnowledgebaseSource): Updates a source's provider-specific `config` (for example the selected drives, folders, files, or website crawl settings). `provider` must match the source's existing provider. - [List knowledge base source syncs](/docs/api-reference/knowledge-bases/listKnowledgebaseSourceSyncs): Lists the synchronization runs of a source, most recent first, each reporting its status and start/end times. - [Trigger a knowledge base source sync](/docs/api-reference/knowledge-bases/syncKnowledgebaseSource): Starts a synchronization run that pulls the latest content from the source and ingests new or changed items. The sync runs asynchronously; track progress via the syncs endpoint. - [List knowledge base source items](/docs/api-reference/knowledge-bases/listKnowledgebaseSourceItems): Lists the items discovered in a source (files, webpages, or text) with their type and provider metadata. - [Pause a knowledge base source](/docs/api-reference/knowledge-bases/pauseKnowledgebaseSource): Pauses automatic synchronization for a source. Its status becomes `paused` and scheduled syncs are suspended until resumed. - [Resume a knowledge base source](/docs/api-reference/knowledge-bases/resumeKnowledgebaseSource): Resumes automatic synchronization for a paused source. Its status returns to `active`. - Evaluations: Evaluations, both batch and online. Batch evaluations score a workflow against a dataset version with one or more metrics — starting and rerunning runs, listing and inspecting runs, aggregated metric summaries, and per-row results (readable or downloadable as a JSON file). Online evaluations attach a metric to a deployed app and continuously score a sampled share of its live traces. Served on the management API. - [List evaluations](/docs/api-reference/evaluations/listEvaluations): Lists the evaluation runs of a project, ordered by `name`. The `project_id` query parameter is required. - [Start an evaluation](/docs/api-reference/evaluations/startEvaluation): Starts a batch evaluation run. Each workflow in `config` is executed against every item of the released dataset version, then the configured metrics score the outputs. The dataset version must be released. Execution is asynchronous: the run is persisted and fanned out onto a task queue, and the response is returned immediately with `status` `running`. Poll the run — or its results — for completion. Status is one of `pending`, `running`, `failed`, `succeeded`, or `canceled`. - [Get an evaluation](/docs/api-reference/evaluations/getEvaluation): Returns a single evaluation run, including its status and configuration. - [Delete an evaluation](/docs/api-reference/evaluations/deleteEvaluation): Deletes an evaluation run along with its workflow runs, metric scores, and results. - [Rerun a failed evaluation](/docs/api-reference/evaluations/rerunEvaluation): Reruns only the failed tasks of a finished evaluation, reusing the run's existing configuration. The failed workflow and metric runs are discarded and re-queued, and the run's status returns to `running`. Returns `400` if the evaluation is still running or has no failed tasks to rerun. - [Get evaluation metric summary](/docs/api-reference/evaluations/getEvaluationMetrics): Returns aggregated metric statistics for an evaluation, grouped by workflow. Each metric reports its average, minimum, and maximum score across the dataset. - [List evaluation results](/docs/api-reference/evaluations/getEvaluationResults): Returns the per-dataset-item results of an evaluation — one row per dataset item, each with its workflow runs and metric scores. Paginated. - [Download evaluation results](/docs/api-reference/evaluations/downloadEvaluationResults): Streams the full evaluation results as a downloadable JSON file (`Content-Disposition: attachment; filename="evaluation--results.json"`). The body is a JSON object with the `evaluation` and a `results` array of the same per-item result objects returned by the results endpoint. - [List an app's online evaluations](/docs/api-reference/evaluations/listAppEvaluations): Lists the online evaluations configured on an app, most recently created first. Each online evaluation attaches a metric to the app and scores a sampled share of its live traces. - [Create an online evaluation](/docs/api-reference/evaluations/createAppEvaluation): Attaches a metric to an app so its live traces are scored continuously. `metric_id` and `metric_version_id` select the scorer; `sample_rate` (0–1) is the fraction of incoming traces to score; `enabled` toggles sampling; and the optional `input_transformer` remaps trace fields into the input the metric expects. While enabled, a background consumer samples each new app trace and, when selected, records an evaluation run and dispatches it to be scored. The metric must belong to the app's project. - [Get an online evaluation](/docs/api-reference/evaluations/getAppEvaluation): Returns a single online evaluation with its metric binding and sampling settings. - [Delete an online evaluation](/docs/api-reference/evaluations/deleteAppEvaluation): Deletes an online evaluation along with the runs it has recorded. - [Update an online evaluation](/docs/api-reference/evaluations/updateAppEvaluation): Updates an online evaluation's runtime settings — `name`, `description`, `enabled`, `sample_rate`, `input_transformer`, and the metric version (`metric_version_id`). The target metric itself is immutable; the new version must belong to the same metric. - [List online evaluation runs](/docs/api-reference/evaluations/listAppEvaluationRuns): Lists the runs recorded by an online evaluation, most recent first. Each run corresponds to one sampled app trace and carries its `status`, `score`, and the `trace_id` it scored. Filter by status with the `status` query parameter. - Metrics: Evaluation metrics — reusable scorers (LLM-as-a-judge, predefined evaluators, or custom code) that grade workflow outputs. Covers metric lifecycle (CRUD), immutable version history, and ad-hoc metric testing. Served on the management API. - [List metrics](/docs/api-reference/metrics/listMetrics): Lists the metrics of a project, ordered by `name` by default. The `project_id` query parameter is required. - [Create a metric](/docs/api-reference/metrics/createMetric): Creates an evaluation metric in a project. The `config` shape depends on `type`: an LLM-as-a-judge prompt, a predefined evaluator plus its settings, or custom scoring code. Creating a metric also records its first version. - [Test metrics](/docs/api-reference/metrics/testMetrics): Runs one or more metric configurations against sample input without persisting anything, returning each metric's score. Useful for tuning a metric's prompt or settings before saving it. Each entry carries a `metric` configuration (with its `type`) and the `input` record to score; an optional `input_transformer` remaps the fields the metric receives. - [Get a metric](/docs/api-reference/metrics/getMetric): Returns a single metric with its current configuration. - [Delete a metric](/docs/api-reference/metrics/deleteMetric): Deletes a metric and its version history. - [Update a metric](/docs/api-reference/metrics/updateMetric): Updates a metric's `type` and `config`. Each update records a new immutable version; earlier versions remain retrievable through the versions endpoints. - [List metric versions](/docs/api-reference/metrics/listMetricVersions): Lists a metric's version history, most recent `version` first. Each entry omits the configuration body; fetch a specific version to retrieve its `config`. - [Get a metric version](/docs/api-reference/metrics/getMetricVersion): Returns a specific version of a metric, including its full `config`. The `version_id` path parameter accepts a version UUID or the literal `latest`. - Datasets: Datasets — versioned collections of evaluation rows. Covers dataset lifecycle (CRUD), draft and released versions with their item schemas, item management, and building rows from captured traces. Served on the management API. - [List datasets](/docs/api-reference/datasets/listDatasets): Lists the datasets of a project, ordered by `name` by default. The `project_id` query parameter is required. - [Create a dataset](/docs/api-reference/datasets/createDataset): Creates an empty dataset in a project. A dataset is a named container for versioned collections of rows; add rows by creating a version and adding items to it. - [Get a dataset](/docs/api-reference/datasets/getDataset): Returns a single dataset, including its latest released version when one exists. - [Delete a dataset](/docs/api-reference/datasets/deleteDataset): Deletes a dataset along with all of its versions and items. - [Create a dataset version](/docs/api-reference/datasets/createDatasetVersion): Creates a new draft version of a dataset. Drafts are mutable — you can add items, edit the schema, and release them. An optional `schema` constrains the fields of items added to the version; when omitted, the schema is inferred from the first items added. Draft versions carry a temporary, decreasing `version` number until they are released, at which point they take the next sequential positive version. - [List dataset versions](/docs/api-reference/datasets/listDatasetVersions): Lists the versions of a dataset, highest `version` first. The `dataset_id` query parameter is required. - [Get a dataset version](/docs/api-reference/datasets/getDatasetVersion): Returns a single dataset version, including its item `schema` and status. - [Delete a dataset version](/docs/api-reference/datasets/deleteDatasetVersion): Deletes a draft version and all of its items. Released versions cannot be deleted and return `400`. - [Update a dataset version](/docs/api-reference/datasets/updateDatasetVersion): Replaces a draft version's item `schema`. Only draft versions are editable; updating a released version returns `400`. The new schema must remain compatible with every existing item, otherwise the request is rejected. - [Download a dataset version](/docs/api-reference/datasets/downloadDatasetVersion): Streams a dataset version's items as a downloadable file (`Content-Disposition: attachment; filename="."`). The body is the array of item `data` objects, serialized as a JSON array (`format=json`, the default) or as newline-delimited JSON (`format=jsonl`). - [Fork a dataset version](/docs/api-reference/datasets/forkDatasetVersion): Creates a new draft version of the same dataset, copying the source version's schema and every item. Use this to derive an editable draft from a released version. The fork is always created as a draft, regardless of the source's status. - [Release a dataset version](/docs/api-reference/datasets/releaseDatasetVersion): Releases a draft version, making it immutable and assigning it the next sequential `version` number for the dataset. The dataset's latest-version pointer is updated to the released version, so evaluations can target it. A version that is already released returns `400`. Released versions can no longer be edited or deleted — fork one to continue editing. - [Update a dataset version schema](/docs/api-reference/datasets/updateDatasetVersionSchema): Incrementally edits a dataset version's item schema by adding and/or removing fields. Each `add` entry defines a field and its schema; each `delete` entry names a field to remove and, when `delete_from_items` is true, also strips that field from every existing item. The resulting schema must remain compatible with all existing items. - [Add items to a dataset version](/docs/api-reference/datasets/addDatasetVersionItems): Appends rows to a draft version. Send a JSON body with an `items` array, or upload a `.json` / `.jsonl` file as multipart/form-data in the `file` field. Only draft versions accept new items. When the version has a schema, every item is validated against it; when it does not, the schema is inferred from the first batch of items. - [Add a dataset item from a trace](/docs/api-reference/datasets/addDatasetItemFromTrace): Builds a new dataset item from a captured trace and appends it to a draft version — a fast way to turn a real, observed run into an evaluation row. The body identifies the target `dataset_id` and `dataset_version_id` and the source `trace_id`. - [List dataset items](/docs/api-reference/datasets/listDatasetItems): Lists the items of a dataset version. The `dataset_version_id` query parameter is required. - [Get a dataset item](/docs/api-reference/datasets/getDatasetItem): Returns a single dataset item and its `data` fields. - [Delete a dataset item](/docs/api-reference/datasets/deleteDatasetItem): Deletes a single dataset item from its version. - [Update a dataset item](/docs/api-reference/datasets/updateDatasetItem): Replaces a dataset item's `data`. The new data must satisfy the schema of the item's dataset version. - AI Gateway: OpenAI-compatible LLM gateway (chat completions) and OCR document parsing / structured extraction. - [Create a chat completion](/docs/api-reference/ai-gateway/createChatCompletion): OpenAI-compatible chat completions endpoint. The `model` is a Dynamiq router model slug; the gateway resolves it to the configured upstream provider and relays the request. Set `stream: true` to receive Server-Sent Events of `chat.completion.chunk` objects. Unknown request fields are passed through to the upstream provider. - [Parse a document with OCR](/docs/api-reference/ai-gateway/ocrParse): Extracts the text of a PDF or image as Markdown using an LLM-based OCR pipeline. The `options` form field is a JSON string selecting the LLM. With `"stream": true` the response is an SSE stream of extraction events instead of JSON. - [Extract structured data from a document](/docs/api-reference/ai-gateway/ocrExtract): Runs OCR on a PDF or image and then extracts structured data matching a JSON schema template. The `options` form field selects the OCR LLM, the structured-output LLM, and the extraction template. With `"stream": true` the response is an SSE stream instead of JSON. - Tracing: Trace observability — ingestion from the Dynamiq Python SDK (collector) and cross-resource trace reads across projects, services, and individual traces (management API). - [Ingest trace runs](/docs/api-reference/tracing/ingestTraces): Ingests a batch of workflow/flow/node trace runs, as produced by the Dynamiq Python SDK's `TracingCallbackHandler` / `DynamiqTracingClient`. The collector validates `id`, `name`, `type`, `trace_id`, `source_id`, `start_time`, `end_time`, and `status`; the remaining fields are stored as-is. SDK-emitted fields not listed in the schema (such as `session_id` and `tags`) are accepted and ignored by the collector. - [List project traces](/docs/api-reference/tracing/listProjectTraces): Lists execution traces across a project's apps, most recent first. Supports field filters on `started_at` (time) and `status` via query parameters of the form `started_at:gte=` and `status=`. - [Download project traces](/docs/api-reference/tracing/downloadProjectTraces): Streams a project's execution traces as a downloadable JSON file (`Content-Disposition: attachment; filename="-traces.json"`). The body is a JSON array of trace objects — each with `id`, `started_at`, `ended_at`, `status`, `input`, `output`, and `usage` — ordered by `started_at` descending. When `include_runs` is `true`, each trace also carries a `runs` array. Optional time-range filters on `started_at` use the `started_at:gt|gte|lt|lte=` form; `gt`/`gte` and `lt`/`lte` are mutually exclusive. - [List service traces](/docs/api-reference/tracing/listServiceTraces): Lists execution traces of a deployed service, most recent first (ordered by `started_at` descending). - [Get a trace with runs](/docs/api-reference/tracing/getTrace): Returns a single trace together with its full run tree. The trace carries `started_at`/`ended_at` while each run carries `start_time`/`end_time` — this mirrors the server responses and is intentional. - [Download a trace](/docs/api-reference/tracing/downloadTrace): Returns a single trace as a downloadable JSON file (`Content-Disposition: attachment; filename=".json"`). Set `include_runs=true` to embed the trace's run tree in the exported object. - Platform: Build, deploy, and operate AI agents on the Dynamiq platform. - [Platform](/docs/platform): Build, deploy, and operate AI agents on the Dynamiq platform — from the visual workflow builder to production integrations. - Get Started - [Overview](/docs/platform/get-started/overview): What Dynamiq is, the four pillars of the platform, and where to start based on what you want to build. - [Quickstart: Chat](/docs/platform/get-started/quickstart-chat): Get your first answer from the Dynamiq Chat super agent in five minutes — modes, file attachments, and connectors. - [Quickstart: Build an Agent](/docs/platform/get-started/quickstart-build-an-agent): Create a workflow, add an Agent node with a web search tool, configure its LLM, and run a test — all on the canvas. - [Quickstart: Deploy & Call Your Agent](/docs/platform/get-started/quickstart-deploy-and-call): Deploy a workflow as an App, create an Access Key, and call the endpoint over HTTP — synchronous first, then streaming. - [Core Concepts](/docs/platform/get-started/core-concepts): The Dynamiq glossary: organizations, projects, workflows, apps, deployments, traces, access keys, and how they fit together. - [Navigating the Platform](/docs/platform/get-started/navigating-the-platform): A tour of the Dynamiq sidebar — what each item does and where its documentation lives. - Use Cases - [Use Cases](/docs/platform/use-cases): End-to-end journeys showing how enterprise teams assemble Dynamiq features into production agents — architecture, permissions, deployment, and evaluation. - [Build a Search Assistant](/docs/platform/use-cases/build-a-search-assistant): Build an assistant that searches the web and answers with cited sources — as a single agent, a manager-and-specialists team, or a deterministic pipeline. - [Customer Support: Triage Agent](/docs/platform/use-cases/customer-support): Build a support triage agent that answers from a product-docs Knowledge Base, holds multi-turn conversations, escalates to humans, and leaves an audit trail. - [Financial Services: Transaction Review](/docs/platform/use-cases/financial-services): A transaction-review and client-reporting agent with per-analyst database credentials, an approval gate before anything leaves the firm, and a full audit trail. - [Healthcare: Patient Document Intake](/docs/platform/use-cases/healthcare): A patient-document intake pipeline that screens for PII and prompt injection before any LLM sees the text, then extracts schema-conformant clinical data. - [Internal Knowledge Assistant](/docs/platform/use-cases/internal-knowledge-assistant): Build a company-wide Q&A assistant over Google Drive, Notion, and Confluence content — with per-team isolation, per-user memory, and measurable retrieval quality. - Chat - [Overview](/docs/platform/chat/overview): Chat is Dynamiq's built-in super agent — research, files, code, browsing, and your connected apps in one conversation. - [Chat Modes](/docs/platform/chat/chat-modes): Switch between the built-in Dynamiq Agent and your own deployed Apps, and pick the model that powers the conversation. - [Files & Artifacts](/docs/platform/chat/chat-files-and-artifacts): Attach files to a conversation, collect the documents and sites the agent produces, and inspect every tool step. - [Connectors](/docs/platform/chat/chat-connectors): Connect Google Drive, Gmail, Notion, Slack, databases, and more to the Dynamiq Agent — personally or org-wide, toggled per conversation. - [Skills & Commands](/docs/platform/chat/chat-skills-and-commands): Attach reusable Skills that change how the agent works, and turn your saved Prompts into slash commands. - [Scheduled Tasks](/docs/platform/chat/chat-scheduled-tasks): Have the Dynamiq Agent run a prompt for you once or on a daily, weekly, or monthly schedule, and review every run. - [Subagents & Sandbox](/docs/platform/chat/chat-subagents-and-sandbox): Every Dynamiq Agent conversation runs on its own cloud computer, and the Subagents toggle parallelizes large research tasks. - Wilson - [Overview](/docs/platform/wilson/overview): Wilson is the Slack-native AI coworker built on Dynamiq — the same agent, connectors, and sandbox as Chat, wherever your team already works. - [Install](/docs/platform/wilson/install): Connect your Slack workspace to Wilson: the OAuth install flow, who can run it, the workspace states, and how to uninstall. - [Using Wilson](/docs/platform/wilson/using-wilson): Link your Slack account, talk to Wilson in DMs and channels, manage connectors, and understand what differs from web Chat. - Workflows - [Overview](/docs/platform/workflows/overview): What a Dynamiq workflow is — the Input → nodes → Output anatomy, drafts vs. releases, and everywhere workflows run on the platform. - [Build Your First Workflow](/docs/platform/workflows/build-your-first-workflow): A hands-on tutorial: wire Input → Agent → Output, map the data between them, test-run it, inspect the trace, and release v1. - [Workflow Canvas](/docs/platform/workflows/workflow-canvas): Find your way around the editor — the node palette and its categories, adding and connecting nodes, sticky notes, groups, and canvas controls. - [How Nodes Connect](/docs/platform/workflows/how-nodes-connect): The rules behind every edge — flow handles, typed inputs and outputs, type compatibility, agent slots vs. edges, and the wiring mistakes to avoid. - [Node Configuration](/docs/platform/workflows/node-configuration): The node inspector explained tab by tab — Configuration, Output, and Error Handling — plus the special Input/Output node panels and retry semantics. - [Input Transformers & Jinja](/docs/platform/workflows/input-transformers-and-jinja): How data moves into a node — JSONPath selectors over upstream results, the literal-fallback rules, and Jinja templating inside prompts. - [Error Handling](/docs/platform/workflows/error-handling): What happens when a node fails — Raise vs. Return semantics, retries with backoff, timeouts, and fallback paths that keep the run alive. - [Testing & Debugging](/docs/platform/workflows/testing-and-debugging-workflows): Run a workflow straight from the editor — the Test panel's Request and Chat tabs, per-node trace inspection, dry runs, and the iterate loop. - [Versions & Releases](/docs/platform/workflows/versions-and-releases): The full workflow lifecycle — drafts, what every Save creates, version history and previews, Save as new, archiving, export, and what Apps pin to. - [Templates](/docs/platform/workflows/templates): Start a workflow from the template gallery — browse by category, load a prebuilt graph onto the canvas, and customize it into your own. - [Troubleshooting Workflows](/docs/platform/workflows/workflow-troubleshooting): A symptom → cause → fix catalog for the most common workflow mistakes — empty outputs, broken mappings, agent loops, and draft confusion. - Agents - [The Agent Node](/docs/platform/workflows/agents/agent-node): Configure the Agent node — LLM, role, tools, memory, inference modes, loop limits, streaming, and structured output. - [Agent Tools](/docs/platform/workflows/agents/agent-tools): Attach tools to the Agent node, write descriptions the model can act on, and pass runtime tool parameters with tool_params. - [Agent Memory](/docs/platform/workflows/agents/agent-memory): Give agents multi-turn conversation memory — backends, user/session scoping, save modes, and retrieval strategies. - [Prompts, Roles & Inference Modes](/docs/platform/workflows/agents/agent-prompts-and-roles): Write agent roles and instructions, template them with Jinja variables, and enforce structured output with Response format. - [Sandbox](/docs/platform/workflows/agents/sandbox): Give your agent a full Linux computer — an isolated E2B or Daytona VM with a shell, a filesystem, code execution, and public web previews. - [Subagents & Delegation](/docs/platform/workflows/agents/subagents-and-delegation): Attach agents as tools of other agents — specialist delegation, delegate_final passthrough, parallel-safe factories, and per-run call limits. - [Context Management & Summarization](/docs/platform/workflows/agents/context-management): Automatic history compaction for long agent runs — token-based triggers, what gets summarized vs. preserved, and how to tune the thresholds. - [File Store & Artifacts](/docs/platform/workflows/agents/file-store): Give your agent a file workspace without a full sandbox — file read/write/search tools, todo lists, and how files flow in and out of a run. - Orchestration - [Orchestration Overview](/docs/platform/workflows/orchestration/overview): Choose the right coordination pattern — a single Agent, the Graph Orchestrator, or deterministic Choice and Map operators. - [Graph Orchestrator](/docs/platform/workflows/orchestration/graph-orchestrator): Build agentic state machines — states, tasks, edges, conditional routing, and shared context — on the canvas and in the Python SDK, with a complete worked example. - [Map Node](/docs/platform/workflows/orchestration/map-node): Run one node once per item of a list — fan-out with optional concurrency, failure behavior, and a predictable list output. - [Choice Node](/docs/platform/workflows/orchestration/choice-node): Branch a workflow deterministically — condition rules, operators, AND/OR groups, one labeled output per branch, and the default else branch. - Advanced - [MCP Servers](/docs/platform/workflows/advanced/mcp-servers): Connect agents to Model Context Protocol servers over SSE or Streamable HTTP — tool discovery, filtering, auth headers, and troubleshooting. - [Guardrails & Validators](/docs/platform/workflows/advanced/guardrails-and-validators): Screen workflow inputs with PII, prompt-injection, and LlamaGuard detectors, and validate outputs with JSON, Python, choices, and regex validators. - [Human in the Loop](/docs/platform/workflows/advanced/human-in-the-loop): Pause a running workflow for human input — the Human Feedback tool, per-node execution approval, and how replies resume the run. - Deploy & Integrate - [Overview](/docs/platform/deployments/overview): What you can deploy on Dynamiq — workflow Apps, AI models, vector databases, and services — and how the deployment lifecycle works. - [Deploy a Workflow App](/docs/platform/deployments/deploy-a-workflow-app): Turn a saved workflow version into a live App from the editor or the Deployments page, then tour every tab of the App page. - [Call Your App over HTTP](/docs/platform/deployments/call-your-app): The full HTTP contract for invoking a deployed Dynamiq App — auth, request body, synchronous responses, SSE streaming, async callbacks, and error codes. - [The Runs API](/docs/platform/deployments/run-api): Manage App executions on your App's hostname — upload files, create sync/streaming/background runs, list and inspect runs, cancel, send mid-run input, and replay events. - [Streaming & Async Jobs](/docs/platform/deployments/streaming-and-async): Stream app output over SSE or WebSocket, run jobs asynchronously with callbacks, and resume paused runs with human feedback. - [Conversations & Sessions](/docs/platform/deployments/conversations-and-sessions): Build multi-turn conversations with memory-enabled agents using user_id and session_id, and inspect session history in the UI or via API. - [End-User Connection Requirements](/docs/platform/deployments/end-user-requirements): Let each end user of a deployed App link their own account or credentials — define requirements at build time, detect unmet ones at run time, and fulfill them via the hosted connect page or the connect API. - [Chat Widget & Assistant](/docs/platform/deployments/chat-widget-and-assistant): Embed the Dynamiq chat widget in your site or share a standalone Chat Assistant URL — no custom frontend required. - [Triggers](/docs/platform/deployments/triggers): Invoke a deployed App automatically on a cron schedule, at a one-off time, or when an event arrives from a connected app such as Slack or email. - [Webhooks & Events](/docs/platform/deployments/webhooks-and-events): How deployed Apps push results to your systems — the async callback delivery contract, receiver requirements, and the event surfaces you can stream or poll. - [Variables](/docs/platform/deployments/variables): Configuration values and secrets for deployments — environment variables on Service Deployments, and where workflow Apps get their configuration instead. - [Runtime Connection Overrides](/docs/platform/deployments/runtime-connection-overrides): How a deployed App resolves node Connections at run time — server-side credential resolution, and per-user substitution through connection requirements. - [Monitoring, History & Traces](/docs/platform/deployments/monitoring-history-and-traces): Track invocations, latency, token usage, and cost for a deployed App, and drill into the full execution trace of every run. - [Deployment History & Rollback](/docs/platform/deployments/deployment-history-and-rollback): Audit every deployment of an App on the History tab and roll back by redeploying an earlier workflow version. - [Model Inference Deployments](/docs/platform/deployments/model-inference-deployments): Deploy open-source models on vLLM or LoRAX runtimes and call them through OpenAI-compatible chat, embeddings, and audio endpoints. - [Database Deployments](/docs/platform/deployments/database-deployments): Deploy a managed Weaviate vector database in one click, fetch its credentials, and wire it into workflows and Knowledge Bases. - [Service Deployments](/docs/platform/deployments/service-deployments): Run any Docker container on Dynamiq — bring an image or a source bundle and get a hostname with Access Key auth, pods, logs, and traces. - Knowledge Bases - [Overview](/docs/platform/knowledge-bases/overview): Knowledge Bases are managed RAG: an ingestion workflow, vector storage, and a retrieval endpoint your agents can query as a tool. - [Create a Knowledge Base](/docs/platform/knowledge-bases/create-a-knowledge-base): Create a Knowledge Base with your choice of splitter settings, embedding provider, and vector store — Dynamiq generates the ingestion workflow for you. - Data Sources - [Data Sources](/docs/platform/knowledge-bases/data-sources): Fill a Knowledge Base by uploading files, crawling websites, or syncing OAuth sources like Google Drive and Notion — with pause, resume, and sync history. - [Confluence](/docs/platform/knowledge-bases/data-sources/confluence): Sync Confluence pages into a knowledge base via an Atlassian Connection. - [Google Drive](/docs/platform/knowledge-bases/data-sources/google-drive): Sync Google Drive files into a knowledge base via OAuth 2.0 or a Google Cloud service account. - [Chunking & Embedding](/docs/platform/knowledge-bases/chunking-and-embedding): How splitter strategy, chunk size, overlap, and embedder choice shape retrieval quality — and how to tune them in your Knowledge Base. - [Customize the Ingestion Workflow](/docs/platform/knowledge-bases/customize-ingestion-workflow): Open the ingestion workflow behind a Knowledge Base, edit its four stages, add your own nodes, and deploy a new version. - [Search & Test](/docs/platform/knowledge-bases/search-and-test): Query your Knowledge Base directly, inspect the returned chunks and scores, and validate retrieval quality before agents depend on it. - [Connect a Knowledge Base to Agents](/docs/platform/knowledge-bases/connect-kb-to-agents): Attach a Knowledge Base Retriever tool to an Agent node and tune top-k, hybrid search, filters, and similarity threshold. - [Knowledge Graphs](/docs/platform/knowledge-bases/knowledge-graphs): Turn on Build knowledge graph when you create a Knowledge Base to extract entities and relationships alongside the vector store. - [Vector Store Search vs Knowledge Base](/docs/platform/knowledge-bases/vector-store-vs-knowledge-base): When to use a managed Knowledge Base and when to query your own vector store directly with Vector Store Search and Writer nodes. - [Build a RAG Pipeline](/docs/platform/knowledge-bases/build-a-rag-pipeline): An end-to-end worked example: create a Knowledge Base, ingest files and a website, verify retrieval, attach it to an agent, deploy, and call it over HTTP. - [Knowledge Base API](/docs/platform/knowledge-bases/kb-api-ingestion-and-search): The full HTTP contract of a Knowledge Base's hostname — multipart ingestion, item reprocess and delete, and the documents search endpoint. - Connections - [Overview](/docs/platform/connections/overview): Connections store credentials and configuration for external services — encrypted at rest, scoped to a project, and resolved at runtime. - [Create a Connection](/docs/platform/connections/create-a-connection): Add credentials for LLM providers, databases, vector stores, MCP servers, and more — in the UI or through the API. - [OAuth Connections](/docs/platform/connections/oauth-connections): Connect Google, Dropbox, Microsoft, Box, and Notion with an OAuth consent flow — authorize, automatic token refresh, scopes, and expiry handling. - [Parameterized Connections](/docs/platform/connections/parameterized-connections): Http and HttpApiKey Connections carry default request parameters — URL, method, headers, query params, body — that nodes and run input extend or override at request time. - [SSH Tunnels](/docs/platform/connections/ssh-tunnels): Reach databases on private networks by adding an ssh_tunnel block to a database Connection — supported types, config fields, and where to configure it. - Prompts - [Prompts](/docs/platform/prompts/overview): Create reusable, versioned prompt templates and use them in LLM nodes and as Chat slash commands. - [Prompt Playground](/docs/platform/prompts/prompts-playground): Test prompt wording against real models, tune parameters, and compare up to ten prompt/model combinations side by side. - Skills - [Skills](/docs/platform/skills/overview): Package repeatable instructions as versioned skills that agents load on demand — in workflows and in Chat. - [Create a Skill](/docs/platform/skills/create-a-skill): Author a skill in the editor — name, description, markdown instructions — and grow it with new versions. - [Import Skills & the Official Library](/docs/platform/skills/skills-marketplace-and-import): Bring skills in from zip archives and GitHub folders, and add Dynamiq's official skills to your Chat library. - Evaluations - [Evaluations Overview](/docs/platform/evaluations/overview): Measure the quality of your workflows with metrics, datasets, and evaluation runs — before and after you deploy. - [Metrics](/docs/platform/evaluations/metrics): Define how outputs are scored: LLM-as-a-judge rubrics, predefined RAG evaluators, or your own Python code. - [Datasets](/docs/platform/evaluations/datasets): Versioned test data for evaluations: draft, release, and fork versions; add items by hand, from JSON files, or straight from traces. - [Evaluation Runs](/docs/platform/evaluations/evaluation-runs): Run metrics over a dataset version — optionally piping each row through a workflow first — and read, download, or rerun the results. - AI Gateway - [AI Gateway Overview](/docs/platform/gateway/overview): One OpenAI-compatible endpoint for many LLM providers, plus trace ingestion and LLM-powered document parsing and extraction. - [AI Models Router](/docs/platform/gateway/ai-models-router): Call any routed LLM through the OpenAI-compatible endpoint at router.getdynamiq.ai — base URL swap, streaming, and access-key auth. - [Gateway Tracing](/docs/platform/gateway/gateway-tracing): Ingest traces from open-source Dynamiq workflows into your project and inspect them in the AI Gateway's Tracing tab. - [Document Parse](/docs/platform/gateway/document-parse): Convert a PDF or image to clean Markdown with the gateway's LLM-based OCR endpoint — playground, API contract, and code samples. - [Document Extract](/docs/platform/gateway/document-extract): Extract structured JSON from PDFs and images: an OCR pass followed by schema-guided extraction, in the playground or via /v1/ocr/extract. - Administration - [Organizations & Projects](/docs/platform/administration/organizations-and-projects): How Organizations and Projects scope your resources, how to switch between and create them, and where member roles fit in. - [Members & Roles](/docs/platform/administration/members-and-roles): Organization roles, project membership, and the invitation flow — what each role can and cannot do. - [API Keys & Tokens](/docs/platform/administration/api-keys-and-tokens): When to use an Access Key vs. a Personal Access Token, how to create each, and how to rotate and revoke them safely. - [Usage & Billing](/docs/platform/administration/usage-and-billing): Read the Usage tab, understand how plan limits are resolved and enforced, and manage your subscription through Stripe. - [Security](/docs/platform/administration/security): How Dynamiq stores credentials, encrypts secrets, isolates code execution, and deletes your data. - Self-Hosted Deployment - [Self-Hosted Overview](/docs/platform/self-hosted/overview): Run the full Dynamiq platform in your own Kubernetes cluster with the official Helm chart, backed by your own Postgres, NATS, and object storage. - [System Requirements](/docs/platform/self-hosted/requirements): The cluster version, external services, hostnames, credentials, and resource baseline to have ready before installing self-hosted Dynamiq. - **Install** - [Install on Kubernetes (Helm)](/docs/platform/self-hosted/install-kubernetes): The canonical, cloud-agnostic install of self-hosted Dynamiq: namespaces, secrets, a values file, the Helm release, and migrations. - [Install on AWS (EKS)](/docs/platform/self-hosted/install-aws-eks): The AWS-specific deltas for self-hosted Dynamiq on EKS: RDS, S3 with IRSA, Secrets Manager, Route 53 wildcard TLS, and the Marketplace chart. - [Install on IBM Cloud (IKS)](/docs/platform/self-hosted/install-ibm-cloud): The IBM Cloud deltas for self-hosted Dynamiq on IKS: Databases for PostgreSQL, Cloud Object Storage over the S3-compatible endpoint, and ingress. - [Install on Red Hat OpenShift](/docs/platform/self-hosted/install-openshift): The OpenShift deltas for self-hosted Dynamiq: security context constraints, PostgreSQL, S3-compatible object storage, and wildcard Routes. - **Configure** - [Configuration Reference](/docs/platform/self-hosted/configuration): How the Dynamiq chart turns values into env vars: required keys, the secret contract, catalyst provider keys, object storage, and External Secrets. - [Networking, DNS & TLS](/docs/platform/self-hosted/networking-and-tls): Expose self-hosted Dynamiq: the hostname map, Ingress and Gateway API, wildcard certificates, and internal service traffic. - **Operate** - [Upgrades & Rollback](/docs/platform/self-hosted/upgrades-and-rollback): Upgrade a self-hosted Dynamiq release safely, roll back when it goes wrong, and understand what uninstall leaves behind. - [Operations & Troubleshooting](/docs/platform/self-hosted/operations): Day-two operations for self-hosted Dynamiq: health checks, logs, scaling, backup and restore, and fixes for the failures you'll actually hit. - Node Reference - [Node Reference](/docs/platform/nodes): Reference for every node in the Dynamiq workflow builder, organized by palette category. - Logic - [Logic Nodes](/docs/platform/nodes/logic): Logic nodes available in the Dynamiq workflow builder. - [Choice](/docs/platform/nodes/logic/choice): Defines conditions based on previous node parameters to decide the next step in a workflow. - [Map](/docs/platform/nodes/logic/map): Repeats a predefined node multiple times, depending on the amount of input data. - [Output](/docs/platform/nodes/logic/output): A utility node representing the output of workflow. - [Note](/docs/platform/nodes/logic/note): Free-floating canvas annotation for documenting a workflow; it has no inputs, outputs, or runtime behavior. - [Input](/docs/platform/nodes/logic/input): A utility node representing the input of workflow. - Agents - [Agents Nodes](/docs/platform/nodes/agents): Agents nodes available in the Dynamiq workflow builder. - [Agent](/docs/platform/nodes/agents/agent): Uses reasoning and tool-based actions to handle complex, dynamic tasks iteratively. - [Graph Orchestrator](/docs/platform/nodes/agents/graph-orchestrator): Orchestrates the execution of complex tasks, interconnected within the graph structure. - [Graph State](/docs/platform/nodes/agents/graph-state): Represents single state of graph flow. - Tools - [Tools Nodes](/docs/platform/nodes/tools): Tools nodes available in the Dynamiq workflow builder. - [LLM Nodes](/docs/platform/nodes/tools/llms): Every LLM provider node available in the workflow builder, with its node type and required connection. - [Web search with Tavily](/docs/platform/nodes/tools/web-search-with-tavily): Executes web searches using the Tavily search service. - [Web search with Jina](/docs/platform/nodes/tools/web-search-with-jina): Executes web searches using the Jina AI API. - [Web search with Exa](/docs/platform/nodes/tools/web-search-with-exa): Executes web searches using the Exa AI API. - [Web search with ScaleSerp](/docs/platform/nodes/tools/web-search-with-scaleserp): Performs web searches via the Scale SERP API. - [Web search with Firecrawl](/docs/platform/nodes/tools/web-search-with-firecrawl): A tool for performing Firecrawl searches. - [Scraping with ZenRows](/docs/platform/nodes/tools/scraping-with-zenrows): Extracts structured data from web pages using ZenRows. - [Scraping with Jina](/docs/platform/nodes/tools/scraping-with-jina): Extracts structured data from web pages using Jina AI. - [Scraping with Firecrawl](/docs/platform/nodes/tools/scraping-with-firecrawl): Extracts structured data from web pages using FireCrawl. - [Action](/docs/platform/nodes/tools/action): Runs actions from the connector catalog (send a Gmail message, post to Slack, update a CRM record) on behalf of the agent. - [Code Sandbox with E2B](/docs/platform/nodes/tools/code-sandbox-with-e2b): Executes Python code, shell commands, and file operations in a secure environment. - [Browser with Stagehand](/docs/platform/nodes/tools/browser-with-stagehand): Controls a remote web browser with natural-language actions using Stagehand. - [Custom Python Tool](/docs/platform/nodes/tools/custom-python-tool): Runs custom Python code for workflow flexibility. - [SQL Executor](/docs/platform/nodes/tools/sql-executor): Executes SQL queries dynamically for database interactions. - [HTTP API Call](/docs/platform/nodes/tools/http-api-call): Makes HTTP requests with configurable parameters and handles responses. - [Human Feedback](/docs/platform/nodes/tools/human-feedback): A unified tool for human interaction - both gathering feedback and sending messages. - [MCP Server](/docs/platform/nodes/tools/mcp-server): A tool that manages connections to MCP servers and initializes MCP tools. - [Context Manager Tool](/docs/platform/nodes/tools/context-manager-tool): A tool that generates a conversation summary. - [Cypher Graph Query](/docs/platform/nodes/tools/cypher-graph-query): Tool for executing Cypher queries against Neo4j, Apache AGE, or Neptune. - [Desktop VM with E2B](/docs/platform/nodes/tools/desktop-vm-with-e2b): Runs a remote desktop virtual machine via E2B for GUI automation tasks. - [File Read Tool](/docs/platform/nodes/tools/file-read-tool): A tool for reading files from storage with intelligent file processing. - [File Write Tool](/docs/platform/nodes/tools/file-write-tool): A tool for writing and editing files in storage. - [Image Generation](/docs/platform/nodes/tools/image-generation): Node for generating images using various AI models. - [Parallel Tool Calls Tool](/docs/platform/nodes/tools/parallel-tool-calls-tool): A meta-tool that signals the agent can execute multiple tools in parallel. - [Local Python Code Sandbox](/docs/platform/nodes/tools/local-python-code-sandbox): Execute ad-hoc Python code inside RestrictedPython with file store helpers. - [Sandbox Info Tool](/docs/platform/nodes/tools/sandbox-info-tool): A tool for the agent to get sandbox metadata and, when needed, the public URL for a port. - [Sandbox Shell Tool](/docs/platform/nodes/tools/sandbox-shell-tool): A tool for executing shell commands in a sandbox environment. - [Skills Tool](/docs/platform/nodes/tools/skills-tool): Tool for skills: discover and get content from a skill registry (Dynamiq or FileSystem). - [Sub Agent Tool](/docs/platform/nodes/tools/sub-agent-tool): Wraps an agent instance or factory as a callable tool for parent agents. - [Extended Thinking](/docs/platform/nodes/tools/extended-thinking): A tool for structured thinking and reasoning processes. - [Todo Write Tool](/docs/platform/nodes/tools/todo-write-tool): Write/update the todo list in storage. - Audio - [Audio Nodes](/docs/platform/nodes/audio): Audio nodes available in the Dynamiq workflow builder. - [Whisper](/docs/platform/nodes/audio/whisper): Converts speech to text using the Whisper model. - [ElevenLabs STS](/docs/platform/nodes/audio/elevenlabs-sts): Converts one audio input into another synthesized voice. - [ElevenLabs TTS](/docs/platform/nodes/audio/elevenlabs-tts): Generates speech from text using ElevenLabs' model. - Validators - [Validators Nodes](/docs/platform/nodes/validators): Validators nodes available in the Dynamiq workflow builder. - [Regex Match](/docs/platform/nodes/validators/regex-match): Checks if input matches a specified regex pattern. - [Valid Choices](/docs/platform/nodes/validators/valid-choices): Ensures input matches predefined valid options. - [Valid JSON](/docs/platform/nodes/validators/valid-json): Verifies that input is correctly formatted in JSON. - [Valid Python](/docs/platform/nodes/validators/valid-python): Confirms input follows correct Python syntax. - [LlamaGuard Detector](/docs/platform/nodes/validators/llamaguard-detector): Detects policy violations in messages. - [PII Detector](/docs/platform/nodes/validators/pii-detector): Identifies and flags personally identifiable information. - [Prompt Injection Detector](/docs/platform/nodes/validators/prompt-injection-detector): Detects unauthorized prompt injections. - Transformations - [Transformations Nodes](/docs/platform/nodes/transformations): Transformations nodes available in the Dynamiq workflow builder. - [Text Template](/docs/platform/nodes/transformations/text-template): Processes a text template by replacing placeholders with input values dynamically. - [Any to JSON](/docs/platform/nodes/transformations/any-to-json): Converts a list, dictionary, or other object into a JSON-formatted string. - [JSON to Any](/docs/platform/nodes/transformations/json-to-any): Converts a JSON string back into its original object form (e.g., list or dictionary). - [Regex Extractor](/docs/platform/nodes/transformations/regex-extractor): Finds and returns all matches in the text based on the provided regular expression. - [Extract by Index](/docs/platform/nodes/transformations/extract-by-index): Retrieves a specific element from a list using the given index. - [File Type Extractor](/docs/platform/nodes/transformations/file-type-extractor): Identifies whether a file is an audio, video, font, presentation, or another file type. - Pre-processing - [Pre-processing Nodes](/docs/platform/nodes/pre-processing): Pre-processing nodes available in the Dynamiq workflow builder. - [Unstructured Converter](/docs/platform/nodes/pre-processing/unstructured-converter): Converts various file formats for pre-processing. - [LLM Image Converter](/docs/platform/nodes/pre-processing/llm-image-converter): Extracts text from images. - [LLM PDF Converter](/docs/platform/nodes/pre-processing/llm-pdf-converter): Extracts text from PDF documents. - [PDF File Converter](/docs/platform/nodes/pre-processing/pdf-file-converter): Converts PDF files into a standardized document format. - [PPTX File Converter](/docs/platform/nodes/pre-processing/pptx-file-converter): Converts PPTX files into a standardized document format. - [DOCX File Converter](/docs/platform/nodes/pre-processing/docx-file-converter): A component for converting files to Documents using the docx converter. - [CSV File Converter](/docs/platform/nodes/pre-processing/csv-file-converter): Converts CSV files into a standardized document format. - [Text File Converter](/docs/platform/nodes/pre-processing/text-file-converter): A component for converting text files to Documents using the TextFileConverter. - [Multi-file Converter](/docs/platform/nodes/pre-processing/multi-file-converter): Converts various file formats for pre-processing. - Chunking - [Chunking Nodes](/docs/platform/nodes/chunking): Chunking nodes available in the Dynamiq workflow builder. - [Document Splitter](/docs/platform/nodes/chunking/document-splitter): Splits documents into smaller sections while retaining metadata. - [Recursive Character Splitter](/docs/platform/nodes/chunking/recursive-character-splitter): Recursively splits text by a list of separators into chunks. - [Markdown Header Splitter](/docs/platform/nodes/chunking/markdown-header-splitter): Splits Markdown by header levels into chunks. - [Auto Splitter](/docs/platform/nodes/chunking/auto-splitter): Automatically picks a splitting strategy per document. - [Semantic Splitter](/docs/platform/nodes/chunking/semantic-splitter): Splits text into semantically coherent chunks using an embedder. - Rankers - [Rankers Nodes](/docs/platform/nodes/rankers): Rankers nodes available in the Dynamiq workflow builder. - [LLM Document Ranker](/docs/platform/nodes/rankers/llm-document-ranker): Reranks documents using a Large Language Model (LLM). - [Time Weighted Document Ranker](/docs/platform/nodes/rankers/time-weighted-document-ranker): Adjusts the initial scores of documents based on their recency. - [Cohere Ranker](/docs/platform/nodes/rankers/cohere-ranker): Reranks documents using Cohere's reranking model. - Vectorization - [Vectorization Nodes](/docs/platform/nodes/vectorization): Vectorization nodes available in the Dynamiq workflow builder. - [Embedder Nodes](/docs/platform/nodes/vectorization/embedders): Document and text embedder nodes for every supported provider, with node types and required connections. - Vector Stores - [Vector Stores Nodes](/docs/platform/nodes/vector-stores): Vector Stores nodes available in the Dynamiq workflow builder. - [Knowledge Base Search](/docs/platform/nodes/vector-stores/knowledge-base-search): Retrieves relevant documents based on a query and knowledge base ID. - [Vector Store Search](/docs/platform/nodes/vector-stores/vector-store-search): Retrieves relevant documents based on a query while specifying the embedder and retriever. - [Vector Store Writer](/docs/platform/nodes/vector-stores/vector-store-writer): Node for writing documents to a vector store. - [Vector Store Retrievers](/docs/platform/nodes/vector-stores/retrievers): Store-specific retriever nodes that fetch documents by embedding similarity, with node types and connections. - [Vector Store Writers](/docs/platform/nodes/vector-stores/writers): Store-specific writer nodes that upsert embedded documents into a vector store. - Python SDK: The open-source Dynamiq orchestration framework for agentic AI applications. - [Python SDK](/docs/sdk): Dynamiq is an open-source Python orchestration framework for agentic AI and LLM applications — build workflows, agents, and RAG pipelines in code. - Get Started - [Installation](/docs/sdk/get-started/installation): Install the dynamiq Python package with pip or Poetry, check requirements, and set up provider API keys. - [Quickstart](/docs/sdk/get-started/quickstart): Run an LLM workflow in about 20 lines of Python, then build an agent that answers questions with a web-search tool. - [SDK vs Platform](/docs/sdk/get-started/sdk-vs-platform): Decide when to build with the open-source Python SDK, when to use the Dynamiq platform, and how the two connect through tracing, YAML, the gateway, and deployment. - Concepts - [Workflows, Flows & Nodes](/docs/sdk/concepts/workflows-flows-and-nodes): The three core SDK abstractions — Workflow, Flow, and Node — how the DAG is wired with depends_on() and .inputs(), and the node execution lifecycle. - [Connections & Credentials](/docs/sdk/concepts/connections-and-credentials): How SDK connection classes hold credentials, which environment variables they read by default, and how the ConnectionManager caches service clients. - [Running Workflows & Results](/docs/sdk/concepts/running-and-results): The run() interface, RunnableResult and statuses, RunnableConfig options, async execution, and mid-run cancellation. - [Streaming & Callbacks](/docs/sdk/concepts/streaming-and-callbacks): Stream tokens and intermediate steps from LLM and agent nodes with StreamingConfig, and hook every lifecycle event with callback handlers. - Agents - [Agent](/docs/sdk/agents/agent): Configure the SDK's Agent class — LLM, role, tools, loops, inference modes, structured output, sandbox, file store, and streaming. - [Tools & Function Tools](/docs/sdk/agents/tools-and-function-tools): The built-in tool catalog, the function_tool decorator for wrapping Python functions, and custom tool nodes. - [Memory](/docs/sdk/agents/memory): Give agents conversation memory with pluggable backends — in-memory, SQL, vector stores, or the Dynamiq platform — plus save modes, retrieval strategies, and long-term fact memory. - [Orchestrators](/docs/sdk/agents/orchestrators): Coordinate multiple agents in code — manager-led delegation with agents as tools, and the Graph Orchestrator state machine. - RAG - [RAG Pipeline](/docs/sdk/rag/rag-pipeline): Build both halves of RAG in the SDK — an indexing flow that converts, splits, embeds, and stores documents, and a retrieval flow that answers questions over them. - [Document Processing](/docs/sdk/rag/document-processing): Convert files into documents and split them into chunks — the full converter and splitter catalog with configuration. - [Embedders & Vector Stores](/docs/sdk/rag/embedders-and-vector-stores): Eight embedding providers and eight vector stores — the provider/store matrix with writer configuration for each. - [Retrievers & Rankers](/docs/sdk/rag/retrievers-and-rankers): Query vector stores with per-store retriever nodes, bundle retrieval into an agent tool, and re-rank results with Cohere, an LLM, or time weighting. - [Knowledge Graphs](/docs/sdk/rag/knowledge-graphs): Extract entities and relationships from documents with an LLM, resolve them to durable identities, and upsert them into a graph store. - [Graph Retrieval](/docs/sdk/rag/graph-retrieval): Query a knowledge graph with KnowledgeGraphRetriever — seeded traversal, multi-hop beam search, and access control enforced on edges. - LLMs - [LLM Providers](/docs/sdk/llms/llm-providers): One unified LLM node across 27 providers — provider table, connection env vars, common parameters, vision and PDF support, and fallbacks. - [Prompts & Messages](/docs/sdk/llms/prompts-and-messages): Build Prompt and Message objects with Jinja templating, send images and files with VisionMessage, and attach tools and response schemas. - Platform Integration - [Tracing to Dynamiq](/docs/sdk/platform-integration/tracing-to-dynamiq): Send traces from open-source SDK workflows to the Dynamiq platform with DynamiqTracingCallbackHandler and view them under Gateway → Tracing. - [YAML Workflows](/docs/sdk/platform-integration/yaml-workflows): Define workflows in YAML, load them with WorkflowYAMLLoader, dump them back with WorkflowYAMLDumper, and resolve $type/$id requirements. - [Deploy from the SDK](/docs/sdk/platform-integration/deploy-from-sdk): Package an SDK application as a container and deploy it to Dynamiq as a service with the dynamiq CLI — from source build or prebuilt image. - [Platform Connections & Gateway](/docs/sdk/platform-integration/remote-connections-and-gateway): Call the Dynamiq AI Gateway from SDK code and use the Dynamiq connection to reach platform-managed memory and skills. - CLI - [CLI Overview](/docs/sdk/cli/cli-overview): Install and configure the dynamiq CLI — credentials, config files, and the org/project context that scopes every command. - [CLI Reference](/docs/sdk/cli/cli-reference): Complete reference for every dynamiq CLI command — config, org, project, service, and resource-profiles — with flags and examples. - Advanced - [Custom Nodes](/docs/sdk/advanced/custom-nodes): Subclass Node to build your own workflow components — input schemas, the execute contract, the execution lifecycle, and connection handling with ConnectionNode. - [Error Handling & Retries](/docs/sdk/advanced/error-handling-and-retries): Configure per-node timeouts, retries with exponential backoff, and failure propagation with the ErrorHandling model. - [Caching](/docs/sdk/advanced/caching): Cache node outputs in Redis so repeated runs with identical inputs skip execution — per-node opt-in plus a per-run cache config. - [Checkpoints](/docs/sdk/advanced/checkpoints): Persist flow state to a backend (in-memory, filesystem, PostgreSQL) and resume runs after crashes, timeouts, or human-input waits. - [Evaluations](/docs/sdk/advanced/evaluations-sdk): Score workflow outputs in code with ready-made RAG metrics, the LLMEvaluator for custom judged metrics, and the PythonEvaluator for programmatic checks. - [Sandboxes](/docs/sdk/advanced/sandboxes): Give agents an isolated remote filesystem and shell with E2B or Daytona sandbox backends — attach via SandboxConfig or drive the sandbox directly. - Examples - [Examples](/docs/sdk/examples/examples-index): A categorized catalog of the runnable examples in the dynamiq repository — agents, orchestrators, RAG, tools, checkpoints, streaming, evaluations, and full use-case apps. - [Worked Examples](/docs/sdk/examples/worked-examples): Three complete, runnable checkpoint programs — crash-resume across a multi-node flow, a human-in-the-loop approval that survives a process exit, and time travel through a Graph Orchestrator's checkpoint chain.