Messages (email log)

GET/api/v1/email-logs/messages
Requires anorganization API keywith the scopeevents:read

Request

GET/api/v1/email-logs/messages
curl -X GET 'https://app.mailyte.com/api/v1/email-logs/messages' \
  -H 'Authorization: Bearer mk_live_YOUR_API_KEY'
The key names its own organization, so no X-Organization-ID header is needed.

Response

Success.

  • dataobject
    • dataarray<object>
      • objectstringmessage
      • idstring

        Mailyte's ID for the message, the value GET /email-logs/messages/{id} takes. It is not the Message-ID.

      • message_idstring

        The Message-ID header, angle brackets included, for GET /domains/{domain}/messages/{messageId}. Null when the message never had one.

      • subjectstring

        The subject. Null when none of this message's events has one.

      • fromobject
        • emailstring

          The sending address. Null when none of this message's events names one.

        • namestring

          The sender's display name. Null when there is none.

      • recipientstring

        The one address this copy was sent to. A message to several people appears as one row per recipient.

      • statusstringsubmitted | sent | delivered | deferred | bounced | rejected | dropped | opened | clicked | complained | unsubscribed | unknown

        The message's latest outcome. A value we do not recognise is shown as unknown. sent and complained do not occur today.

      • not_sent_reasonstringdoes_not_exist | dead_domain | misspelt_domain | suppressed | disposable | not_a_contact | not_checked | inbox_full | null

        Set when Mailyte stopped the message before it left, so it was never sent and is not a bounce: - does_not_exist: the address is known not to exist. - dead_domain: the domain takes no mail. - misspelt_domain: the domain is misspelled, such as gmail.con. - suppressed: the address is on your suppression list. - disposable: a throwaway address. - not_a_contact or not_checked: a marketing key sends only to checked contacts. - inbox_full: the inbox is full. Remove or correct the address in your app. Null for everything else.

      • activityobject

        Counts over every event recorded for this message.

        • totalinteger

          All events, of any type.

        • opensinteger

          Every open, not unique people: one person opening twice counts twice.

        • clicksinteger

          Every tracking.click, not unique links.

        • typesarray<string>

          The distinct type values seen for this message, from the same set as an event's type.

      • first_event_atstring

        When the first event happened, in ISO 8601 UTC.

      • last_event_atstring

        When the latest event happened, in ISO 8601 UTC. status comes from this event.

    • pagination_metaany

Returned inside the standard envelope.

Errors

StatusWhen
401The API key is missing, unknown, revoked or expired. All four answer identically, on purpose: distinguishing them would confirm which keys exist.
403The key is valid but may not do this: it lacks the required scope, its IP allowlist does not include you, or this endpoint does not accept API keys.
404No such resource in this organization.
422The request was understood but the values were not acceptable.
429Too many requests, or the organization has spent its sending allowance. `Retry-After` says how long to wait.

Every status, with what causes it and what to do, is on the error reference.