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

# List redaction jobs

> Return a paginated list of redaction jobs, with optional filtering and ordering.



## OpenAPI

````yaml /api-reference/files/openapi.yaml get /v1/redactions
openapi: 3.0.0
info:
  title: Files & Requests API
  version: 1.2.0
  description: >
    Manage evidence and claims requests, attach exhibits, fill state-specific
    templates, generate PDF files, run PDF redaction jobs, and store and
    retrieve a matter's files and media.
  contact:
    name: Slate API Support
    email: api-support@slate.inc
    url: https://slate.inc
servers:
  - url: https://api.slate.inc/files
    description: Production
  - url: https://api.uat.slate.inc/files
    description: UAT (staging)
security:
  - bearerAuth: []
tags:
  - name: Requests
    description: Create, read, update, and generate evidence and claims requests
  - name: Exhibits
    description: Upload, download, and delete exhibits
  - name: Files
    description: Files and media associated with a matter
  - name: Redactions
    description: Asynchronous PDF redaction jobs
  - name: Bulk Downloads
    description: Asynchronous bulk download jobs
paths:
  /v1/redactions:
    get:
      tags:
        - Redactions
      summary: List redaction jobs
      description: >-
        Return a paginated list of redaction jobs, with optional filtering and
        ordering.
      operationId: listRedactions
      parameters:
        - $ref: '#/components/parameters/optionalOwner'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/orderDirection'
        - in: query
          name: orderBy
          description: The column to order the results by, defaults to `id`
          schema:
            type: string
            default: id
            enum:
              - id
              - createdOn
              - completedOn
              - status
        - in: query
          name: filter
          description: One or more columns and their values on which to filter results
          style: deepObject
          schema:
            type: object
            properties:
              matterId:
                type: string
                description: >
                  Matter identifier. Filters redactions to a single matter; rows
                  you cannot see are excluded automatically.
              status:
                type: string
                description: >
                  Either a single redaction status value (pending, processing,
                  completed, failed) or the virtual value `in_progress`, which
                  matches jobs that are either pending or processing.
                enum:
                  - pending
                  - processing
                  - completed
                  - failed
                  - in_progress
              fileId:
                type: string
              createdBy:
                type: string
                description: |
                  Filter to redactions created by a specific user identifier.
              createdOnFrom:
                type: string
                format: date
                description: >-
                  Filter to redactions created on or after this date
                  (inclusive).
              createdOnTo:
                type: string
                format: date
                description: >-
                  Filter to redactions created on or before this date (inclusive
                  end-of-day).
      responses:
        '200':
          description: Paginated list of redaction jobs
          content:
            application/json:
              schema:
                type: object
                properties:
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                  redactions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Redaction'
        '400':
          description: Invalid redaction parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized or invalid permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    optionalOwner:
      in: query
      name: owner
      required: false
      schema:
        type: string
      description: Tenant owner for machine-to-machine requests
    limit:
      in: query
      name: limit
      required: false
      schema:
        type: integer
        default: 100
        minimum: 1
      description: Number of items per page
    cursor:
      in: query
      name: cursor
      required: false
      schema:
        type: string
      description: Cursor for pagination
    orderDirection:
      in: query
      name: orderDirection
      schema:
        type: string
        enum:
          - asc
          - desc
        default: asc
  schemas:
    Pagination:
      type: object
      properties:
        totalCount:
          type: integer
        countExceedsLimit:
          type: boolean
        previousCursor:
          type: string
        nextCursor:
          type: string
    Redaction:
      type: object
      required:
        - id
        - owner
        - matterId
        - fileId
        - status
        - createdOn
        - createdBy
      properties:
        id:
          type: string
          format: uuid
        owner:
          type: string
          description: Creditor that owns this redaction job
        matterId:
          type: string
          format: uuid
          description: Matter identifier.
        fileId:
          type: string
          format: uuid
          description: Source file UUID
        status:
          $ref: '#/components/schemas/RedactionStatus'
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RedactionRule'
        labeling:
          $ref: '#/components/schemas/RedactionLabeling'
        createdOn:
          type: string
          format: date-time
        createdBy:
          type: string
        completedOn:
          type: string
          format: date-time
          nullable: true
        redactionDuration:
          type: string
          nullable: true
          description: >
            Total redaction processing time, formatted as a Go duration string
            (e.g. `350ms`, `5s`, `1h30s`). Populated once the job is completed.
        errorMessage:
          type: string
          nullable: true
          description: >
            Failure reason when `status=failed`. Populated when processing
            fails; null in every other status.
        crid:
          type: string
          nullable: true
          description: >
            Creditor reference ID (file number) of the source file; null if the
            source file was deleted. Read-only; list responses only.
        fileName:
          type: string
          nullable: true
          description: Source file's filename. Read-only; list responses only.
        fileDescription:
          type: string
          nullable: true
          description: >
            Source file's description (e.g. "Affidavit of Indebtedness").
            Read-only; list responses only.
        summary:
          $ref: '#/components/schemas/RedactionRunSummary'
          nullable: true
          description: >-
            Per-rule redaction counts and OCR signals. Null until the job
            completes.
    Error:
      type: object
      required:
        - message
        - reason
      properties:
        message:
          type: string
          description: A human readable error message
        reason:
          $ref: '#/components/schemas/ErrorReason'
    RedactionStatus:
      type: string
      description: Current status of an asynchronous redaction job
      enum:
        - pending
        - processing
        - completed
        - failed
    RedactionRule:
      type: object
      required:
        - match
        - transform
      properties:
        match:
          $ref: '#/components/schemas/Match'
        transform:
          $ref: '#/components/schemas/Transform'
    RedactionLabeling:
      type: object
      required:
        - mode
        - ranges
      description: |
        Exhibit labeling configuration for a redaction job. `mode` is the
        labeling style applied across every range; per-range mode is not
        supported. When `mode` is `none`, `ranges` must be empty.
        Otherwise `ranges` must contain at least one non-overlapping range.
      properties:
        mode:
          $ref: '#/components/schemas/LabelingMode'
        ranges:
          type: array
          items:
            $ref: '#/components/schemas/RedactionLabelRange'
    RedactionRunSummary:
      type: object
      description: Per-rule redaction counts and run signals.
      properties:
        ocrUsed:
          type: boolean
          description: Whether OCR ran over at least one page.
        rules:
          type: array
          description: Per-rule counts, positionally aligned to the job's rules.
          items:
            $ref: '#/components/schemas/RedactionRuleSummary'
    ErrorReason:
      type: string
      enum:
        - MISSING_TOKEN_OR_PERMISSIONS
        - NO_MATCHING_TRIGGER
        - OWNER_REQUIRED
        - FILE_REQUEST_NOT_PENDING
        - DUPLICATE_FILE_REQUEST
        - TEMPLATE_TYPE_REQUIRED
        - TEMPLATE_INDEX_REQUIRED
        - INVALID_MATTER_ID
        - MATTER_ID_REQUIRED
        - MATTER_NOT_FOUND
        - FILES_LIST_EMPTY
        - TOO_MANY_FILES
        - FILE_NAME_REQUIRED
        - FILE_NAME_MUST_BE_PDF
        - INVALID_FILE_TYPE
        - INVALID_TEMPLATE_IDENTIFIER
        - GENERATION_FAILED
        - EXHIBIT_ORDER_REQUIRED
        - CRID_REQUIRED
        - INVALID_FILE_NAME
        - ARTIFACT_TAG_NOT_FOUND
        - INVALID_LIMIT
        - INVALID_CURSOR
        - INVALID_ORDER_BY
        - MISSING_FILTER_DEPENDENCY
        - INVALID_FILTER
        - REQUEST_BODY_REQUIRED
        - INVALID_LABEL_RANGE
        - INVALID_REDACTION_RULE
        - REDACTION_NOT_FOUND
        - REDACTION_NOT_READY
        - FILE_UPLOAD_PENDING
        - BULK_DOWNLOAD_NOT_FOUND
        - BULK_DOWNLOAD_NOT_READY
    Match:
      description: |
        What a redaction rule matches against. Discriminated by `type`.
        Only `literal` is supported today; detector and regex variants will
        be added in later revisions as additional `oneOf` members.
      oneOf:
        - $ref: '#/components/schemas/LiteralMatch'
      discriminator:
        propertyName: type
        mapping:
          literal:
            $ref: '#/components/schemas/LiteralMatch'
    Transform:
      description: |
        How a matched span is transformed. Discriminated by `type`.
        Only `mask` (with an optional keep window) is supported today;
        future transforms (replace, redact, hash, shift, …) will be added as
        additional `oneOf` members.
      oneOf:
        - $ref: '#/components/schemas/MaskTransform'
      discriminator:
        propertyName: type
        mapping:
          mask:
            $ref: '#/components/schemas/MaskTransform'
    LabelingMode:
      type: string
      enum:
        - numbers
        - letters
        - pageNumbers
        - none
    RedactionLabelRange:
      type: object
      required:
        - startPage
        - endPage
      properties:
        startPage:
          type: integer
          minimum: 1
          description: First page in the range (1-indexed, inclusive)
        endPage:
          type: integer
          minimum: 1
          description: Last page in the range (1-indexed, inclusive)
    RedactionRuleSummary:
      type: object
      properties:
        textCount:
          type: integer
          description: Occurrences redacted on the text layer.
        ocrCount:
          type: integer
          description: Occurrences redacted via OCR.
        redactions:
          type: array
          description: >
            Geometry of the OCR-located redactions for this rule (one entry per
            recognized word). Empty for a text-only rule: text-layer matches are
            count-only. `ocrCount` counts occurrences while this lists boxes, so
            a multi-word match adds one to `ocrCount` but several entries here.
          items:
            $ref: '#/components/schemas/RedactionBox'
    LiteralMatch:
      type: object
      required:
        - type
        - value
      description: Matches an exact literal string in the document text.
      properties:
        type:
          type: string
          enum:
            - literal
        value:
          type: string
          minLength: 1
          maxLength: 256
    MaskTransform:
      type: object
      required:
        - type
      description: |
        Masks the matched span with asterisks, optionally leaving a
        window of characters visible. Omit `keep` to mask everything.
      properties:
        type:
          type: string
          enum:
            - mask
        keep:
          $ref: '#/components/schemas/RedactionKeep'
    RedactionBox:
      type: object
      description: >
        One OCR-located redaction's geometry. Coordinates are in PDF user space
        (points, bottom-left origin) — the space the box is drawn in.
      properties:
        page:
          type: integer
          description: 1-based page number.
        x:
          type: number
          format: float
          description: Lower-left x, in points.
        'y':
          type: number
          format: float
          description: Lower-left y, in points (bottom-left origin).
        w:
          type: number
          format: float
          description: Width, in points.
        h:
          type: number
          format: float
          description: Height, in points.
        confidence:
          type: number
          format: double
          description: OCR engine confidence for the recognized word, 0–100.
        source:
          type: string
          enum:
            - ocr
          description: How the redaction was located. Always `ocr` in v1.
    RedactionKeep:
      type: object
      required:
        - from
        - length
      description: |
        Window of maskable characters to leave untouched when applying a
        mask transform. Indexed over the maskable-char sequence
        (alphanumerics only; spaces and hyphens are skipped). Negative
        `from` counts back from the end of the maskable-char sequence.
          { from: 0,  length: 4 }   keep first 4
          { from: -4, length: 4 }   keep last 4
          { from: -8, length: 4 }   keep middle (e.g. PLL loan account)
      properties:
        from:
          type: integer
          minimum: -64
          maximum: 64
        length:
          type: integer
          minimum: 0
          maximum: 64
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Cognito-issued JWT access token. Send it as `Authorization: Bearer
        <token>`.

````