Receive Emails: Reading
List Messages
List messages one by one, without grouping them into conversations. You can also list every message that has a label.
https://g.sendcorex.com/v1command: list_messagesArguments
folderstringoptionalFolder to list. Defaults to
INBOX.limitnumberoptionalPage size, from 1 to 100. Defaults to 25.
cursorstringoptionalThe
next_cursorof the previous page.is_readbooleanoptionalFilter by read state. This filter scans the folder.
is_starredbooleanoptionalFilter by star. This filter scans the folder.
is_importantbooleanoptionalFilter by importance. This filter scans the folder.
is_spambooleanoptionalFilter by spam. This filter scans the folder.
afterstringoptionalOnly messages received on or after this date. RFC 3339,
YYYY-MM-DD(UTC) or epoch in milliseconds.beforestringoptionalOnly messages received before this date. Same formats as
after.labelstringoptionalList the messages with this label in every folder.
folderand the boolean filters are ignored. Case-insensitive.afterandbeforestill work.e.g.
"cliente-vip"
Quick start
import axios from 'axios';
const response = await axios.post(
'https://g.sendcorex.com/v1',
{
commands: [
{
command: "list_messages",
args: {
folder: "INBOX",
is_read: false,
limit: 50
}
}
]
},
{ headers: { Authorization: process.env.SENDCOREX_TOKEN } },
);
const [result] = response.data.results;
if (result.type !== 'SUCCESS') throw new Error(`${result.code}: ${result.message}`);
console.log(result.data);Response
{
"type": "SUCCESS",
"results": [
{
"command": "list_messages",
"id": "0",
"type": "SUCCESS",
"data": {
"messages": [
{
"message_uid": "Vj0xQUJDMTIz",
"thread_id": "thr_9a1c4e72",
"folder": "INBOX",
"subject": "Invoice for September",
"preview": "Hi, attached is the invoice for September…",
"from_name": "Ana Costa",
"from_email": "ana@client.com",
"has_attachments": false,
"size_bytes": 4821,
"is_read": false,
"is_starred": false,
"is_important": false,
"is_spam": false,
"snoozed_until": null,
"received_at": "2026-10-09T14:21:07Z"
}
],
"has_more": false,
"next_cursor": null
}
}
]
}Response fields
messages[].message_uidThe message id.
messages[].thread_idThe conversation the message belongs to.
messages[].folderThe folder of this entry.
messages[].subject / previewSubject and a short preview.
messages[].from_name / from_emailThe sender.
messages[].has_attachments / size_bytesAttachment flag and message size.
messages[].is_read / is_starred / is_important / is_spamMessage state.
messages[].snoozed_untilWhen a snoozed message is due, or
null.messages[].received_atWhen the message was received.
has_more / next_cursorPagination.
List by label
With label, the command reads the label index, so only labeled messages are examined. Each message is returned with its current state across all folders, so you get folders and labels instead of a single folder.
Response data with label
{
"messages": [
{
"message_uid": "Vj0xQUJDMTIz",
"thread_id": "thr_9a1c4e72",
"subject": "Invoice for September",
"preview": "Hi, attached is the invoice for September…",
"from_name": "Ana Costa",
"from_email": "ana@client.com",
"folders": [
"INBOX"
],
"labels": [
"cliente-vip"
],
"is_read": false,
"is_starred": false,
"is_important": false,
"received_at": "2026-10-09T14:21:07Z"
}
],
"has_more": false,
"next_cursor": null
}Errors
HTTP-level errors return type, code and message. Errors marked CMD come back inside the command result, with HTTP 200.
- 401
TOKEN_EXPIREDThe access token has expired. Call Refresh Token and repeat the request.
- 401
INVALID_TOKENThe token is malformed, unknown or revoked.
- 429
RATE_LIMITEDMore than 15 requests/s or 15 in flight for the same IP + mailbox. Wait the number of seconds in Retry-After.
- CMD
INVALID_ARGSA required argument is missing or invalid.
- CMD
INVALID_CURSORThe cursor is malformed or belongs to another account or folder.
- CMD
INTERNALServer error. The detail is only written to the server log.