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

# Redeliver a webhook event

> Sends the event again to an endpoint it was already sent to, with a fresh set of
retries, whatever its delivery's status.




## OpenAPI

````yaml /openapi.yaml post /webhook_events/{id}/redeliver
openapi: 3.1.0
info:
  title: MeetingKit API
  description: >
    The MeetingKit API lets you build a meetings feature into your product:
    users connect

    a calendar, a notetaker joins their calls, and you get the transcript,
    speakers and

    summary of each meeting.
  version: '2026-10-12'
  contact:
    name: MeetingKit Developer Support
    email: dev@happyscribe.co
servers:
  - url: https://api.meetingkit.com/api/v1
security:
  - apiKeyAuth: []
tags:
  - name: Agent sessions
    description: Exchange the code a user hands their AI agent for API credentials.
  - name: Uploads
    description: Get signed URLs to upload media files directly to MeetingKit storage.
  - name: Transcribe
    description: Create transcription orders from media URLs.
  - name: Subtitle
    description: Create subtitling orders from media URLs.
  - name: Translate
    description: Create translation orders from existing conversations.
  - name: Orders
    description: Retrieve and confirm the orders created by the service endpoints.
  - name: Conversations
    description: List, retrieve, update, and delete conversations.
  - name: Exports
    description: Export conversations to text, subtitle, video-editing, and data formats.
  - name: Bots
    description: Send a notetaker bot to Zoom, Google Meet, or Microsoft Teams calls.
  - name: Glossaries
    description: List glossaries to apply custom terminology to orders.
  - name: Style guides
    description: List style guides to apply formatting preferences to orders.
  - name: Workspaces
    description: List the workspaces the authenticated user belongs to.
  - name: Organization memberships
    description: Manage which users belong to a workspace.
  - name: Members
    description: A partner's end users inside a workspace (MeetingKit).
  - name: Meetings
    description: >-
      Every meeting of a workspace, from calendars and bots, with its results
      (MeetingKit).
  - name: Calendar connections
    description: >-
      Members' Google and Microsoft calendars, connected through a hosted
      consent link and synced by MeetingKit.
  - name: Calendar events
    description: Calendar events a partner pushes from its own calendar sync (MeetingKit).
  - name: Settings
    description: >-
      What gets recorded and how, as values you assign to a workspace, a member,
      a meeting category or one meeting (MeetingKit).
  - name: Settings assignments
    description: Where settings apply (MeetingKit).
  - name: Files
    description: Images uploaded to a workspace, to use in a brand kit (MeetingKit).
  - name: Webhook endpoints
    description: Register the receivers of a workspace's webhooks, and test them.
  - name: Webhook events
    description: >-
      The webhooks sent to a workspace's endpoints, how each delivery went, and
      redelivery.
  - name: People
    description: >-
      Language Services. People found in your transcripts (Memory API, private
      beta).
  - name: Companies
    description: >-
      Language Services. Companies found in your transcripts (Memory API,
      private beta).
paths:
  /webhook_events/{id}/redeliver:
    parameters:
      - $ref: '#/components/parameters/WebhookEventId'
    post:
      tags:
        - Webhook events
      summary: Redeliver a webhook event
      description: >
        Sends the event again to an endpoint it was already sent to, with a
        fresh set of

        retries, whatever its delivery's status.
      operationId: redeliverWebhookEvent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - endpoint_id
              properties:
                endpoint_id:
                  type: string
                  description: The endpoint to send it to.
                  example: whe_01k6d4a1b2c3d4e5f6g7h8j9km
      responses:
        '202':
          description: Queued. The event, with that delivery back to `pending`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEvent'
        '400':
          description: '`endpoint_id` is missing.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: >-
            The event is not one the key can see, or was never sent to that
            endpoint (`not_delivered`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '409':
          description: >-
            The event is being sent to that endpoint right now
            (`delivery_busy`). Retry after `Retry-After` seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '422':
          description: >-
            The endpoint is disabled (`endpoint_disabled`) or no longer receives
            this event (`unsupported_event`); nothing is sent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
components:
  parameters:
    WebhookEventId:
      name: id
      in: path
      required: true
      description: >-
        Event ID, beginning with `evt_`: the `id` of the payload your receiver
        got.
      schema:
        type: string
        example: evt_01k0h4x0n7r2c5m8q9v3b6d1ef
  schemas:
    WebhookEvent:
      type: object
      properties:
        id:
          type: string
          description: The event's ID, the same `id` your receiver got in the payload.
          example: evt_01k0h4x0n7r2c5m8q9v3b6d1ef
        object:
          type: string
          description: Always `webhook_event`.
        type:
          type: string
          description: The event type, as this request's API version names it.
          example: meeting.finished
        workspace_id:
          type: string
          description: Workspace ID, beginning with `wks_`.
          example: wks_01k6a2r9s8x7c2dvq3m5n6p4ab
        test:
          type: boolean
          description: A sample sent with `POST /webhook_endpoints/{id}/test`.
        created_at:
          description: |
            When the event happened, in ISO 8601.
          type: string
          format: date-time
        data:
          type:
            - object
            - 'null'
          description: >-
            Not in lists: the payload's `data`, as this request's API version
            shapes it. `null` if it can't be shaped at that version.
          properties:
            object:
              type: object
              description: >-
                The resource the event is about, as its webhook reference page
                describes it.
        deliveries:
          type: array
          description: One per endpoint it was sent to.
          items:
            $ref: '#/components/schemas/WebhookDelivery'
    Errors:
      type: object
      required:
        - errors
      description: >
        Every error the API returns, `401` and `429` included. See
        [Errors](/api-reference/errors).
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        retry_in_seconds:
          type: integer
          description: >-
            On `429`, how long to wait before retrying. Also sent as
            `Retry-After`.
      example:
        errors:
          - code: invalid
            field: recording.methods.bot.mode
            message: 'must be one of: audio_and_video, audio_only, inherit'
    WebhookDelivery:
      type: object
      properties:
        endpoint_id:
          description: |
            The endpoint it was sent to.
          type: string
          example: whe_01k6d4a1b2c3d4e5f6g7h8j9km
        status:
          type: string
          enum:
            - pending
            - succeeded
            - failed
            - cancelled
          description: >-
            `pending` until its first answer, `succeeded` once your receiver
            returned `2xx`, `failed` when its last attempt failed (it is retried
            with backoff until it succeeds or 21 attempts are used), `cancelled`
            when the endpoint was disabled, stopped receiving the event, or
            could not be sent to (an unsafe address).
        attempt_count:
          description: |
            How many times it was sent.
          type: integer
        last_attempt:
          description: |
            The most recent attempt.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/WebhookDeliveryAttempt'
        attempts:
          type: array
          description: Not in lists.
          items:
            $ref: '#/components/schemas/WebhookDeliveryAttempt'
        created_at:
          description: |
            When it was created, in ISO 8601.
          type: string
          format: date-time
        updated_at:
          description: |
            When it last changed, in ISO 8601.
          type: string
          format: date-time
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: >-
            A stable snake_case word, safe to branch on. See
            [Errors](/api-reference/errors) for the list.
        message:
          type: string
          description: A sentence for humans. It may change; do not parse it.
        field:
          type: string
          description: >-
            The dotted path to the request field at fault, such as
            `recording.methods.bot.mode`. Present only when one field is.
    WebhookDeliveryAttempt:
      type: object
      properties:
        number:
          description: |
            Which attempt this was, from 1.
          type: integer
        status:
          description: >
            - `pending`: sending.

            - `succeeded`: your receiver answered `2xx`.

            - `failed`: it answered something else, timed out, or could not be
            reached.
          type: string
          enum:
            - pending
            - succeeded
            - failed
        response_code:
          type: integer
          nullable: true
          description: What your receiver answered; `null` when it could not be reached.
          example: 500
        response_body:
          type: string
          nullable: true
          description: Not in lists. The first 2,000 bytes of what your receiver answered.
        error:
          type: string
          nullable: true
          description: >-
            Not in lists. Why the request failed before an answer (a timeout, a
            refused connection).
        started_at:
          description: |
            When the attempt started, in ISO 8601.
          type: string
          format: date-time
        completed_at:
          description: |
            When your receiver answered, or `null` while sending.
          type: string
          format: date-time
          nullable: true
  responses:
    Unauthorized:
      description: >-
        Your API key is missing (`missing_api_key`) or wrong
        (`invalid_api_key`), or it may not access this resource
        (`unauthorized`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Your API key, sent bare. See
        [Authentication](/api-reference/authentication).

````