> ## Documentation Index
> Fetch the complete documentation index at: https://docs.octavehq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Control Custom Extractor Backfill

> Pause, resume, or cancel a durable custom-extractor backfill job. Resume continues from the persisted cursor; it does not restart completed events. Requires the custom-extractors entitlement.



## OpenAPI

````yaml post /api/v2/custom-extractor/backfill/control
openapi: 3.0.0
info:
  version: 5.4.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/custom-extractor/backfill/control:
    post:
      tags:
        - Custom Extractors
      summary: Control Custom Extractor Backfill
      description: >-
        Pause, resume, or cancel a durable custom-extractor backfill job. Resume
        continues from the persisted cursor; it does not restart completed
        events. Requires the custom-extractors entitlement.
      operationId: controlBackfill
      requestBody:
        description: Job oId plus the lifecycle action to apply
        content:
          application/json:
            schema:
              type: object
              properties:
                oId:
                  type: string
                  minLength: 1
                  description: Custom-extractor backfill job oId
                  example: cebj_1234567890
                action:
                  type: string
                  enum:
                    - PAUSE
                    - RESUME
                    - CANCEL
                  description: Lifecycle transition to apply to the durable job
              required:
                - oId
                - action
      responses:
        '200':
          description: The job after the lifecycle transition
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    $ref: '#/components/schemas/CustomExtractorBackfillJob'
                required:
                  - _metadata
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
      deprecated: false
components:
  schemas:
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          example: 0
          description: API usage
        requestId:
          type: string
          example: requestId
          description: Request ID
        message:
          type: string
          example: message
          description: Message
        timestamp:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          description: Timestamp
      required:
        - requestId
        - timestamp
    CustomExtractorBackfillJob:
      type: object
      nullable: true
      properties:
        oId:
          type: string
        status:
          type: string
          enum:
            - PENDING
            - RUNNING
            - PAUSED
            - COMPLETED
            - FAILED
            - CANCELLED
        customExtractorOId:
          type: string
        customExtractorName:
          type: string
          nullable: true
        promptVersionAtStart:
          type: integer
          minimum: 0
        requestFingerprint:
          type: string
        idempotencyKey:
          type: string
          nullable: true
        windowStart:
          type: string
          nullable: true
          format: date-time
        windowEnd:
          type: string
          nullable: true
          format: date-time
        progress:
          type: object
          nullable: true
          properties:
            processedEvents:
              type: number
            skippedEvents:
              type: number
            findingsCreated:
              type: number
            failedEvents:
              type: number
            suppressedEvents:
              type: number
            creditsSpent:
              type: number
          required:
            - processedEvents
            - findingsCreated
            - failedEvents
            - creditsSpent
        errorMessage:
          type: string
          nullable: true
        circuitBreakerReason:
          type: string
          nullable: true
        billingMode:
          type: string
          enum:
            - CHARGE
            - ADMIN_BYPASS
        billingSurface:
          type: string
          enum:
            - IN_APP
            - MCP
            - PUBLIC_API
            - SYSTEM
        billingBypassReason:
          type: string
          nullable: true
        createdAt:
          type: string
          nullable: true
          format: date-time
        startedAt:
          type: string
          nullable: true
          format: date-time
        completedAt:
          type: string
          nullable: true
          format: date-time
        pausedAt:
          type: string
          nullable: true
          format: date-time
      required:
        - oId
        - status
        - customExtractorOId
        - promptVersionAtStart
        - requestFingerprint
        - billingMode
        - billingSurface
        - createdAt
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````