openapi: 3.2.0 info: title: Hookbase Deliveries API version: 1.0.0 description: Official OpenAPI 3.0 specification for the Hookbase webhook relay platform. Generated from the maintained Postman collection. Authenticate with an API key (whr_ prefix) as a Bearer token. contact: name: Hookbase url: https://www.hookbase.app servers: - url: https://api.hookbase.app description: Production security: - bearerAuth: [] tags: - name: Deliveries paths: /api/deliveries: get: tags: - Deliveries summary: List deliveries operationId: deliveries_list_deliveries parameters: - name: limit in: query required: false schema: type: string example: '10' responses: '200': description: Successful response description: List delivery attempts (filterable by status, route, destination; paginated). /api/deliveries/{deliveryId}: get: tags: - Deliveries summary: Get delivery by id operationId: deliveries_get_delivery_by_id parameters: - name: deliveryId in: path required: true schema: type: string responses: '200': description: Successful response description: Fetch a single delivery including request/response detail. /api/deliveries/{deliveryId}/replay: post: tags: - Deliveries summary: Replay delivery operationId: deliveries_replay_delivery parameters: - name: deliveryId in: path required: true schema: type: string responses: '200': description: Successful response description: Re-attempt a delivery, optionally overriding destination, transform, or headers. requestBody: required: false content: application/json: schema: type: object properties: destinationOverride: type: string description: Optional. Send the replay(s) to a different destination id instead of the original. transformOverride: type: object description: 'Optional. One-off transform applied to this replay only. { code (<=64KB), type?: jsonata|xslt|liquid|javascript, inputFormat?, outputFormat? }.' headersOverride: type: object description: Optional. Extra request headers for the replay (max 50). persistTransform: type: boolean description: Optional. Persist transformOverride onto the route (requires transformOverride). example: destinationOverride: '{{destinationId}}' transformOverride: code: $ type: jsonata inputFormat: json outputFormat: json headersOverride: X-Replay: 'true' persistTransform: false /api/deliveries/{deliveryId}/analyze: post: tags: - Deliveries summary: Analyze delivery operationId: deliveries_analyze_delivery parameters: - name: deliveryId in: path required: true schema: type: string responses: '200': description: Successful response description: Run AI root-cause analysis on a failed delivery (result cached unless forced). requestBody: required: false content: application/json: schema: type: object properties: force: type: boolean description: Optional. Re-run analysis even if a cached result exists. example: force: false /api/deliveries/bulk-replay: post: tags: - Deliveries summary: Bulk replay deliveries operationId: deliveries_bulk_replay_deliveries responses: '200': description: Successful response description: Replay many deliveries by id in one call. requestBody: required: true content: application/json: schema: type: object properties: deliveryIds: type: array items: type: string description: Required. Delivery ids to replay. required: - deliveryIds example: deliveryIds: - '{{deliveryId}}' /api/deliveries/bulk-replay-events: post: tags: - Deliveries summary: Bulk replay events operationId: deliveries_bulk_replay_events responses: '200': description: Successful response description: Replay all deliveries for a set of events (by id, or by since/until window), with optional overrides. Provide eventIds OR since+until. requestBody: required: false content: application/json: schema: type: object properties: eventIds: type: array items: type: string description: Optional. Event ids to replay (provide this OR since+until). since: type: string description: Optional. Window start (ISO 8601); pair with until. until: type: string description: Optional. Window end (ISO 8601); pair with since. destinationOverride: type: string description: Optional. Send the replay(s) to a different destination id instead of the original. transformOverride: type: object description: 'Optional. One-off transform applied to this replay only. { code (<=64KB), type?: jsonata|xslt|liquid|javascript, inputFormat?, outputFormat? }.' headersOverride: type: object description: Optional. Extra request headers for the replay (max 50). persistTransform: type: boolean description: Optional. Persist transformOverride onto the route (requires transformOverride). example: eventIds: - '{{eventId}}' since: '2024-01-15T00:00:00Z' until: '2024-01-16T00:00:00Z' destinationOverride: '{{destinationId}}' transformOverride: code: $ type: jsonata inputFormat: json outputFormat: json headersOverride: X-Replay: 'true' persistTransform: false components: securitySchemes: bearerAuth: type: http scheme: bearer description: Hookbase API key with the whr_ prefix.