Go to account

SMS

Message Logs

Retrieve a paginated list of SMS message records for your account. Filter by delivery status, operator, campaign, individual message, or a date range to narrow results.

GET

/v1/sms/logs

Authorization

Header

X-Emisri-Api-Key: your_secret_key

Required

Yes

Query parameters

FieldTypeRequiredDescription
pagenumbernoPage number to retrieve. Defaults to 1.
sizenumbernoNumber of records per page. Defaults to 100.
statusstringnoFilter by delivery status. See Status Values table below for accepted values.
operatorstringnoFilter by mobile network operator. See Operator Values table below.
campaignIdstringnoFilter logs belonging to a specific campaign. Use the campaignId returned from a send request.
messageIdstringnoRetrieve the log for a single message by its unique ID.
dateFromstringnoStart of the date range filter in ISO 8601 format (e.g. 2026-05-01T00:00:00Z).
dateTostringnoEnd of the date range filter in ISO 8601 format (e.g. 2026-05-31T23:59:59Z).

Response · 200 OK

application/json

FieldTypeRequiredDescription
successbooleantrue when the request completed successfully.
dataobjectThe response payload.
metaobjectRequest metadata.

Message object

FieldTypeRequiredDescription
messageIdstringUnique ID assigned to the individual message.
campaignIdstringID of the campaign this message belongs to.
campaignNamestringLabel used when the campaign was submitted.
recipientstringDestination phone number in international format.
senderIdstringThe Sender ID used to dispatch the message.
messageTypestringMessage classification — MARKETING or TRANSACTIONAL.
statusstringCurrent delivery status. See Status Values table below.
dlrStatusstringRaw delivery report status received from the operator.
sentAtstringISO 8601 timestamp of when the message was dispatched.
completedAtstringISO 8601 timestamp of when the final status was recorded.
errorCodestringOperator error code. 0000 indicates successful delivery. NO_REPORT means no DLR was received.
errorReasonstringHuman-readable description of the error code.
pageCountnumberNumber of SMS parts this message was split into.
charCountnumberTotal character count of the message body.
costnumberAmount charged for this message in the billing currency.
currencystringCurrency of the cost field (e.g. NGN).
urlClickedbooleanWhether the shortened URL in the message was clicked. Only present when URL shortening with click tracking was enabled.
urlClickedAtstring | nullISO 8601 timestamp of the first URL click, or null if not clicked.

Status values

Use any of these values with the status query parameter to filter logs.

ValueDescription
DELIVEREDMessage successfully delivered to the handset.
PENDINGAwaiting delivery confirmation from the operator.
SENTAccepted by the operator; DLR not yet received.
ENROUTEIn transit within the operator network.
QUEUEDQueued on the Emisri platform for dispatch.
UNDELIVERABLEOperator confirmed the message could not be delivered.
FAILEDDelivery failed due to a platform or network error.
EXPIREDMessage expired before delivery could be confirmed.
REJECTEDRejected by the operator or platform before dispatch.
DNDRecipient is on the Do Not Disturb registry.
BLOCKEDBlocked by a platform-level rule or content filter.
HOLDOUTHeld from delivery as part of a holdout group.
UNKNOWNStatus could not be determined.

Operator values

Use any of these values with the operator query parameter to filter logs by network.

ValueOperator
MTNMTN Nigeria
GLOBACOMGlobacom Nigeria
AIRTELAirtel Nigeria
T2_9MOBILE9mobile (formerly Etisalat) Nigeria
OTHERSAny other or unrecognised operator.