Verification & messages
List messages
The project's most recent channel attempts, newest first.
https://watsy.me/v1/messagescurl "https://watsy.me/v1/messages?limit=20" \
-H "Authorization: Bearer $WATSY_KEY"{
"object": "list",
"data": [
{
"id": "7e1d2c3b-4a59-4687-9a0b-c1d2e3f4a5b6",
"object": "message",
"verification_id": "5d3c1f0e-7a1b-4c55-9a7e-2f1d6b0c9e11",
"channel": "telegram",
"provider": "telegram_gateway",
"status": "sent",
"error_code": null,
"price_milli": 18000,
"created_at": "2026-10-28T10:00:01.000Z",
"updated_at": "2026-10-28T10:00:02.000Z",
"phone": "+9647701234567"
},
{
"id": "0b6f6a3e-1c2d-4e5f-8a9b-1c2d3e4f5a6b",
"object": "message",
"verification_id": "5d3c1f0e-7a1b-4c55-9a7e-2f1d6b0c9e11",
"channel": "whatsapp",
"provider": "meta_cloud",
"status": "failed",
"error_code": "whatsapp_131026",
"price_milli": 0,
"created_at": "2026-10-28T10:00:00.000Z",
"updated_at": "2026-10-28T10:00:01.000Z",
"phone": "+9647701234567"
}
]
}Authorization
Authorizationstring (header)requiredBearerfollowed by your project key:wsy_live_…orwsy_test_….
Headers
X-Request-IdstringOptional, 8 to 64 characters. Echoed back; generated when missing.
Query parameters
limitintegerdefault: 20Number of results, 1 to 100.
Response (200)
application/jsonobjectstringrequiredAlways
list.datamessage[]requiredOne entry per channel attempt, with the recipient phone.
Show child fieldsHide child fields
idstringId of this channel attempt.
objectstringAlways
message.verification_idstringThe verification this attempt belongs to.
channelstringChannel.
Values:
whatsapptelegramsmsproviderstringWho carried the attempt:
meta_cloud(Watsy's WhatsApp number),whatsapp_own(your own number),telegram_gateway, ortestin test mode.statusstringdeliveredappears once the provider reports delivery (WhatsApp today).Values:
pendingsentdeliveredfailederror_codestring | nullProvider failure reason, e.g.
whatsapp_131026,telegram_PHONE_NUMBER_INVALIDortimeout.price_milliintegerNet charge of this attempt in milli-IQD. A refunded attempt shows 0.
created_atstringCreation time (ISO 8601, UTC).
updated_atstringLast update.
phonestringRecipient in E.164.
A test key only sees test messages and a live key only live ones. There is no pagination yet: you get the most recent entries only.