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

# Get Webhook Subscription Logs

> Get delivery logs for a webhook subscription.

<Warning>Logs are only available for the last 14 days.</Warning>


## OpenAPI

````yaml https://api.catenatelematics.com/v2/notifications/openapi.json get /v2/notifications/webhooks/{webhook_id}/logs
openapi: 3.1.0
info:
  title: Notifications Service - REST API
  description: Notifications Service REST API.
  version: 0.1.0
servers:
  - url: https://api.catenatelematics.com
    description: Catena Telematics API
security: []
tags:
  - name: Webhook Subscriptions
    description: >-
      Create and manage webhooks to subscribe to events and receive
      notifications when they occur.
  - name: Webhook Event Schemas
    description: Get the OpenAPI 3.0 schema for our versioned webhook events.
  - name: Webhook Events
    description: View available webhook events.
paths:
  /v2/notifications/webhooks/{webhook_id}/logs:
    get:
      tags:
        - Webhook Subscriptions
      summary: Get Webhook Subscription Logs
      description: Get delivery logs for a webhook subscription.
      operationId: get_webhook_subscription_logs
      parameters:
        - name: webhook_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Webhook Id
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            title: Start Date
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            title: End Date
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - success
                  - failed
                type: string
              - type: 'null'
            title: Status
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Cursor for the next page
            title: Cursor
          description: Cursor for the next page
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            description: Page size
            default: 300
            title: Size
          description: Page size
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/_CursorPage_TypeVar_Customized_WebhookLogRead_
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not Found
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed'
          description: Method Not Allowed
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
      security:
        - Bearer:
            - webhook:read
components:
  schemas:
    _CursorPage_TypeVar_Customized_WebhookLogRead_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/WebhookLogRead'
          type: array
          title: Items
        current_page:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Page
          description: Cursor to refetch the current page
        current_page_backwards:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Page Backwards
          description: Cursor to refetch the current page starting from the last item
        previous_page:
          anyOf:
            - type: string
            - type: 'null'
          title: Previous Page
          description: Cursor for the previous page
        next_page:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Page
          description: Cursor for the next page
      type: object
      required:
        - items
      title: _CursorPage[TypeVar]Customized[WebhookLogRead]
    BadRequest:
      properties:
        code:
          type: integer
          title: Code
          default: 400
        message:
          type: string
          title: Message
          default: Bad Request
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: BadRequest
    Unauthorized:
      properties:
        code:
          type: integer
          title: Code
          default: 401
        message:
          type: string
          title: Message
          default: Unauthorized
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Unauthorized
    Forbidden:
      properties:
        code:
          type: integer
          title: Code
          default: 403
        message:
          type: string
          title: Message
          default: Forbidden
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Forbidden
    NotFound:
      properties:
        code:
          type: integer
          title: Code
          default: 404
        message:
          type: string
          title: Message
          default: Not Found
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: NotFound
    MethodNotAllowed:
      properties:
        code:
          type: integer
          title: Code
          default: 405
        message:
          type: string
          title: Message
          default: Method Not Allowed
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: MethodNotAllowed
    Conflict:
      properties:
        code:
          type: integer
          title: Code
          default: 409
        message:
          type: string
          title: Message
          default: Conflict
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Conflict
    UnprocessableEntity:
      properties:
        code:
          type: integer
          title: Code
          default: 422
        message:
          type: string
          title: Message
          default: Invalid Request Body
        detail:
          anyOf:
            - items:
                $ref: '#/components/schemas/ValidationErrorDetail'
              type: array
            - type: 'null'
          title: Detail
      type: object
      title: UnprocessableEntity
    TooManyRequests:
      properties:
        code:
          type: integer
          title: Code
          default: 429
        message:
          type: string
          title: Message
          default: Too Many Requests
        detail:
          anyOf:
            - $ref: '#/components/schemas/RetryAfterDetail'
            - type: 'null'
      type: object
      title: TooManyRequests
    InternalServerError:
      properties:
        message:
          type: string
          title: Message
          default: Internal Server Error
      type: object
      title: InternalServerError
    WebhookLogRead:
      properties:
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time the log was created
        webhook_id:
          type: string
          format: uuid
          title: Webhook ID
          description: The ID of the webhook that the metrics are for
        message_id:
          type: string
          format: uuid
          title: Message ID
          description: The ID of the message
        event_name:
          $ref: '#/components/schemas/WebhookEventNameEnum'
          title: Event Name
          description: The name of the event
        status:
          $ref: '#/components/schemas/WebhookLogStatusEnum'
          title: Status
          description: The status of the webhook message
        status_code:
          type: integer
          title: Status Code
          description: The HTTP status code of the webhook delivery
        error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Message
          description: The error message of the webhook delivery
        response_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Response Time
          description: The response time of the webhook delivery in milliseconds
      type: object
      required:
        - created_at
        - webhook_id
        - message_id
        - event_name
        - status
        - status_code
        - error_message
        - response_time_ms
      title: WebhookLogRead
      description: Webhook log read model.
    ValidationErrorDetail:
      properties:
        path:
          type: string
          title: Path
        input:
          type: string
          title: Input
        message:
          type: string
          title: Message
        error_type:
          type: string
          title: Error Type
      type: object
      required:
        - path
        - input
        - message
        - error_type
      title: ValidationErrorDetail
    RetryAfterDetail:
      properties:
        retry_after_seconds:
          type: integer
          title: Retry After Seconds
        message:
          type: string
          title: Message
      type: object
      required:
        - retry_after_seconds
        - message
      title: RetryAfterDetail
    WebhookEventNameEnum:
      type: string
      enum:
        - dvir_log.added
        - dvir_log.modified
        - dvir_log.removed
        - dvir_log.*
        - driver_vehicle_association.added
        - driver_vehicle_association.modified
        - driver_vehicle_association.*
        - trailer_vehicle_association.added
        - trailer_vehicle_association.modified
        - trailer_vehicle_association.*
        - invitation.created
        - invitation.rejected
        - invitation.declined
        - invitation.viewed
        - invitation.sent
        - invitation.accepted
        - invitation.expired
        - invitation.deleted
        - invitation.*
        - connection.created
        - connection.staled
        - connection.*
        - fleet_connection.created
        - fleet_connection.*
        - fleet_info.added
        - fleet_info.modified
        - fleet_info.removed
        - fleet_info.*
        - share_agreement.created
        - share_agreement.updated
        - share_agreement.deleted
        - share_agreement.*
        - webhook.created
        - webhook.updated
        - webhook.deleted
        - webhook.staled
        - webhook.activated
        - webhook.paused
        - webhook.*
        - workflow.added
        - workflow.modified
        - workflow.removed
        - workflow.*
        - tsp.created
        - tsp.requested
        - vehicle.added
        - vehicle.modified
        - vehicle.removed
        - vehicle.*
        - trailer.added
        - trailer.modified
        - trailer.removed
        - trailer.*
        - trailer_location.added
        - trailer_location.modified
        - trailer_location.*
        - trailer_status.added
        - trailer_status.modified
        - trailer_status.*
        - execution.created
        - execution.staled
        - execution.failed
        - execution.*
        - schedule.deactivated
        - schedule.*
        - user.added
        - user.modified
        - user.removed
        - user.*
        - vehicle_location.added
        - vehicle_location.*
        - ifta_summary.added
        - ifta_summary.modified
        - ifta_summary.removed
        - ifta_summary.*
        - hos_availability.added
        - hos_availability.modified
        - hos_availability.removed
        - hos_availability.*
        - hos_daily_snapshot.added
        - hos_daily_snapshot.modified
        - hos_daily_snapshot.removed
        - hos_daily_snapshot.*
        - hos_event.added
        - hos_event.modified
        - hos_event.removed
        - hos_event.*
        - hos_violation.added
        - hos_violation.modified
        - hos_violation.removed
        - hos_violation.*
        - engine_log.added
        - engine_log.modified
        - engine_log.removed
        - engine_log.*
        - engine_status.added
        - engine_status.modified
        - engine_status.*
        - group_message.added
        - group_message.modified
        - group_message.*
        - message.added
        - message.modified
        - message.*
        - fuel_transaction.added
        - fuel_transaction.modified
        - fuel_transaction.*
        - resource_operation.created
        - resource_operation.succeeded
        - resource_operation.failed
        - resource_operation.*
      title: WebhookEventNameEnum
      description: >-
        Enum for webhook events


        We need this list to be extensive and specific to avoid customers
        subscribing

        to events that don't exist or are not supported.
    WebhookLogStatusEnum:
      type: string
      enum:
        - success
        - failed
      title: WebhookLogStatusEnum
      description: Enum for webhook log status
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
        authorizationCode:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          authorizationUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/auth
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token

````