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

# Get Webhook

> Get the webhook subscription identified by webhook_id.



## OpenAPI

````yaml get /webhooks/{webhook_id}
openapi: 3.0.3
info:
  title: Timelines Public API
  description: >
    # Timelines Public API


    _Some API calls may utilize message sending quota or be subject to message
    sending rate limits as described below._


    ### Credit Utilization 
      - Sending a message via API consumes 1 credit from message sending quota.
      - Sending a message with non-empty text and attachment consumes 2 credits from message sending quota.
      - If a message cannot be sent (invalid or not connected to WhatsApp number, WhatsApp server error), message sending quota will be restored (usually within a couple of hours).
    ### Message sending rate
      - Messages will be sent with random delay of about 2 seconds between each two messages (to avoid WhatsApp spam detection mechanisms). Contact support@timelines.global if you want to modify delay for your workspace (available on Business plan only).
      - If you exceed message sending frequency, messages be queued and sent out with delay. Each queued message will consume a message sending credit, so the number of queued messages cannot exceed the available quota.
      
    ### Authorization:
      - Copy API token from [Public API page](https://app.timelines.global/integrations/api/) in your Timelines Global account.
      - Put the token in *Authorization* header of request as follows:
      ```
      Authorization: Bearer 4d2d0239-e28c-4f4a-8a4d-3a3ca40056b8
      ```
            
    ### Message formatting:
      - use "\n" for line breaks
  version: 1.3.0
servers:
  - url: https://app.timelines.global/integrations/api
    description: Production
  - url: https://staging.app.timelines.global/integrations/api
    description: Staging
security:
  - bearerAuth: []
paths:
  /webhooks/{webhook_id}:
    get:
      summary: Get webhook
      description: Retrieves the webhook subscription identified by **webhook_id**.
      parameters:
        - $ref: '#/components/parameters/webhook_id'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookInfoResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/AccessDenied'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    webhook_id:
      description: an ID of webhook
      in: path
      name: webhook_id
      schema:
        type: string
      required: true
      example: '7654321'
  schemas:
    WebhookInfoResponse:
      type: object
      required:
        - status
        - data
      properties:
        status:
          type: string
          example: ok
          enum:
            - ok
            - error
        data:
          $ref: '#/components/schemas/WebhookInfo'
      description: Standard envelope returning a single webhook in the **data** field.
    WebhookInfo:
      type: object
      required:
        - id
        - event_type
        - enabled
        - url
        - errors_counter
      properties:
        id:
          example: 789456
          type: integer
          description: Unique numeric identifier for the webhook (integer).
        event_type:
          example: message:sent:new
          type: string
          description: >-
            Event topic that will trigger the webhook. For the current list of
            supported values see Timelines Global *Event Types* documentation
            (for example: `message:sent:new`, `message:received:new`).
        enabled:
          example: true
          type: boolean
          description: >-
            Flag indicating whether the subscription is active. When **false**,
            deliveries are paused but the definition is kept.
        url:
          example: http://www.example.com/api/hook
          type: string
          description: >-
            Destination HTTPS endpoint that Timelines Global will call. Must be
            publicly accessible and respond with `2xx` status within 5 seconds.
        errors_counter:
          example: 0
          type: integer
          description: >-
            Number of consecutive delivery failures. After several failures
            Timelines Global sends an email alert to the workspace owner but
            does **not** disable the webhook automatically.
      description: >-
        Server generated representation of a webhook subscription including its
        unique identifier and delivery error statistics.
    ErrorResponse:
      required:
        - message
        - status
      type: object
      properties:
        message:
          type: string
        status:
          type: string
          example: error
          enum:
            - ok
            - error
  responses:
    BadRequestError:
      description: Invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnauthorizedError:
      description: Access token is missing or invalid
    AccessDenied:
      description: Access denied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Specified entities not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````