Skip to main content

Get Usage

Retrieve how much of your plan your organization has used in the current period.

The period is the UTC calendar month

Usage is counted per UTC calendar month, from period_start up to but not including period_end. This is not your billing cycle: counters reset on the first of each month regardless of when you subscribed.

Endpoint​

GET /usage

Headers​

HeaderValueRequired
AuthorizationBearer <your-api-key>Yes

Response​

{
"object": "usage",
"period_start": "2026-03-01T00:00:00.000Z",
"period_end": "2026-04-01T00:00:00.000Z",
"emails": {
"marketing": { "used": 18240, "limit": 50000, "remaining": 31760 },
"transactional": { "used": 912, "limit": 10000, "remaining": 9088 }
},
"sms": { "used": 4310, "limit": null, "remaining": null },
"whatsapp": { "used": 126, "limit": 1000, "remaining": 874 },
"push": { "used": 73400, "limit": null, "remaining": null },
"in_app": { "used": 0, "limit": 100000, "remaining": 100000 },
"automation_runs": { "used": 388, "limit": 1000, "remaining": 612 },
"contacts": { "used": 41250, "limit": 50000, "remaining": 8750 }
}

Response fields​

FieldTypeDescription
period_startstringStart of the current period (ISO 8601)
period_endstringExclusive end of the period: the instant the next one starts
emails.marketingmeterMarketing emails: campaigns and automations
emails.transactionalmeterTransactional emails, sent through POST /email/send or SMTP
smsmeterSMS credits. One credit is one message part, so a long or non-Latin message uses several.
whatsappmeterWhatsApp messages
pushmeterPush notifications
in_appmeterIn-app messages
automation_runsmeterAutomation runs
contactsmeterContacts in the organization right now, against the plan limit. Not a per-period counter.

Every meter has the same three fields:

FieldTypeDescription
usednumberThe amount used so far
limitnumber | nullThe plan's limit. null means the plan sets no limit.
remainingnumber | nullWhat is left of limit, never below 0. null when there is no limit.

Balances and prices are not part of this response.


Examples​

curl "https://api.arsel.sa/v1/usage" \
-H "Authorization: Bearer be_your_api_key"

Error Responses​

{
"status_code": 401,
"name": "unauthorized",
"message": "Invalid or missing API key"
}