Knock Bulk Operations API

Track and inspect long-running bulk operations. Many Knock endpoints (bulk identify users, bulk delete, bulk channel-status updates) return a bulk-operation handle; this surface exposes its lifecycle.

OpenAPI Specification

knock-bulk-operations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Knock Bulk Operations API
  version: '1.0'
  description: Track and inspect long-running bulk operations. Many Knock endpoints (bulk identify users, bulk delete, bulk
    channel-status updates) return a bulk-operation handle; this surface exposes its lifecycle.
  contact:
    name: Knock
    url: https://knock.app
  license:
    name: Proprietary
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
paths:
  /v1/bulk_operations/{id}:
    get:
      callbacks: {}
      description: Retrieves a bulk operation (if it exists) and displays the current state of it.
      operationId: getBulkOperation
      parameters:
      - description: The ID of the bulk operation to retrieve.
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkOperation'
          description: OK
      summary: Get bulk operation
      tags:
      - Bulk operations
      x-ratelimit-tier: 4
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Knock API key as a Bearer token. Use a public key (pk_...) for client-side requests or a secret key (sk_...)
        for server-side.
  schemas:
    BulkOperation:
      description: A bulk operation entity.
      example:
        __typename: BulkOperation
        completed_at: null
        error_count: 0
        error_items: []
        estimated_total_rows: 1000
        failed_at: null
        id: 123e4567-e89b-12d3-a456-426614174000
        inserted_at: '2024-05-22T12:00:00Z'
        name: Bulk operation name
        processed_rows: 0
        progress_path: https://api.switchboard.com/v1/bulk_operations/123e4567-e89b-12d3-a456-426614174000
        started_at: null
        status: processing
        success_count: 0
        updated_at: '2024-05-22T12:00:00Z'
      properties:
        __typename:
          description: The typename of the schema.
          example: BulkOperation
          type: string
          x-struct: null
          x-validate: null
        completed_at:
          description: Timestamp when the bulk operation was completed.
          format: date-time
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        error_count:
          description: The number of failed operations.
          example: 0
          type: integer
          x-struct: null
          x-validate: null
        error_items:
          description: A list of items that failed to be processed.
          items:
            properties:
              collection:
                description: The collection this object belongs to.
                nullable: true
                type: string
                x-struct: null
                x-validate: null
              id:
                description: Unique identifier for the object.
                type: string
                x-struct: null
                x-validate: null
            required:
            - id
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
        estimated_total_rows:
          description: The estimated total number of rows to process.
          example: 1000
          type: integer
          x-struct: null
          x-validate: null
        failed_at:
          description: Timestamp when the bulk operation failed.
          format: date-time
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        id:
          description: Unique identifier for the bulk operation.
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        inserted_at:
          description: Timestamp when the resource was created.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
        name:
          description: The name of the bulk operation.
          example: Bulk operation name
          type: string
          x-struct: null
          x-validate: null
        processed_rows:
          description: The number of rows processed so far.
          example: 0
          type: integer
          x-struct: null
          x-validate: null
        progress_path:
          description: The URI to the bulk operation's progress.
          format: uri
          type: string
          x-struct: null
          x-validate: null
        started_at:
          description: Timestamp when the bulk operation was started.
          format: date-time
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        status:
          description: The status of the bulk operation.
          enum:
          - queued
          - processing
          - completed
          - failed
          example: queued
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        success_count:
          description: The number of successful operations.
          example: 0
          type: integer
          x-struct: null
          x-validate: null
        updated_at:
          description: The timestamp when the resource was last updated.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
      required:
      - __typename
      - id
      - name
      - status
      - estimated_total_rows
      - processed_rows
      - success_count
      - updated_at
      - inserted_at
      title: BulkOperation
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.BulkOperation
      x-validate: null