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

# Get Email Detail

> Retrieve all events for a specific sent email by its request ID. Returns delivery, bounce, open, click, and other events in reverse chronological order. If no `from` date is provided, defaults to the last 10 days.

Retrieve all events for a specific sent email by its request ID.


## OpenAPI

````yaml GET /emails/{requestId}
openapi: 3.1.0
info:
  title: Lettr API
  version: 1.0.0
  description: >-
    Lettr Email API - Send transactional emails with tracking, attachments, and
    personalization.
  contact:
    name: Lettr Support
    url: https://lettr.com
  license:
    name: Proprietary
    url: https://lettr.com/terms
servers:
  - url: https://app.lettr.com/api
    description: Production
security: []
tags:
  - name: Emails
    description: Email sending operations
  - name: Templates
    description: Email template management operations
  - name: Domains
    description: Domain management operations
  - name: Webhooks
    description: Webhook management operations
  - name: Audience
    description: 'Audience management: lists, contacts, topics, properties, and segments'
  - name: Campaigns
    description: >-
      Campaign operations: listing, stats, engagement events, and
      dispatch/scheduling
paths:
  /emails/{requestId}:
    get:
      tags:
        - Emails
      summary: Get Email Detail
      description: >-
        Retrieve all events for a specific sent email by its request ID. Returns
        delivery, bounce, open, click, and other events in reverse chronological
        order. If no `from` date is provided, defaults to the last 10 days.
      operationId: getEmailDetail
      parameters:
        - name: requestId
          in: path
          required: true
          description: The request ID (transmission ID) of the sent email.
          schema:
            type: string
            example: '7610639000055488914'
        - name: from
          in: query
          required: false
          description: >-
            Start date for the event search range. Defaults to 10 days ago if
            not provided.
          schema:
            type: string
            format: date
            example: '2024-01-01'
        - name: to
          in: query
          required: false
          description: >-
            End date for the event search range. Defaults to now if not
            provided.
          schema:
            type: string
            format: date
            example: '2024-01-31'
      responses:
        '200':
          description: Email detail retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEmailDetailResponse'
              example:
                message: Email retrieved successfully.
                data:
                  transmission_id: '7610639000055488914'
                  state: delivered
                  scheduled_at: null
                  from: sender@example.com
                  from_name: null
                  subject: Welcome to Lettr
                  recipients:
                    - recipient@example.com
                  num_recipients: 1
                  events:
                    - event_id: event-open-1
                      type: open
                      timestamp: '2024-01-15T10:32:00.000Z'
                      request_id: '7610639000055488914'
                      rcpt_to: recipient@example.com
                      raw_rcpt_to: recipient@example.com
                      recipient_domain: example.com
                      mailbox_provider: Gmail
                      mailbox_provider_region: Global
                      subject: Welcome to Lettr
                      friendly_from: sender@example.com
                    - event_id: event-delivery-1
                      type: delivery
                      timestamp: '2024-01-15T10:31:00.000Z'
                      request_id: '7610639000055488914'
                      rcpt_to: recipient@example.com
                      raw_rcpt_to: recipient@example.com
                      recipient_domain: example.com
                      mailbox_provider: Gmail
                      mailbox_provider_region: Global
                      subject: Welcome to Lettr
                      friendly_from: sender@example.com
                      queue_time: 500
                    - event_id: event-injection-1
                      type: injection
                      timestamp: '2024-01-15T10:30:00.000Z'
                      request_id: '7610639000055488914'
                      rcpt_to: recipient@example.com
                      raw_rcpt_to: recipient@example.com
                      recipient_domain: example.com
                      mailbox_provider: Gmail
                      mailbox_provider_region: Global
                      subject: Welcome to Lettr
                      friendly_from: sender@example.com
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Email not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Email not found.
                error_code: not_found
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              example:
                message: Validation failed.
                error_code: validation_error
                errors:
                  from:
                    - The from parameter must be a valid date.
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - bearerAuth: []
components:
  schemas:
    GetEmailDetailResponse:
      type: object
      required:
        - message
        - data
      description: >-
        Email detail response. Uses the same data shape as the scheduled
        transmission detail — see `ShowScheduledTransmissionResponse` for field
        descriptions.
      properties:
        message:
          type: string
          example: Email retrieved successfully.
        data:
          type: object
          required:
            - transmission_id
            - state
            - from
            - subject
            - recipients
            - num_recipients
            - events
          properties:
            transmission_id:
              type: string
              description: >-
                The unique transmission ID (same as the `requestId` returned
                when the email was sent).
              example: '12345678901234567890'
            state:
              type: string
              description: >-
                Derived delivery state based on events. `scheduled` — injected
                but not yet delivered. `delivered` — successfully delivered.
                `bounced` — rejected by recipient server. `failed` — generation
                or policy failure.
              enum:
                - scheduled
                - delivered
                - bounced
                - failed
              example: delivered
            scheduled_at:
              type:
                - string
                - 'null'
              format: date-time
              description: >-
                The scheduled delivery time, if the email was scheduled. Usually
                `null` for immediately-sent emails.
              example: null
            from:
              type: string
              format: email
              description: Sender email address.
              example: sender@example.com
            from_name:
              type:
                - string
                - 'null'
              description: Sender display name.
              example: null
            subject:
              type: string
              description: Email subject line.
              example: Welcome to Lettr
            recipients:
              type: array
              items:
                type: string
                format: email
              description: Unique list of recipient email addresses derived from events.
              example:
                - recipient@example.com
            num_recipients:
              type: integer
              description: Total number of unique recipients.
              example: 1
            events:
              type: array
              description: >-
                Delivery events for this email (injection, delivery, bounce,
                open, click, etc.).
              items:
                $ref: '#/components/schemas/EmailEvent'
    ErrorResponse:
      type: object
      required:
        - message
        - error_code
      description: Error response for non-validation errors (400, 409, 500, 502).
      properties:
        message:
          type: string
          description: Human-readable error message
          example: The sender domain could not be determined from the email address.
        error_code:
          $ref: '#/components/schemas/ErrorCode'
    ValidationErrorResponse:
      type: object
      required:
        - message
        - error_code
        - errors
      properties:
        message:
          type: string
          description: Human-readable error message
          example: Validation failed.
        error_code:
          type: string
          description: Error code (always `validation_error` for 422 responses)
          const: validation_error
          example: validation_error
        errors:
          type: object
          description: Field-specific validation errors
          additionalProperties:
            type: array
            items:
              type: string
          example:
            from:
              - The sender email address is required.
            to:
              - At least one recipient email address is required.
    EmailEvent:
      description: >-
        An email event. The `type` field determines which additional fields are
        present. All event types share common fields defined in
        `CommonEventProperties`.
      oneOf:
        - $ref: '#/components/schemas/InjectionEvent'
        - $ref: '#/components/schemas/DeliveryEvent'
        - $ref: '#/components/schemas/BounceEvent'
        - $ref: '#/components/schemas/DelayEvent'
        - $ref: '#/components/schemas/OutOfBandEvent'
        - $ref: '#/components/schemas/SpamComplaintEvent'
        - $ref: '#/components/schemas/PolicyRejectionEvent'
        - $ref: '#/components/schemas/ClickEvent'
        - $ref: '#/components/schemas/OpenEvent'
        - $ref: '#/components/schemas/InitialOpenEvent'
        - $ref: '#/components/schemas/AmpClickEvent'
        - $ref: '#/components/schemas/AmpOpenEvent'
        - $ref: '#/components/schemas/AmpInitialOpenEvent'
        - $ref: '#/components/schemas/GenerationFailureEvent'
        - $ref: '#/components/schemas/GenerationRejectionEvent'
        - $ref: '#/components/schemas/ListUnsubscribeEvent'
        - $ref: '#/components/schemas/LinkUnsubscribeEvent'
      discriminator:
        propertyName: type
        mapping:
          injection:
            $ref: '#/components/schemas/InjectionEvent'
          delivery:
            $ref: '#/components/schemas/DeliveryEvent'
          bounce:
            $ref: '#/components/schemas/BounceEvent'
          delay:
            $ref: '#/components/schemas/DelayEvent'
          out_of_band:
            $ref: '#/components/schemas/OutOfBandEvent'
          spam_complaint:
            $ref: '#/components/schemas/SpamComplaintEvent'
          policy_rejection:
            $ref: '#/components/schemas/PolicyRejectionEvent'
          click:
            $ref: '#/components/schemas/ClickEvent'
          open:
            $ref: '#/components/schemas/OpenEvent'
          initial_open:
            $ref: '#/components/schemas/InitialOpenEvent'
          amp_click:
            $ref: '#/components/schemas/AmpClickEvent'
          amp_open:
            $ref: '#/components/schemas/AmpOpenEvent'
          amp_initial_open:
            $ref: '#/components/schemas/AmpInitialOpenEvent'
          generation_failure:
            $ref: '#/components/schemas/GenerationFailureEvent'
          generation_rejection:
            $ref: '#/components/schemas/GenerationRejectionEvent'
          list_unsubscribe:
            $ref: '#/components/schemas/ListUnsubscribeEvent'
          link_unsubscribe:
            $ref: '#/components/schemas/LinkUnsubscribeEvent'
    UnauthorizedResponse:
      type: object
      required:
        - message
      description: Error response for authentication failures (401).
      properties:
        message:
          type: string
          description: Human-readable error message
          example: API key is required.
    ErrorCode:
      type: string
      description: >-
        Error codes returned by the API.


        | Code | HTTP Status | Description |

        |------|-------------|-------------|

        | `validation_error` | 422 | Request validation failed. Check the
        `errors` object for field-specific messages. |

        | `invalid_domain` | 400 | The sender domain could not be determined
        from the email address. |

        | `unconfigured_domain` | 400 | The sender domain is not configured or
        approved for sending. |

        | `send_error` | 400, 500 | General error during email send preparation
        or domain registration. |

        | `retrieval_error` | 400, 500 | Failed to retrieve resources (e.g.,
        sandbox key without associated user, upstream error). |

        | `transmission_failed` | 502 | Email transmission to the upstream
        provider failed. |

        | `resource_already_exists` | 409 | The resource (e.g., domain) already
        exists. |

        | `not_found` | 404 | The specified resource was not found. |

        | `template_not_found` | 404 | The specified template, project, or
        template version was not found. |

        | `insufficient_scope` | 403 | The API key does not have the required
        scope for this endpoint. |

        | `schedule_cancellation_failed` | 409, 500 | Could not cancel the
        scheduled transmission (already sent or upstream error). |

        | `quota_exceeded` | 429 | Monthly sending quota exceeded. Upgrade your
        plan to continue sending. |

        | `daily_quota_exceeded` | 429 | Daily sending quota exceeded. Try again
        tomorrow. |

        | `campaign_not_sendable` | 422 | The campaign cannot be sent in its
        current state (not a draft, or missing subject/sender/content). |

        | `campaign_not_scheduled` | 422 | The campaign is not scheduled, so it
        cannot be unscheduled. |
      enum:
        - validation_error
        - invalid_domain
        - unconfigured_domain
        - send_error
        - retrieval_error
        - transmission_failed
        - resource_already_exists
        - not_found
        - template_not_found
        - insufficient_scope
        - schedule_cancellation_failed
        - quota_exceeded
        - daily_quota_exceeded
        - campaign_not_sendable
        - campaign_not_scheduled
      example: invalid_domain
    InjectionEvent:
      description: Fired when a message is received by the system and queued for delivery.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - injection
            initial_pixel:
              type:
                - boolean
                - 'null'
              description: Whether initial open tracking pixel was included
    DeliveryEvent:
      description: >-
        Fired when a message is successfully delivered to the recipient's mail
        server.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - delivery
            queue_time:
              type:
                - integer
                - 'null'
              description: Time spent in queue in milliseconds
              example: 1845
            outbound_tls:
              type:
                - string
                - 'null'
              description: Whether TLS was used for outbound delivery ("1" = yes)
              example: '1'
    BounceEvent:
      description: >-
        Fired when a message is permanently rejected by the recipient's mail
        server.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - bounce
            bounce_class:
              type:
                - integer
                - 'null'
              description: >-
                Bounce classification code (e.g. 10 = Invalid Recipient, 30 =
                Generic Bounce)
              example: 10
            error_code:
              type:
                - string
                - 'null'
              description: SMTP error code
              example: '550'
            reason:
              type:
                - string
                - 'null'
              description: Human-readable bounce reason
              example: >-
                550 5.1.1 The email account that you tried to reach does not
                exist.
            raw_reason:
              type:
                - string
                - 'null'
              description: Raw SMTP reason string
              example: 550 5.1.1 User unknown
            num_retries:
              type:
                - integer
                - 'null'
              description: Number of delivery retries attempted
            device_token:
              type:
                - string
                - 'null'
              description: Device token if applicable
    DelayEvent:
      description: Fired when a message delivery is temporarily delayed (will be retried).
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - delay
            reason:
              type:
                - string
                - 'null'
              description: Human-readable delay reason
            raw_reason:
              type:
                - string
                - 'null'
              description: Raw SMTP reason string
            error_code:
              type:
                - string
                - 'null'
              description: SMTP error code
              example: '421'
            bounce_class:
              type:
                - integer
                - 'null'
              description: Bounce classification code
            num_retries:
              type:
                - integer
                - 'null'
              description: Number of delivery retries attempted so far
            queue_time:
              type:
                - integer
                - 'null'
              description: Time spent in queue in milliseconds
            outbound_tls:
              type:
                - string
                - 'null'
              description: Whether TLS was used for outbound delivery
    OutOfBandEvent:
      description: >-
        Fired when a remote mail server sends an asynchronous bounce after
        initially accepting the message.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - out_of_band
            bounce_class:
              type:
                - integer
                - 'null'
              description: Bounce classification code
            error_code:
              type:
                - string
                - 'null'
              description: SMTP error code
            reason:
              type:
                - string
                - 'null'
              description: Human-readable bounce reason
            raw_reason:
              type:
                - string
                - 'null'
              description: Raw SMTP reason string
            device_token:
              type:
                - string
                - 'null'
              description: Device token if applicable
    SpamComplaintEvent:
      description: Fired when a recipient marks the message as spam via a feedback loop.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - spam_complaint
            fbtype:
              type:
                - string
                - 'null'
              description: Feedback type (e.g. "abuse")
              example: abuse
            report_by:
              type:
                - string
                - 'null'
              description: Who reported the spam
            report_to:
              type:
                - string
                - 'null'
              description: Where the spam report was sent
    PolicyRejectionEvent:
      description: >-
        Fired when a message is rejected due to policy (e.g. suppression list,
        rate limiting).
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - policy_rejection
            remote_addr:
              type:
                - string
                - 'null'
              description: Remote IP address
            reason:
              type:
                - string
                - 'null'
              description: Human-readable rejection reason
            raw_reason:
              type:
                - string
                - 'null'
              description: Raw rejection reason
            error_code:
              type:
                - string
                - 'null'
              description: Error code
            bounce_class:
              type:
                - integer
                - 'null'
              description: Bounce classification code
    ClickEvent:
      description: Fired when a recipient clicks a tracked link in the email.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - click
            target_link_url:
              type:
                - string
                - 'null'
              description: The URL that was clicked
              example: https://example.com/reset-password?token=abc123
            target_link_name:
              type:
                - string
                - 'null'
              description: The name/label of the clicked link
            user_agent:
              type:
                - string
                - 'null'
              description: Raw user agent string
              example: >-
                Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
                AppleWebKit/537.36
            user_agent_parsed:
              $ref: '#/components/schemas/UserAgentParsed'
            geo_ip:
              $ref: '#/components/schemas/GeoIp'
            ip_address:
              type:
                - string
                - 'null'
              description: IP address of the click
              example: 104.28.114.11
    OpenEvent:
      description: >-
        Fired when a recipient opens the email (subsequent opens after the
        initial open).
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - open
            user_agent:
              type:
                - string
                - 'null'
              description: Raw user agent string
              example: Mozilla/5.0
            user_agent_parsed:
              $ref: '#/components/schemas/UserAgentParsed'
            geo_ip:
              $ref: '#/components/schemas/GeoIp'
            ip_address:
              type:
                - string
                - 'null'
              description: IP address of the open
              example: 104.28.114.11
            initial_pixel:
              type:
                - boolean
                - 'null'
              description: Whether this was triggered by the initial tracking pixel
    InitialOpenEvent:
      description: Fired the first time a recipient opens the email.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - initial_open
            user_agent:
              type:
                - string
                - 'null'
              description: Raw user agent string
              example: Mozilla/5.0
            user_agent_parsed:
              $ref: '#/components/schemas/UserAgentParsed'
            geo_ip:
              $ref: '#/components/schemas/GeoIp'
            ip_address:
              type:
                - string
                - 'null'
              description: IP address of the open
              example: 104.28.114.11
            initial_pixel:
              type:
                - boolean
                - 'null'
              description: Whether this was triggered by the initial tracking pixel
    AmpClickEvent:
      description: Fired when a recipient clicks a tracked link in an AMP email.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - amp_click
            target_link_url:
              type:
                - string
                - 'null'
              description: The URL that was clicked
            target_link_name:
              type:
                - string
                - 'null'
              description: The name/label of the clicked link
            user_agent:
              type:
                - string
                - 'null'
              description: Raw user agent string
            user_agent_parsed:
              $ref: '#/components/schemas/UserAgentParsed'
            geo_ip:
              $ref: '#/components/schemas/GeoIp'
            ip_address:
              type:
                - string
                - 'null'
              description: IP address of the click
    AmpOpenEvent:
      description: Fired when a recipient opens an AMP email (subsequent opens).
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - amp_open
            user_agent:
              type:
                - string
                - 'null'
              description: Raw user agent string
            user_agent_parsed:
              $ref: '#/components/schemas/UserAgentParsed'
            geo_ip:
              $ref: '#/components/schemas/GeoIp'
            ip_address:
              type:
                - string
                - 'null'
              description: IP address of the open
            initial_pixel:
              type:
                - boolean
                - 'null'
              description: Whether this was triggered by the initial tracking pixel
    AmpInitialOpenEvent:
      description: Fired the first time a recipient opens an AMP email.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - amp_initial_open
            user_agent:
              type:
                - string
                - 'null'
              description: Raw user agent string
            user_agent_parsed:
              $ref: '#/components/schemas/UserAgentParsed'
            geo_ip:
              $ref: '#/components/schemas/GeoIp'
            ip_address:
              type:
                - string
                - 'null'
              description: IP address of the open
            initial_pixel:
              type:
                - boolean
                - 'null'
              description: Whether this was triggered by the initial tracking pixel
    GenerationFailureEvent:
      description: >-
        Fired when the system fails to generate a message (e.g. template
        rendering error).
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - generation_failure
            reason:
              type:
                - string
                - 'null'
              description: Human-readable failure reason
            raw_reason:
              type:
                - string
                - 'null'
              description: Raw failure reason
            error_code:
              type:
                - string
                - 'null'
              description: Error code
    GenerationRejectionEvent:
      description: >-
        Fired when the system rejects message generation (e.g. policy
        violation).
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - generation_rejection
            reason:
              type:
                - string
                - 'null'
              description: Human-readable rejection reason
            raw_reason:
              type:
                - string
                - 'null'
              description: Raw rejection reason
            error_code:
              type:
                - string
                - 'null'
              description: Error code
    ListUnsubscribeEvent:
      description: Fired when a recipient uses the List-Unsubscribe header to unsubscribe.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - list_unsubscribe
    LinkUnsubscribeEvent:
      description: Fired when a recipient clicks an unsubscribe link in the email body.
      allOf:
        - $ref: '#/components/schemas/CommonEventProperties'
        - type: object
          properties:
            type:
              type: string
              enum:
                - link_unsubscribe
    CommonEventProperties:
      type: object
      required:
        - event_id
        - type
        - timestamp
        - request_id
        - rcpt_to
        - raw_rcpt_to
        - recipient_domain
        - mailbox_provider
        - mailbox_provider_region
      properties:
        event_id:
          type: string
          description: Unique identifier for the event
          example: '7609871845907017144'
        type:
          type: string
          description: The event type
          enum:
            - injection
            - delivery
            - bounce
            - delay
            - out_of_band
            - spam_complaint
            - policy_rejection
            - click
            - open
            - initial_open
            - amp_click
            - amp_open
            - amp_initial_open
            - generation_failure
            - generation_rejection
            - list_unsubscribe
            - link_unsubscribe
        timestamp:
          type: string
          description: When the event occurred (ISO 8601)
          example: '2024-01-15T10:31:00.000Z'
        request_id:
          type: string
          description: The transmission/request ID that generated this event
          example: '7610639000055488914'
        rcpt_to:
          type: string
          format: email
          description: Recipient email address
          example: recipient@example.com
        raw_rcpt_to:
          type: string
          format: email
          description: Original recipient email address before any modifications
          example: recipient@example.com
        recipient_domain:
          type: string
          description: Domain of the recipient
          example: example.com
        mailbox_provider:
          type: string
          description: Mailbox provider of the recipient
          example: Gmail
        mailbox_provider_region:
          type: string
          description: Region of the mailbox provider
          example: Global
        message_id:
          type:
            - string
            - 'null'
          description: SMTP message ID
          example: 699715cd9e6961853a97
        subject:
          type:
            - string
            - 'null'
          description: Email subject line
          example: Welcome to Lettr
        friendly_from:
          type:
            - string
            - 'null'
          description: Friendly from address
          example: sender@example.com
        sending_domain:
          type:
            - string
            - 'null'
          description: The sending domain
          example: example.com
        sending_ip:
          type:
            - string
            - 'null'
          description: IP address used to send the email
          example: 168.203.51.91
        click_tracking:
          type:
            - boolean
            - 'null'
          description: Whether click tracking was enabled
        open_tracking:
          type:
            - boolean
            - 'null'
          description: Whether open tracking was enabled
        transactional:
          type:
            - boolean
            - 'null'
          description: Whether this was a transactional message
        msg_size:
          type:
            - integer
            - 'null'
          description: Message size in bytes
          example: 30823
        injection_time:
          type:
            - string
            - 'null'
          description: When the message was injected into the system (ISO 8601)
          example: '2024-01-15T10:30:00.000Z'
        rcpt_meta:
          type:
            - array
            - 'null'
          description: Recipient metadata
        campaign_id:
          type:
            - string
            - 'null'
          description: Campaign identifier
          example: welcome-series
        template_id:
          type:
            - string
            - 'null'
          description: Template identifier
          example: template_7610639000055488914
        template_version:
          type:
            - string
            - 'null'
          description: Template version
          example: '0'
        ip_pool:
          type:
            - string
            - 'null'
          description: IP pool used for sending
          example: default
        msg_from:
          type:
            - string
            - 'null'
          description: Envelope sender (MAIL FROM)
          example: msprvs1=abc123=bounces@sparkpostmail1.com
        rcpt_type:
          type:
            - string
            - 'null'
          description: Recipient type
        rcpt_tags:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Recipient tags
        amp_enabled:
          type:
            - boolean
            - 'null'
          description: Whether AMP was enabled
        delv_method:
          type:
            - string
            - 'null'
          description: Delivery method (e.g. esmtp)
          example: esmtp
        recv_method:
          type:
            - string
            - 'null'
          description: Reception method (e.g. rest)
          example: rest
        routing_domain:
          type:
            - string
            - 'null'
          description: Routing domain
          example: gmail.com
        scheduled_time:
          type:
            - string
            - 'null'
          description: Scheduled delivery time if the email was scheduled
        ab_test_id:
          type:
            - string
            - 'null'
          description: A/B test identifier
        ab_test_version:
          type:
            - string
            - 'null'
          description: A/B test version
    UserAgentParsed:
      type: object
      description: Parsed user agent information from the open/click event.
      properties:
        agent_family:
          type:
            - string
            - 'null'
          description: Browser or email client family
          example: Edge
        device_brand:
          type:
            - string
            - 'null'
          description: Device brand (e.g. Apple, Samsung)
        device_family:
          type:
            - string
            - 'null'
          description: Device family (e.g. iPhone, Desktop)
        os_family:
          type:
            - string
            - 'null'
          description: Operating system family
          example: Windows
        os_version:
          type:
            - string
            - 'null'
          description: Operating system version
          example: '10'
        is_mobile:
          type:
            - boolean
            - 'null'
          description: Whether the device is mobile
        is_proxy:
          type:
            - boolean
            - 'null'
          description: Whether the request came through a proxy
        is_prefetched:
          type:
            - boolean
            - 'null'
          description: >-
            Whether the open was prefetched by an email provider (e.g. Gmail
            Image Proxy, Apple Mail Privacy Protection). If true, this may not
            represent a real human open.
    GeoIp:
      type: object
      description: Geolocation data derived from the IP address of the open/click event.
      properties:
        country:
          type:
            - string
            - 'null'
          description: ISO 3166-1 alpha-2 country code
          example: CZ
        region:
          type:
            - string
            - 'null'
          description: Region or state code
          example: '10'
        city:
          type:
            - string
            - 'null'
          description: City name
          example: Prague
        latitude:
          type:
            - number
            - 'null'
          description: Latitude
          example: 50.0883
        longitude:
          type:
            - number
            - 'null'
          description: Longitude
          example: 14.4124
        zip:
          type:
            - string
            - 'null'
          description: ZIP code
          example: '110'
        postal_code:
          type:
            - string
            - 'null'
          description: Postal code
          example: 110 00
  responses:
    UnauthorizedError:
      description: Unauthorized - Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedResponse'
          examples:
            missing_key:
              summary: Missing API key
              value:
                message: API key is required.
            invalid_key:
              summary: Invalid API key
              value:
                message: Invalid API key.
    ServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            message: An unexpected error occurred. Please try again later.
            error_code: send_error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key for authentication

````