Eigenpal Automations API
Inspect runnable workflow and agent automations, their versions, triggers, and source sync state.
Inspect runnable workflow and agent automations, their versions, triggers, and source sync state.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/eigenpal-automations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Eigenpal Automations API
version: 1.0.0
description: Public REST API for inspecting automations, starting and monitoring runs, managing files, collecting human reviews, and running evaluations.
contact:
name: Eigenpal
url: https://eigenpal.com
license:
name: Apache-2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://studio.eigenpal.com
description: Production
security:
- bearerAuth: []
tags:
- name: Automations
description: Inspect runnable workflow and agent automations, their versions, triggers, and source sync state.
paths:
/api/v1/automations:
get:
operationId: automations.list
summary: List automations
description: 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.
tags:
- Automations
parameters:
- in: query
name: search
schema:
description: Substring match against slug, name, or description
type: string
description: Substring match against slug, name, or description
- in: query
name: type
schema:
description: Filter by implementation type
type: string
enum:
- workflow
- agent
description: Filter by implementation type
- in: query
name: limit
schema:
description: Maximum number of automations to return.
type: integer
minimum: 1
maximum: 100
description: Maximum number of automations to return.
- in: query
name: offset
schema:
description: Zero-based offset for paging through automations.
type: integer
minimum: 0
maximum: 9007199254740991
description: Zero-based offset for paging through automations.
responses:
'200':
description: Page of runnable workflow and agent automations.
content:
application/json:
schema:
$ref: '#/components/schemas/ListAutomationsResponse'
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
/api/v1/automations/{id}:
get:
operationId: automations.get
summary: Get automation
description: Get one runnable workflow or agent automation by id or typed alias.
tags:
- Automations
parameters:
- in: path
name: id
schema:
type: string
description: Workflow id, agent id, or typed alias like workflows.slug / agents.slug
required: true
description: Workflow id, agent id, or typed alias like workflows.slug / agents.slug
responses:
'200':
description: Automation
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationDetail'
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
/api/v1/automations/{id}/sync:
post:
operationId: automations.sync
summary: Sync automation from latest Git release
description: '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 token for the organization and a user-backed API key. It does not publish source; it reads the already-published latest release manifest. Versioned targets are rejected with 400, missing organization/source/release/manifest state returns 404, invalid manifests return 400, and provider or persistence failures return 5xx.'
tags:
- Automations
parameters:
- in: path
name: id
schema:
type: string
description: Automation target to sync, such as agents.invoice-agent or workflows.extract. Do not include a version; sync always uses the latest Git release.
required: true
description: Automation target to sync, such as agents.invoice-agent or workflows.extract. Do not include a version; sync always uses the latest Git release.
responses:
'200':
description: Automation metadata, latest release information, and non-fatal sync warnings.
content:
application/json:
schema:
type: object
properties:
automation:
type: object
properties:
id:
type: string
description: Automation id after reconciliation.
type:
type: string
enum:
- agent
- workflow
description: Automation kind inferred from the source package path.
slug:
type: string
description: Source package slug within agents/ or workflows/.
status:
type: string
enum:
- active
- archived
description: Current automation registry status.
updatedAt:
type: string
description: ISO timestamp for the reconciled automation row.
required:
- id
- type
- slug
- status
- updatedAt
additionalProperties: false
release:
type: object
properties:
version:
type: string
description: Latest released source package version that was synced.
tag:
type: string
description: Git release tag read during sync.
commit:
type: string
description: Git commit for the release tag.
required:
- version
- tag
- commit
additionalProperties: false
warnings:
type: array
items:
type: string
description: Non-fatal source-state warnings, such as unsupported email alias domains.
required:
- automation
- release
- warnings
additionalProperties: false
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
/api/v1/automations/{id}/triggers:
get:
operationId: automations.triggers.get
summary: Get automation triggers
description: Read trigger state for a workflow or agent automation. Trigger mutation is not public v1.
tags:
- Automations
parameters:
- in: path
name: id
schema:
type: string
description: Workflow id, agent id, or typed alias like workflows.slug / agents.slug
required: true
description: Workflow id, agent id, or typed alias like workflows.slug / agents.slug
responses:
'200':
description: Automation trigger state
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationTriggersResponse'
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
/api/v1/automations/{id}/versions:
get:
operationId: automations.versions.list
summary: List automation versions
description: List versions for a workflow or agent automation through one read-only route.
tags:
- Automations
parameters:
- in: path
name: id
schema:
type: string
description: Workflow id, agent id, or typed alias like workflows.slug / agents.slug
required: true
description: Workflow id, agent id, or typed alias like workflows.slug / agents.slug
responses:
'200':
description: Automation versions
content:
application/json:
schema:
$ref: '#/components/schemas/ListAutomationVersionsResponse'
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
components:
schemas:
ApiErrorEnvelope:
type: object
properties:
issues:
type: array
items:
$ref: '#/components/schemas/ApiErrorIssue'
requestId:
type: string
description: Request id echoed via the x-request-id header
hint:
description: Suggested fix for known error patterns
type: string
docsUrl:
description: Link to relevant docs
type: string
required:
- issues
- requestId
additionalProperties: false
ApiErrorIssue:
type: object
properties:
field:
type: string
description: JSON path of the offending field, or "<root>"
message:
type: string
description: Human-readable error message
code:
type: string
description: Machine-readable error code (e.g. invalid_value, not_found, api_trigger_disabled, manual_trigger_disabled)
severity:
type: string
enum:
- error
- warning
description: Issue severity
required:
- field
- message
- code
- severity
additionalProperties: false
AutomationTriggersResponse:
type: object
properties:
automationId:
type: string
type:
$ref: '#/components/schemas/AutomationType'
triggers:
$ref: '#/components/schemas/AutomationTriggerState'
required:
- automationId
- type
- triggers
additionalProperties: false
AutomationType:
type: string
enum:
- workflow
- agent
ListAutomationVersionsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AutomationVersion'
total:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
limit:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
offset:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- data
- total
- limit
- offset
additionalProperties: false
AutomationSummary:
type: object
properties:
id:
type: string
description: Implementation id for the automation. Workflow automations use workflow ids; agent automations use agent workflow ids.
type:
$ref: '#/components/schemas/AutomationType'
slug:
type: string
name:
anyOf:
- type: string
- type: 'null'
description:
anyOf:
- type: string
- type: 'null'
status:
type: string
version:
anyOf:
- type: string
- type: 'null'
triggers:
$ref: '#/components/schemas/AutomationTriggerState'
implementationAvailable:
description: False when the automations registry row exists but the workflow/agent implementation row is missing.
type: boolean
createdAt:
anyOf:
- type: string
- type: string
updatedAt:
anyOf:
- type: string
- type: string
required:
- id
- type
- slug
- name
- createdAt
additionalProperties: false
AutomationDetail:
type: object
properties:
id:
type: string
description: Implementation id for the automation. Workflow automations use workflow ids; agent automations use agent workflow ids.
type:
$ref: '#/components/schemas/AutomationType'
slug:
type: string
name:
anyOf:
- type: string
- type: 'null'
description:
anyOf:
- type: string
- type: 'null'
status:
type: string
version:
anyOf:
- type: string
- type: 'null'
triggers:
$ref: '#/components/schemas/AutomationTriggerState'
implementationAvailable:
description: False when the automations registry row exists but the workflow/agent implementation row is missing.
type: boolean
createdAt:
anyOf:
- type: string
- type: string
updatedAt:
anyOf:
- type: string
- type: string
inputSchema:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: 'null'
outputSchema:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: 'null'
required:
- id
- type
- slug
- name
- createdAt
additionalProperties: false
AutomationVersion:
type: object
properties:
id:
type: string
automationId:
type: string
version:
anyOf:
- type: string
- type: 'null'
sourceRef:
anyOf:
- type: string
- type: 'null'
isCurrent:
type: boolean
createdAt:
anyOf:
- type: string
- type: string
required:
- id
- automationId
- version
additionalProperties: false
ListAutomationsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AutomationSummary'
total:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
limit:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
offset:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- data
- total
- limit
- offset
additionalProperties: false
AutomationTriggerState:
type: object
properties:
api:
type: boolean
email:
type: boolean
manual:
type: boolean
cron:
type: boolean
required:
- api
- email
- manual
- cron
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API key issued from Settings → API Keys. Pass as `Authorization: Bearer <key>`.'