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

# List a monitor's firings

> Page through the occurrences a monitor has fired for, and how each delivery went

export const MonitorsExperimental = () => <Warning>
    <strong>Monitors is experimental.</strong> Request and payload shapes can change without a deprecation window. Monitors isn't recommended for production workflows.
  </Warning>;

<MonitorsExperimental />

## Notes

* To authenticate, you'll need a [Tako API key](https://tako.com/console/api-keys). It's best practice to store it as an environment variable to avoid hardcoding sensitive credentials in your code.
* Newest first. `limit` is 1–100 and defaults to 20; pass a response's `next_cursor` back as `cursor` for the next page.
* `occurred_at` is when the occurrence happened. `fired_at` is when Tako fired for it. They differ by however long the source took to report — see the type's `description` in [List monitor types](/api-reference/monitor-types).
* `occurrence_key` is what Tako dedupes on: one firing per key, so a source that reposts the same occurrence doesn't fire twice.
* `payload` is the body Tako delivered to your channels. Its field set is the type's contract — a key added there reaches subscribers, and one removed breaks them.
* `deliveries` records what happened on each channel. Two consecutive failures pause the channel; see [Pause or resume a notification channel](/api-reference/notification-channels-update).
* Firings older than the monitor type's `lookback_seconds` may have been removed, so this isn't an indefinite archive.


## OpenAPI

````yaml GET /v1/monitors/{id}/firings
openapi: 3.1.0
info:
  title: Knowledge Search API
  version: 1.0.0
servers:
  - url: https://tako.com/api/
    description: Tako Production API Server
security: []
paths:
  /v1/monitors/{id}/firings:
    parameters:
      - description: Resource id
        required: true
        schema:
          type: string
          format: uuid
        name: id
        in: path
    get:
      tags:
        - monitors
      summary: List a monitor's firings
      description: >-
        The occurrences this monitor has fired for, newest first. Firings older
        than the monitor type's lookback window may have been removed.


        **Experimental.** Request and payload shapes can change without a
        deprecation window. Monitors isn't recommended for production workflows.
      operationId: listMonitorFirings
      parameters:
        - description: Opaque pagination cursor from a previous response's next_cursor.
          required: false
          schema:
            type: string
          name: cursor
          in: query
        - description: Max items to return (default 20, max 100).
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
          name: limit
          in: query
      responses:
        '200':
          description: The monitor's firings, newest first
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiringList'
        '400':
          description: Invalid request data (validation or malformed body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
        '404':
          description: No resource with this id belongs to the caller.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAPIError'
      security:
        - apiKey: []
components:
  schemas:
    FiringList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/FiringResponse'
          type: array
          title: Items
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
      type: object
      required:
        - items
      title: FiringList
    BaseAPIError:
      properties:
        error_message:
          type: string
          title: Error Message
        error_type:
          $ref: '#/components/schemas/APIErrorType'
      type: object
      required:
        - error_message
        - error_type
      title: BaseAPIError
    FiringResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        monitor_id:
          type: string
          format: uuid
          title: Monitor Id
        fired_at:
          type: string
          format: date-time
          title: Fired At
        occurred_at:
          type: string
          format: date-time
          title: Occurred At
        trigger:
          $ref: '#/components/schemas/FiringTrigger'
        occurrence_key:
          type: string
          title: Occurrence Key
        payload:
          additionalProperties:
            $ref: '#/components/schemas/Scalar'
          type: object
          title: Payload
        deliveries:
          items:
            $ref: '#/components/schemas/DeliveryStatus'
          type: array
          title: Deliveries
      type: object
      required:
        - id
        - monitor_id
        - fired_at
        - occurred_at
        - trigger
        - occurrence_key
        - payload
        - deliveries
      title: FiringResponse
    APIErrorType:
      type: string
      enum:
        - BAD_REQUEST
        - AUTHENTICATION_ERROR
        - INTERNAL_SERVER_ERROR
        - RELEVANT_RESULTS_NOT_FOUND
        - RATE_LIMIT_EXCEEDED
        - PAYMENT_REQUIRED
        - REQUEST_TIMEOUT
        - FORBIDDEN
        - NOT_FOUND
        - SERVICE_UNAVAILABLE
        - SERVICE_OVERLOADED
        - UNSUPPORTED_CONTENT_FORMAT
      title: APIErrorType
    FiringTrigger:
      type: string
      enum:
        - push
        - diff
      title: FiringTrigger
    Scalar:
      anyOf:
        - type: string
        - type: integer
        - type: number
        - type: boolean
        - type: 'null'
    DeliveryStatus:
      properties:
        channel_id:
          type: string
          format: uuid
          title: Channel Id
        state:
          $ref: '#/components/schemas/DeliveryState'
        attempts:
          type: integer
          title: Attempts
        last_status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: Last Status Code
        finished_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Finished At
      type: object
      required:
        - channel_id
        - state
        - attempts
        - last_status_code
        - finished_at
      title: DeliveryStatus
    DeliveryState:
      type: string
      enum:
        - pending
        - retrying
        - delivered
        - failed
      title: DeliveryState
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-API-Key
      in: header

````