Clarifeye Pipeline Runs API

Inspect pipeline runs queued by extraction flows or other pipeline triggers — list runs and fetch the details/status of a single run

OpenAPI Specification

clarifeye-pipeline-runs-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Clarifeye Platform Agent Settings Pipeline Runs API
  description: 'REST API for the Clarifeye Platform - Document intelligence and AI-powered analysis.


    ## Authentication

    All endpoints require authentication. Include the Authorization header in every request using either format:

    - `Authorization: Token <token_key>`

    - `Authorization: Bearer <token_key>`


    ## Impersonation


    Certain endpoints support user impersonation for creating or listing data on behalf of other users.

    This is useful for integrating external systems that need to attribute actions to specific users.


    **Header:** `X-Impersonate-Email`


    **Required Permission:** `CAN_IMPERSONATE_OTHER_USERS` (contact Clarifeye to enable this permission)


    **Behavior:**

    - If the header is provided and the impersonator has the required permission, the action is performed as the target user

    - If the target user is not found, the request proceeds as the original authenticated user

    - If the target user does not have access to the project, the request proceeds as the original authenticated user

    - If the impersonator lacks the `CAN_IMPERSONATE_OTHER_USERS` permission, the header is ignored

    '
  version: 1.0.0
  contact:
    name: Clarifeye Support
servers:
- url: https://eu.app.clarifeye.ai/api/v1
  description: EU
- url: https://us.app.clarifeye.ai/api/v1
  description: US
security:
- BearerAuth: []
- TokenAuth: []
tags:
- name: Pipeline Runs
  description: Inspect pipeline runs queued by extraction flows or other pipeline triggers — list runs and fetch the details/status of a single run
paths:
  /projects/{project_id}/pipeline-runs/:
    get:
      tags:
      - Pipeline Runs
      summary: List pipeline runs
      description: 'List all pipeline runs in the project, ordered by creation date (most

        recent first). Use this to discover the `id` of a run returned by an

        extraction flow `run-sync` / `publish` call, or to monitor recent

        activity.


        The list response uses a lightweight serializer that omits the very

        large `chunk_ids` / `document_ids` arrays and truncates `raw_logs` to

        the most recent entries. Fetch a single run via the detail endpoint

        to get the full payload.

        '
      operationId: listPipelineRuns
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: status
        in: query
        description: Filter pipeline runs by status (e.g. `pending`, `running`, `completed`, `failed`).
        schema:
          $ref: '#/components/schemas/PipelineRunStatus'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaginatedResponse'
                - type: object
                  properties:
                    results:
                      type: array
                      items:
                        $ref: '#/components/schemas/PipelineRunListItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{project_id}/pipeline-runs/{pipeline_run_id}/:
    get:
      tags:
      - Pipeline Runs
      summary: Get pipeline run details and status
      description: 'Retrieve the full details of a single pipeline run, including its

        current `status`, the list of executed steps with their per-step

        status, and the aggregated `raw_logs` produced during execution.


        Poll this endpoint to track the progress of a run started via an

        extraction flow `run-sync` or `publish` call. A run is in a terminal

        state when `status` is one of `completed`, `completed_with_warnings`,

        `failed`, or `aborted`.

        '
      operationId: getPipelineRun
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/PipelineRunId'
      responses:
        '200':
          description: Pipeline run details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PipelineRun'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{project_id}/pipeline-runs/{pipeline_run_id}/abort/:
    post:
      tags:
      - Pipeline Runs
      summary: Abort a pipeline run
      description: 'Cancel a pipeline run that is `pending` or `running`. The run and any

        of its non-terminal steps transition to `aborted`.


        Aborting an already-terminal run (`completed`, `completed_with_warnings`,

        `failed`, or `aborted`) is a no-op.

        '
      operationId: abortPipelineRun
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/PipelineRunId'
      responses:
        '200':
          description: Abort accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: aborted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    PipelineRun:
      type: object
      description: Full pipeline run payload returned by the detail endpoint.
      properties:
        id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        status:
          $ref: '#/components/schemas/PipelineRunStatus'
        project:
          type: string
          format: uuid
        pipeline_name:
          type: string
        mode:
          type: string
          description: Run mode (e.g. `recreate-all`, `recreate-single`, `upsert-single`, `upsert-all`).
        celery_task_id:
          type: string
        user:
          type: string
          format: uuid
          nullable: true
          description: ID of the user who triggered the run.
        tables:
          type: object
          nullable: true
          description: Map of table name → table version UUID for the run.
        steps:
          type: array
          items:
            $ref: '#/components/schemas/PipelineRunStep'
        document_ids:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
          description: UUIDs of documents this run targets.
        chunk_ids:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
          description: UUIDs of chunks this run targets.
        raw_logs:
          type: string
          description: Concatenated logs produced during execution.
    PipelineRunStatus:
      type: string
      description: 'Lifecycle status of a pipeline run or step:

        - `pending` — queued, not yet started

        - `running` — currently executing

        - `completed` — finished successfully

        - `completed_with_warnings` — finished, but some steps emitted warnings

        - `failed` — terminated with an error

        - `aborted` — cancelled via the `abort` action

        '
      enum:
      - pending
      - running
      - completed
      - completed_with_warnings
      - failed
      - aborted
    PipelineRunListItem:
      type: object
      description: 'Lightweight pipeline run representation returned by the list endpoint.

        Excludes the large `chunk_ids` / `document_ids` arrays and truncates

        `raw_logs` to the most recent entries. Use the detail endpoint to get

        the full payload.

        '
      properties:
        id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        status:
          $ref: '#/components/schemas/PipelineRunStatus'
        project:
          type: string
          format: uuid
        pipeline_name:
          type: string
        mode:
          type: string
          description: Run mode (e.g. `recreate-all`, `recreate-single`, `upsert-single`, `upsert-all`).
        celery_task_id:
          type: string
        user:
          type: string
          format: uuid
          nullable: true
          description: ID of the user who triggered the run.
        tables:
          type: object
          nullable: true
          description: Map of table name → table version UUID for the run.
        steps:
          type: array
          items:
            $ref: '#/components/schemas/PipelineRunStep'
        document_count:
          type: integer
          description: Number of documents this run targets.
        chunk_count:
          type: integer
          description: Number of chunks this run targets.
        raw_logs:
          type: string
          description: Truncated tail of run logs (most recent entries only).
    PipelineRunStep:
      type: object
      description: One step within a pipeline run's DAG.
      properties:
        id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        step:
          type: string
          description: The pipeline step type (parsing, chunking, tag-extraction, etc.).
        name:
          type: string
          nullable: true
          description: Human-readable name of the step within the DAG.
        status:
          $ref: '#/components/schemas/PipelineRunStatus'
        inputs:
          type: object
          description: Map of input table name → resolved table version UUID.
          additionalProperties:
            type: string
            format: uuid
            nullable: true
        outputs:
          type: object
          description: Map of output table name → resolved table version UUID.
          additionalProperties:
            type: string
            format: uuid
            nullable: true
        warnings:
          nullable: true
          description: Warnings emitted by the step, when any.
        depends_on:
          type: array
          items:
            type: string
          description: Names of the steps this step depends on.
        params:
          type: object
          description: Step-specific parameters used at execution time.
        tag_extractor_id:
          type: string
          format: uuid
          nullable: true
        object_extractor_id:
          type: string
          format: uuid
          nullable: true
        chunks_extractor_id:
          type: string
          format: uuid
          nullable: true
    PaginatedResponse:
      type: object
      properties:
        count:
          type: integer
          description: Total number of results
        next:
          type: string
          format: uri
          nullable: true
          description: URL to next page of results
        previous:
          type: string
          format: uri
          nullable: true
          description: URL to previous page of results
        results:
          type: array
          items: {}
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
      example:
        error: User not found
  parameters:
    Limit:
      name: limit
      in: query
      description: Maximum number of results per page
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 1000
    PipelineRunId:
      name: pipeline_run_id
      in: path
      required: true
      description: UUID of the pipeline run
      schema:
        type: string
        format: uuid
    Offset:
      name: offset
      in: query
      description: Number of results to skip for pagination
      schema:
        type: integer
        default: 0
        minimum: 0
    ProjectId:
      name: project_id
      in: path
      required: true
      description: UUID of the project
      schema:
        type: string
        format: uuid
  responses:
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: You do not have permission to perform this action.
    Unauthorized:
      description: Unauthorized - missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Authentication credentials were not provided.
    NotFound:
      description: Not found - resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Not found.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Use Authorization: Bearer <token>'
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use Authorization: Token <token>'