Eigenpal Automations API

Inspect runnable workflow and agent automations, their versions, triggers, and source sync state.

OpenAPI Specification

eigenpal-automations-api-openapi.yml Raw ↑
openapi: 3.1.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:
    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
    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
    AutomationType:
      type: string
      enum:
      - workflow
      - agent
    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
    AutomationTriggerState:
      type: object
      properties:
        api:
          type: boolean
        email:
          type: boolean
        manual:
          type: boolean
        cron:
          type: boolean
      required:
      - api
      - email
      - manual
      - cron
      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
    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
    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
    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
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key issued from Settings → API Keys. Pass as `Authorization: Bearer <key>`.'