Eigenpal Folders API

Create and organize workflow and template folders. Deleting a folder unfiles contained workflows or templates and does not delete them.

Operations 5

GET /v1/folders List folders #
POST /v1/folders Create folder #
GET /v1/folders/{id} Get folder #
PATCH /v1/folders/{id} Update folder #
DELETE /v1/folders/{id} Delete folder #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/eigenpal:eigenpal-folders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

eigenpal-folders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Eigenpal Folders 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://api.eigenpal.com
  description: Production (canonical API hostname)
security:
- bearerAuth: []
tags:
- name: Folders
  description: Create and organize workflow and template folders. Deleting a folder unfiles contained workflows or templates and does not delete them.
paths:
  /v1/folders:
    get:
      operationId: folders.list
      summary: List folders
      description: List folders in one tree. `type` is required (`workflow` or `template`). Pass `tree=true` for the full nested tree with counts; otherwise list direct children of `parentId` (`null` for root). Deleting a folder later unfiles contained workflows or templates and does not delete them.
      tags:
      - Folders
      parameters:
      - in: query
        name: type
        schema:
          description: Folder tree to list. Required; there is no default.
          $ref: '#/components/schemas/FolderType'
        required: true
        description: Folder tree to list. Required; there is no default.
      - in: query
        name: parentId
        schema:
          description: Limit to direct children of this folder. Pass `null` for root folders only. Ignored when `tree=true`.
          type: string
        description: Limit to direct children of this folder. Pass `null` for root folders only. Ignored when `tree=true`.
      - in: query
        name: tree
        schema:
          description: When `true`, return the full tree for `type` with child counts (and workflow previews for workflow trees).
          type: string
        description: When `true`, return the full tree for `type` with child counts (and workflow previews for workflow trees).
      responses:
        '200':
          description: Folders in the requested tree
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListFoldersResponse'
        '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'
        '503':
          description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
          headers:
            Retry-After:
              description: Seconds until the next request may succeed
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
    post:
      operationId: folders.create
      summary: Create folder
      description: Create a folder in the workflow or template tree. `type` is required. Missing parents 404; a same-named sibling at that location returns 409. Nested agent directories in Git are source organization only and are not folders.
      tags:
      - Folders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFolderRequest'
      responses:
        '201':
          description: Created folder
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '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'
        '409':
          description: Conflict. The resource is in a state that forbids the request.
          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'
        '503':
          description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
          headers:
            Retry-After:
              description: Seconds until the next request may succeed
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
  /v1/folders/{id}:
    get:
      operationId: folders.get
      summary: Get folder
      description: Get one workflow or template folder by id.
      tags:
      - Folders
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Folder id (`fldr_…`).
        required: true
        description: Folder id (`fldr_…`).
      responses:
        '200':
          description: Folder
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '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'
        '503':
          description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
          headers:
            Retry-After:
              description: Seconds until the next request may succeed
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
    patch:
      operationId: folders.update
      summary: Update folder
      description: Rename or reparent a folder. Moving a folder onto itself, into a descendant, or into the other tree is rejected. A same-named sibling at the destination returns 409.
      tags:
      - Folders
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Folder id (`fldr_…`).
        required: true
        description: Folder id (`fldr_…`).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFolderRequest'
      responses:
        '200':
          description: Updated folder
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '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'
        '409':
          description: Conflict. The resource is in a state that forbids the request.
          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'
        '503':
          description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
          headers:
            Retry-After:
              description: Seconds until the next request may succeed
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
    delete:
      operationId: folders.delete
      summary: Delete folder
      description: Delete a folder and cascade-delete child folders. Workflows and templates in the tree are unfiled, not deleted.
      tags:
      - Folders
      parameters:
      - in: path
        name: id
        schema:
          type: string
          description: Folder id (`fldr_…`).
        required: true
        description: Folder id (`fldr_…`).
      responses:
        '200':
          description: Folder deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteFolderResponse'
        '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'
        '503':
          description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
          headers:
            Retry-After:
              description: Seconds until the next request may succeed
              schema:
                type: string
          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
        conflictingWorkflowId:
          description: Present on 409 workflow_name_conflict responses. Id of the workflow that already owns the requested name.
          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
    ListFoldersResponse:
      type: array
      items:
        $ref: '#/components/schemas/Folder'
    UpdateFolderRequest:
      type: object
      properties:
        name:
          description: New folder name. Cannot contain `/`.
          type: string
          minLength: 1
          maxLength: 255
        parentId:
          description: New parent folder id. `null` moves the folder to the tree root.
          anyOf:
          - type: string
          - type: 'null'
    FolderType:
      type: string
      enum:
      - workflow
      - template
    Folder:
      type: object
      properties:
        id:
          type: string
        parentId:
          anyOf:
          - type: string
          - type: 'null'
        type:
          $ref: '#/components/schemas/FolderType'
        name:
          type: string
        createdAt:
          anyOf:
          - type: string
          - type: string
        childCount:
          description: Direct subfolder count. Present on tree listings.
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        workflowCount:
          description: Workflows filed directly in this folder. Present on workflow-tree listings.
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        previewItems:
          description: Up to a handful of item names — subfolders first, then workflows — for a peek at folder contents. Present on workflow-tree listings.
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              kind:
                type: string
                enum:
                - folder
                - workflow
            required:
            - name
            - kind
            additionalProperties: false
      required:
      - id
      - parentId
      - type
      - name
      - createdAt
      additionalProperties: false
    CreateFolderRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          description: Folder name. Cannot contain `/`.
        type:
          description: Which folder tree to create in. Required; there is no default.
          $ref: '#/components/schemas/FolderType'
        parentId:
          description: Parent folder id. Omit or `null` to create at the tree root.
          anyOf:
          - type: string
          - type: 'null'
      required:
      - name
      - type
    DeleteFolderResponse:
      type: object
      properties:
        deleted:
          type: boolean
          const: true
        id:
          type: string
      required:
      - deleted
      - id
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key issued from Settings → API Keys. Pass as `Authorization: Bearer <key>`.'
x-provenance:
  method: harvested
  publisher: Eigenpal
  source: https://docs.eigenpal.com/api-reference/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)