Skip to main content

eigenpal

Trigger and inspect Eigenpal automations from Python.

pypi downloads license

Install

pip install eigenpal

Requires Python 3.10+. Get an API key at studio.eigenpal.com -> Settings -> API Keys.

Quick Start

import os
from pathlib import Path
from eigenpal import EigenpalClient

client = EigenpalClient(api_key=os.environ["EIGENPAL_API_KEY"])

result = client.run_and_wait(
    "workflows.extract-invoice",
    input={"contract_document": Path("contract.pdf")},
)

print(result.finished, result.output)

target accepts a bare workflow ID such as wf_abc, or a typed target such as workflows.<id-or-slug> or agents.<slug>. Slugs need the prefix because workflow and agent slugs can overlap.

Automations

Workflows and agents are exposed as automations.

listing = client.automations.list(search="invoice", folder_id="fldr_…")
automation = client.automations.get("workflows.extract-invoice")
client.automations.move("workflows.extract-invoice", folder_path="billing/invoices")
client.automations.delete("workflows.extract-invoice")

list(folder_id="null") returns unfiled YAML workflows at the tenant root. Agent automations have no folder model.

Workflow delete archives the automations parent and keeps execution history. Agent delete removes the agent implementation and history, matching the dashboard, with best-effort leftover storage cleanup.

Folders

Workflow and template trees are a first-class resource. Nested agent directories in Git are source organization only.

tree = client.folders.list(type="workflow", tree="true")
folder = client.folders.create(name="invoices", type="workflow")
client.folders.update(folder.id, name="billing")
client.folders.delete(folder.id)  # unfiles workflows; does not delete them

Runs

started = client.run("agents.invoice-agent", input={"invoice": Path("invoice.pdf")})

run = client.runs.get(started.id, expand=["usage", "execution"])
usage = client.runs.usage(started.id)
steps = client.runs.steps(started.id)
events = client.runs.events(started.id)
trace = client.runs.trace.get(started.id)

client.runs.cancel(started.id)
client.rerun(started.id, wait_for_completion=60)

List calls use the same run API for workflows, agents, manual runs, and eval runs:

recent_failures = client.runs.list(
    type="workflow",
    status="failed,cancelled",
    limit=50,
)

Files And Artifacts

Use client.files for reusable upload-first blobs. When referenced by a run input, Eigenpal snapshots the file into run-scoped artifacts.

uploaded = client.files.upload(Path("contract.pdf"))

started = client.run(
    "workflows.extract-invoice",
    input={"contract_document": {"$fileId": uploaded.id}},
)

artifacts = client.runs.artifacts.list(started.id)
content = client.runs.artifacts.download(started.id, artifacts.artifacts[0].path)

You can also pass a Path, file handle, or {"content": bytes, "filename": str, "mime_type": str} directly to client.run; the SDK sends multipart form data automatically. Durable run inputs and dataset examples store scoped {"$file": "input/..."} artifact refs after ingestion.

Errors

Every non-2xx response raises a typed subclass of EigenpalError:

HTTP Class
400 EigenpalValidationError
401 EigenpalAuthError
403 EigenpalForbiddenError
404 EigenpalNotFoundError
429 EigenpalRateLimitError
5xx EigenpalServerError
timeout EigenpalTimeoutError

Reference

Topic What is in it
Automations List, inspect, move, delete, versions, triggers, folders.
Runs Start, poll, cancel, rerun, usage, steps, events, traces, reviews.
File inputs Multipart upload from Path, file handle, or bytes.
Errors Typed exceptions, retries, request ids.
Configuration API key, base_url, timeouts, headers.
Full API reference Every method, generated from OpenAPI.

License

Apache-2.0.

Metadata

Release files for eigenpal 0.20.85

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eigenpal 0.20.85
File Size Uploaded Provenance Actions
eigenpal-0.20.85.tar.gz 159.9 kB With provenance Details for eigenpal-0.20.85.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eigenpal 0.20.85
File Interpreter ABI Platform Actions
eigenpal-0.20.85-py3-none-any.whl Python 3 none any Details for eigenpal-0.20.85-py3-none-any.whl

Total release size: 646.9 kB

Release files / eigenpal-0.20.85.tar.gz

Download URL eigenpal-0.20.85.tar.gz
Size 159.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d1806f8c164711649d182dcdec67c1e7c16f741e648857cbd517428fe29b29e9
BLAKE2b-256 checksum
How to use checksums
3c8b1101307b3f0b598d1079709146fe0cce293e966042058c41e669cad7abfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / eigenpal-0.20.85-py3-none-any.whl

Download URL eigenpal-0.20.85-py3-none-any.whl
Size 487.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2dd93550c4a62172ca51b6da44f50fe5060b3d752c6070b3ac8e9d50f99b621b
BLAKE2b-256 checksum
How to use checksums
fee1d7fd412b4a914546cf3380c4807842d66cef6752da2bff99537949a4c0f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for eigenpal 0.20.85

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for eigenpal-0.20.85.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.20.85 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page