Get a message
One email sent to one person: who it went to, what became of it and when it was opened and clicked.
One email sent to one person: who it went to, what became of it and when it was opened and clicked.
apiKey readAuthorizationBearer <token>A workspace API key (pf_…), created under Developers → API keys.
Scope: read
id*stringuuidOK
application/json- response
id*stringuuidsendId*stringThe send it belongs to: a campaign’s, a test send’s
uuidsource*stringWhere it came from
"test""automation""campaign"profileId*|The person it went to; null for a test send to an address
uuidtoAddress*|The address it went to; null once the person was erased
fromHeader*stringWho it came from, as sent
replyTo*string|nulllocale*|The locale of the version it was sent in; null when it was skipped before
emailProviderId*stringThe email provider it was sent through
uuidproviderMessageId*|The email provider’s id for it, once it accepted it
status*string"queued""sent""failed""skipped""cancelled"failureReason*|"rejected""provider_failed""provider_suppressed""render_failed""provider_disconnected"nullfailureDetail*|The email provider’s own words for a failure
skipReason*|Why it wasn’t sent at all
"suppressed""smart_sending""locale_not_sent""unsubscribed""no_coupon_code"nullqueuedAt*stringWhen its send started
date-timesentAt*|When the email provider accepted it
date-timedeliveredAt*|When it first reached the mailbox provider
date-timedelayedAt*|When delivery was first delayed
date-timebouncedAt*|When it bounced
date-timebounceKind*|"hard""soft"nullbounceReason*|"unknown_address""mailbox_full""message_too_large""content_rejected""provider_suppressed""other"nullbounceDetail*|What the receiving server said
complainedAt*|When the person marked it as spam
date-timefirstOpenedAt*|When the person first opened it
date-timelastOpenedAt*|When the person last opened it
date-timemachineOpenedAt*|When a machine first loaded it (Apple Mail Privacy Protection), kept apart from opens
date-timefirstClickedAt*|When the person first clicked a link in it
date-timelastClickedAt*|When the person last clicked a link in it
date-timemachineClickedAt*|When a machine first followed its links (a security scanner), kept apart from clicks
date-timeerasedAt*|When the person was erased: the message stays for the send’s numbers, without the address or what the provider said
date-timecurl -X GET 'https://api.postforge.dev/v1/messages/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "sendId": "98079182-77f0-4075-97da-b6e925fc22cb", "source": "test", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "toAddress": "string", "fromHeader": "string", "replyTo": "string", "locale": "string", "emailProviderId": "683bf648-54ce-4fc9-9f81-2da7d42459c3", "providerMessageId": "string", "status": "queued", "failureReason": "rejected", "failureDetail": "string", "skipReason": "suppressed", "queuedAt": "2019-08-24T14:15:22Z", "sentAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z", "delayedAt": "2019-08-24T14:15:22Z", "bouncedAt": "2019-08-24T14:15:22Z", "bounceKind": "hard", "bounceReason": "unknown_address", "bounceDetail": "string", "complainedAt": "2019-08-24T14:15:22Z", "firstOpenedAt": "2019-08-24T14:15:22Z", "lastOpenedAt": "2019-08-24T14:15:22Z", "machineOpenedAt": "2019-08-24T14:15:22Z", "firstClickedAt": "2019-08-24T14:15:22Z", "lastClickedAt": "2019-08-24T14:15:22Z", "machineClickedAt": "2019-08-24T14:15:22Z", "erasedAt": "2019-08-24T14:15:22Z"}