# EigenPal Docs ## Docs - [Get automation](https://docs.eigenpal.com/api-reference/automations/get-automation.md): Get one runnable workflow or agent automation by id or typed alias. - [Get automation triggers](https://docs.eigenpal.com/api-reference/automations/get-automation-triggers.md): Read trigger state for a workflow or agent automation. Trigger mutation is not public v1. - [List automation versions](https://docs.eigenpal.com/api-reference/automations/list-automation-versions.md): List versions for a workflow or agent automation through one read-only route. - [List automations](https://docs.eigenpal.com/api-reference/automations/list-automations.md): Returns workflows and agents through one runnable automation collection. Use `type` to narrow to workflows or agents, and `search` to find automations by slug, name, or description. - [Sync automation from latest Git release](https://docs.eigenpal.com/api-reference/automations/sync-automation-from-latest-git-release.md): Reconciles automation registry metadata and trigger projections from the latest Git source release. This operation is idempotent for unchanged source state: repeated calls against the same latest release leave the same automation registry state and may repeat the same warnings. Requires a Bearer API… - [Cancel experiment](https://docs.eigenpal.com/api-reference/evaluation/cancel-experiment.md): Request cancellation for an experiment batch. Already-completed runs remain recorded; queued or running work is cancelled when possible. - [Create automation experiment with NDJSON progress](https://docs.eigenpal.com/api-reference/evaluation/create-automation-experiment-with-ndjson-progress.md): Starts a batch eval experiment for workflow or agent automations and streams per-run completion events as NDJSON. - [Create dataset example](https://docs.eigenpal.com/api-reference/evaluation/create-dataset-example.md): Create one dataset example from JSON fields. Use dataset import for archive-based uploads and file-bearing examples. - [Create experiment](https://docs.eigenpal.com/api-reference/evaluation/create-experiment.md): Start an asynchronous experiment batch for one automation. Omit `examples` to run the full dataset, or pass specific example ids to run a subset. - [Delete dataset example](https://docs.eigenpal.com/api-reference/evaluation/delete-dataset-example.md): Delete one dataset example from the automation dataset. This removes the example from future experiments. - [Delete expected file](https://docs.eigenpal.com/api-reference/evaluation/delete-expected-file.md): Delete one file from an automation dataset example expected folder. - [Delete input file](https://docs.eigenpal.com/api-reference/evaluation/delete-input-file.md): Delete one file from an automation dataset example input folder. - [Download expected dataset file](https://docs.eigenpal.com/api-reference/evaluation/download-expected-dataset-file.md): Download one expected file attached to an automation dataset example. - [Download input file](https://docs.eigenpal.com/api-reference/evaluation/download-input-file.md): Download one file from an automation dataset example input folder. - [Export all experiment eval results](https://docs.eigenpal.com/api-reference/evaluation/export-all-experiment-eval-results.md): Download every eval result row for an automation as CSV or JSON. - [Export automation dataset](https://docs.eigenpal.com/api-reference/evaluation/export-automation-dataset.md): Download the automation dataset as a ZIP archive. The archive uses the examples//input and examples//expected folder convention, so it can be re-imported into another automation or environment. - [Export experiment eval results](https://docs.eigenpal.com/api-reference/evaluation/export-experiment-eval-results.md): Download eval result rows for a single experiment batch as CSV or JSON. - [Get dataset example](https://docs.eigenpal.com/api-reference/evaluation/get-dataset-example.md): Fetch one dataset example, including input, expected output, expected files, metadata, and overrides. - [Get evaluators](https://docs.eigenpal.com/api-reference/evaluation/get-evaluators.md): Fetch the evaluator configuration for an automation. Evaluators produce automated `score` results, which are separate from human review verdicts. - [Get experiment](https://docs.eigenpal.com/api-reference/evaluation/get-experiment.md): Fetch one experiment batch with its run summaries and evaluator results grouped by run id. - [Import automation dataset](https://docs.eigenpal.com/api-reference/evaluation/import-automation-dataset.md): Import a dataset ZIP archive using the examples//input and examples//expected folder convention. Use `mode=append` for additive imports or `mode=replace` to replace the dataset. - [List dataset examples](https://docs.eigenpal.com/api-reference/evaluation/list-dataset-examples.md): List dataset examples for one automation. Examples contain input, expected output, expected files, metadata, and optional overrides used by evaluation runs. - [List expected files](https://docs.eigenpal.com/api-reference/evaluation/list-expected-files.md): List files stored under the expected folder for one automation dataset example. - [List experiments](https://docs.eigenpal.com/api-reference/evaluation/list-experiments.md): List experiment batches for one automation. Each experiment runs selected dataset examples and records automated evaluator scores. - [List input files](https://docs.eigenpal.com/api-reference/evaluation/list-input-files.md): List files stored under the input folder for one automation dataset example. - [List run evaluator scores](https://docs.eigenpal.com/api-reference/evaluation/list-run-evaluator-scores.md): List automated evaluator results for one run. Use `score` for evaluator output and run reviews for human verdicts. - [Rename expected file](https://docs.eigenpal.com/api-reference/evaluation/rename-expected-file.md): Rename one expected file attached to an automation dataset example. The parent folder is preserved. - [Rename input file](https://docs.eigenpal.com/api-reference/evaluation/rename-input-file.md): Rename one input file attached to an automation dataset example. The parent folder is preserved. - [Replace evaluators](https://docs.eigenpal.com/api-reference/evaluation/replace-evaluators.md): Replace the evaluator YAML for an automation. The submitted YAML is validated before it becomes the source for future experiment scores. - [Resolve experiment by id](https://docs.eigenpal.com/api-reference/evaluation/resolve-experiment-by-id.md): Returns the owning automation for an experiment batch id. Used when callers only know the experiment id. - [Run dataset example](https://docs.eigenpal.com/api-reference/evaluation/run-dataset-example.md): Start an asynchronous run using the input from one dataset example. Poll `GET /api/v1/runs/{id}` for completion and use run scores or review endpoints to review the result. - [Update dataset example](https://docs.eigenpal.com/api-reference/evaluation/update-dataset-example.md): Partially update a dataset example. Omitted fields are preserved; pass null for nullable fields to clear them. - [Upload expected files](https://docs.eigenpal.com/api-reference/evaluation/upload-expected-files.md): Upload one or more files into the expected folder for an automation dataset example. Use `$file` references such as `expected/result.pdf` from expected JSON to compare file outputs. - [Upload input files](https://docs.eigenpal.com/api-reference/evaluation/upload-input-files.md): Upload one or more files into the input folder for an automation dataset example. Use `$file` references such as `input/invoice.pdf` from the example input JSON to consume them. - [Delete file](https://docs.eigenpal.com/api-reference/files/delete-file.md): Delete a reusable uploaded file. Historical run and dataset snapshots are separate artifacts. - [Download file content](https://docs.eigenpal.com/api-reference/files/download-file-content.md): Download bytes for a reusable uploaded file. - [Get file metadata](https://docs.eigenpal.com/api-reference/files/get-file-metadata.md): Get metadata for a reusable uploaded file. - [Upload file](https://docs.eigenpal.com/api-reference/files/upload-file.md): Upload a reusable file that can later be referenced by run inputs or dataset examples. - [Check API key identity](https://docs.eigenpal.com/api-reference/metadata/check-api-key-identity.md): Return the tenant, user, API key, and scope represented by the current API key. - [Add corrected file](https://docs.eigenpal.com/api-reference/reviews/add-corrected-file.md): Attach one corrected file to a run review. Send multipart/form-data with `file` and optional `name` to upload a local file, or JSON with `outputFileName` and optional `expectedName` to copy an existing run output file. - [Clear run review](https://docs.eigenpal.com/api-reference/reviews/clear-run-review.md): Deletes review metadata, corrections, and corrected files for the run. - [Delete corrected artifact file](https://docs.eigenpal.com/api-reference/reviews/delete-corrected-artifact-file.md): Deletes one corrected artifact file attached to the run review. - [Download corrected artifact file](https://docs.eigenpal.com/api-reference/reviews/download-corrected-artifact-file.md): Downloads one corrected artifact file attached to the run review. Use the `filename` returned by the corrected-output collection endpoint. - [Get automation review health](https://docs.eigenpal.com/api-reference/reviews/get-automation-review-health.md): Aggregates reviewed correctness, review coverage, bucketed counts, and rolling-window confidence for one automation. Prefer this endpoint for single-automation monitoring dashboards. - [Get run review](https://docs.eigenpal.com/api-reference/reviews/get-run-review.md): Returns review metadata and corrections for a run. Corrected files are listed at GET /runs/{id}/reviews/expected; embed review + expected artifacts with GET /runs/{id}?expand=execution. - [List corrected files](https://docs.eigenpal.com/api-reference/reviews/list-corrected-files.md): Returns corrected artifact files attached to the run review. Review metadata and corrected JSON output live at GET /runs/{id}/reviews. - [Promote run to example](https://docs.eigenpal.com/api-reference/reviews/promote-run-to-example.md): Turn a reviewed run into a dataset example. The new example uses the run input and any corrected output/files stored through the review endpoints. - [Rename corrected artifact file](https://docs.eigenpal.com/api-reference/reviews/rename-corrected-artifact-file.md): Renames one corrected artifact file attached to the run review. - [Update run review](https://docs.eigenpal.com/api-reference/reviews/update-run-review.md): Create or replace review metadata for a run. - [Cancel run](https://docs.eigenpal.com/api-reference/runs/cancel-run.md): Cancel a queued run or request cancellation of an in-flight run. - [Download run artifact](https://docs.eigenpal.com/api-reference/runs/download-run-artifact.md): Download one artifact by path. - [Get a run](https://docs.eigenpal.com/api-reference/runs/get-a-run.md): Fetch one run by id. By default this returns core metadata plus terminal output/error fields. Pass `?expand=input,usage,execution,debug` to include detailed sub-objects; `expand=execution` is also where embedded review and expected artifacts appear. - [Get run trace](https://docs.eigenpal.com/api-reference/runs/get-run-trace.md): Return low-level execution trace events for debugging one run. Workflow runs expose observability phases or step records; agent runs expose parsed trace.jsonl events. The shape is intentionally extensible, but common fields are documented. - [Get run usage](https://docs.eigenpal.com/api-reference/runs/get-run-usage.md): Get token, credit, duration, and execution usage for a run. - [List run artifacts](https://docs.eigenpal.com/api-reference/runs/list-run-artifacts.md): Returns a JSON list of downloadable artifact paths for a run. Pass `zip=1` to switch the response to a ZIP download containing output files. - [List run events](https://docs.eigenpal.com/api-reference/runs/list-run-events.md): List a stable chronological lifecycle timeline for a run. - [List run steps](https://docs.eigenpal.com/api-reference/runs/list-run-steps.md): List workflow steps or an agent-compatible execution step summary for a run. - [List runs](https://docs.eigenpal.com/api-reference/runs/list-runs.md): List workflow and agent runs with cursor pagination. - [Retry run](https://docs.eigenpal.com/api-reference/runs/retry-run.md): Start a new run using the source run input. By default the retry uses the latest automation version; pass `version=original` to pin the same source version as the original run. - [Start a run](https://docs.eigenpal.com/api-reference/runs/start-a-run.md): Start a run. Send JSON or multipart/form-data. - [Changelog](https://docs.eigenpal.com/changelog.md): Production release history for the EigenPal platform. - [Agents](https://docs.eigenpal.com/cli/agents.md): Manage EigenPal agents: Git source, datasets, experiments, sessions, and releases. - [Auth](https://docs.eigenpal.com/cli/auth.md): Manage authentication. Credentials live in ~/.config/eigenpal/credentials.json as named profiles. Switch tenants with auth use or set EIGENPAL_PROFILE= for one shell. - [Init](https://docs.eigenpal.com/cli/init.md): Scaffold a new workflow project. Without [name], scaffolds into the current directory using the cwd basename as the workflow name. With [name], creates .// and uses that as the slug. The flat layout matches what run workflows. already discovers, no manual file moves. - [CLI overview](https://docs.eigenpal.com/cli/overview.md): Install the EigenPal CLI, authenticate, and manage workflows, datasets, runs, and agents. - [Rerun](https://docs.eigenpal.com/cli/rerun.md): Create a new run from a previous run's stored input snapshot. - [Run](https://docs.eigenpal.com/cli/run.md): Start a workflow or agent run, e.g. workflows.extract-invoice. - [Runs](https://docs.eigenpal.com/cli/runs.md): Inspect, watch, and manage workflow, agent, and eval runs. - [Skill](https://docs.eigenpal.com/cli/skill.md): Install / uninstall / list the EigenPal agent skill in your project (Claude Code, Cursor, Codex, Gemini CLI, Antigravity, OpenCode, Pi, Windsurf, GitHub Copilot). - [Status](https://docs.eigenpal.com/cli/status.md): One-shot dashboard: server, active tenant, user, key id, workflow count. Pair with --json for scripting. - [Workflow](https://docs.eigenpal.com/cli/workflow.md): Manage workflows: push, pull, and evaluate. - [Agents](https://docs.eigenpal.com/concepts/agents.md): Git-backed agents for document tasks that are hard to express as a fixed step graph. - [Artifacts as files](https://docs.eigenpal.com/concepts/artifacts.md): Workflows, datasets, evaluators, and agents are plain files you can export, import, diff, and version. - [Automations](https://docs.eigenpal.com/concepts/automations.md): The unified API model for running workflows and agents. - [Evaluations](https://docs.eigenpal.com/concepts/evals.md): Test workflows like code. Datasets hold examples, evaluators score runs, experiments compare versions. - [How it works](https://docs.eigenpal.com/concepts/how-it-works.md): Build, evaluate, deploy, observe, and improve an EigenPal workflow. - [Design principles](https://docs.eigenpal.com/concepts/principles.md): The engineering choices behind EigenPal workflows, evaluations, and artifacts. - [Reviews](https://docs.eigenpal.com/concepts/reviews.md): Human feedback for production runs: verdicts, statuses, corrections, and monitoring. - [Workflow steps](https://docs.eigenpal.com/concepts/steps-overview.md): The complete catalog of step types, each with a code-derived config and output schema. - [Why EigenPal](https://docs.eigenpal.com/concepts/why.md): Automate repetitive work with AI, with datasets and evaluators for measuring output quality. - [Workflows](https://docs.eigenpal.com/concepts/workflows.md): Directed graphs of typed steps that automate a repetitive task. - [Build a dataset](https://docs.eigenpal.com/guides/build-a-dataset.md): Create example inputs and expected outputs, then push them as a portable folder archive. - [Choose your path](https://docs.eigenpal.com/guides/choose-your-path.md): Pick the fastest way into EigenPal based on what you are trying to do. - [Deploy to production](https://docs.eigenpal.com/guides/deploy-to-production.md): Take a workflow from a passing evaluation to full automation, ramping production traffic with sampled human review. - [Eval-first development](https://docs.eigenpal.com/guides/eval-first-development.md): Build a workflow, define evaluators, run experiments, and turn failures into regression tests. - [Evaluate a workflow](https://docs.eigenpal.com/guides/evaluate-workflow.md): Define evaluators, run an experiment over a dataset, and compare versions. - [Your first agent](https://docs.eigenpal.com/guides/first-agent.md): Clone, edit, release, run, and inspect a Git-backed agent. - [Your first workflow](https://docs.eigenpal.com/guides/first-workflow.md): Scaffold, push, and run a workflow from the CLI in a few minutes. - [Optimize cost](https://docs.eigenpal.com/guides/optimize-cost.md): Fix the quality bar with evaluations, then pick the cheapest model configuration that still passes. - [Receive run events with webhooks](https://docs.eigenpal.com/guides/outbound-webhooks.md): Send signed run lifecycle events from EigenPal to your application. - [Review production runs](https://docs.eigenpal.com/guides/review-runs.md): Review runs, track fixes with status, rerun the same inputs, and monitor quality over time. - [Install the EigenPal skill](https://docs.eigenpal.com/guides/skill-install.md): Add the EigenPal CLI skill to Claude Code, Cursor, and other AI coding tools. - [EigenPal docs](https://docs.eigenpal.com/index.md): Build, test, and run AI workflows for repetitive document and data tasks. - [SDKs](https://docs.eigenpal.com/sdks/overview.md): Official TypeScript and Python SDKs for triggering EigenPal workflows and agents from your code. - [Python SDK](https://docs.eigenpal.com/sdks/python.md): Trigger EigenPal workflows and agents from Python with the eigenpal package. - [Automations](https://docs.eigenpal.com/sdks/python/automations.md) - [Configuration](https://docs.eigenpal.com/sdks/python/configuration.md) - [Errors](https://docs.eigenpal.com/sdks/python/errors.md) - [Evaluation](https://docs.eigenpal.com/sdks/python/evaluation.md) - [Files](https://docs.eigenpal.com/sdks/python/files.md) - [Reference](https://docs.eigenpal.com/sdks/python/reference.md) - [Runs](https://docs.eigenpal.com/sdks/python/runs.md) - [TypeScript SDK](https://docs.eigenpal.com/sdks/typescript.md): Trigger EigenPal workflows and agents from TypeScript with @eigenpal/sdk. - [Automations](https://docs.eigenpal.com/sdks/typescript/automations.md) - [Configuration](https://docs.eigenpal.com/sdks/typescript/configuration.md) - [Errors](https://docs.eigenpal.com/sdks/typescript/errors.md) - [Evaluation](https://docs.eigenpal.com/sdks/typescript/evaluation.md) - [Files](https://docs.eigenpal.com/sdks/typescript/files.md) - [Reference](https://docs.eigenpal.com/sdks/typescript/reference.md) - [Runs](https://docs.eigenpal.com/sdks/typescript/runs.md) - [HTTP Request](https://docs.eigenpal.com/steps/action/http.md): Make an HTTP request to an external API - [Invoke Workflow](https://docs.eigenpal.com/steps/action/invoke-workflow.md): Execute another workflow and return its output - [Website Reader](https://docs.eigenpal.com/steps/action/website-reader.md): Fetch a webpage and convert content to markdown - [Classify](https://docs.eigenpal.com/steps/ai/classify.md): Classify a document or text into one of a fixed label set using an LLM. Output exposes the picked label (constrained to the configured names), a coarse confidence, and a short justification. Pair with control.fail to reject documents that match an undesired label. - [Extract Data](https://docs.eigenpal.com/steps/ai/extract.md): Extract structured data from text using AI with a JSON schema - [Parse Document](https://docs.eigenpal.com/steps/ai/parse.md): Extract text from documents (PDF, DOCX, images) using OCR or vision models - [Separate Documents](https://docs.eigenpal.com/steps/ai/segment.md): Separate a concatenated batch (one big scan) into typed document instances using an LLM. Consumes ai.parse output and a type taxonomy; discovers an unknown number of documents in any order and emits per-document page ranges + text + type, ready for type-specific ai.extract via control.parallel_map.… - [Split Document](https://docs.eigenpal.com/steps/ai/split.md): Split a parsed document into named sections using an LLM. Consumes ai.parse output; emits per-section page ranges and text ready for downstream ai.extract via control.parallel_map. - [Fail](https://docs.eigenpal.com/steps/control/fail.md): Terminate the workflow with a typed status code + message. With an optional condition, only fails when the condition is truthy; otherwise always fails when reached. Pair with ai.classify or any prior step to fail fast on bad inputs. - [For Each](https://docs.eigenpal.com/steps/control/foreach.md): Loop over an array and execute steps for each item - [Condition](https://docs.eigenpal.com/steps/control/if.md): Branch execution based on a condition expression - [Parallel](https://docs.eigenpal.com/steps/control/parallel.md): Execute multiple branches concurrently - [Parallel Map](https://docs.eigenpal.com/steps/control/parallel_map.md): Iterate over an array with concurrent execution up to a limit - [Switch](https://docs.eigenpal.com/steps/control/switch.md): Multi-way routing: resolve an expression and run the first case whose value matches (else default). Cleaner than a nested control.if chain for routing an item to one of N pipelines by a discriminator field like a document type. - [Wait](https://docs.eigenpal.com/steps/control/wait.md): Pause workflow execution for a specified duration - [Combine Data](https://docs.eigenpal.com/steps/transform/combine.md): Merge multiple objects or concatenate arrays - [Merge Inputs](https://docs.eigenpal.com/steps/transform/merge.md): Merge multiple named inputs into a single output - [Embed PDF Text](https://docs.eigenpal.com/steps/transform/pdf-embed.md): Embed OCR text layer into scanned PDFs/images to make them searchable - [Regex Extract](https://docs.eigenpal.com/steps/transform/regex-extract.md): Pull named fields from text via regex patterns (deterministic counterpart to ai.extract). Accepts raw text or a parsed-document object; matches carry `_evidence.pageIndex` when pages are provided. - [Remove Fields](https://docs.eigenpal.com/steps/transform/remove.md): Remove specified fields from an object - [Script](https://docs.eigenpal.com/steps/transform/script.md): Execute a TypeScript function in a QuickJS sandbox. Input keys become the function's parameter list, in declaration order, and the required `: R` return-type annotation IS this step's output schema: `inputs: { items, taxRate }` ⇒ `function script(items: …, taxRate: …): R { … }`. - [Set Value](https://docs.eigenpal.com/steps/transform/set.md): Set key-value pairs in the output object - [Split Data](https://docs.eigenpal.com/steps/transform/split.md): Split a string by delimiter or extract keys from an object - [Fill Template](https://docs.eigenpal.com/steps/transform/template.md): Fill a DOCX template with data from previous steps. - [Text Chunker](https://docs.eigenpal.com/steps/transform/text-chunker.md): Split long text into chunks with regex-anchored boundaries, overlap, and header preservation. Accepts raw text or a parsed-document object; chunks carry source page indexes when pages are provided. - [XLSX to JSON](https://docs.eigenpal.com/steps/transform/xlsx-to-json.md): Convert XLSX spreadsheet to JSON array of row objects for use in scripts or downstream steps ## OpenAPI Specs - [openapi](https://docs.eigenpal.com/api-reference/openapi.json)