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.

Knock Bulk Operations API is one of 14 APIs that Knock publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Bulk, Operations, and Async. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

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