For partners
Billing and usage
Read the usage counts you are billed on, per org, per event type or per day, and watch plan limits.
The API reports counts, never content. They are the numbers your billing with WaSparks is based on, and you can use the same numbers to bill your own clients.
Usage counts
GET /v1/partner/usage?from=2026-11-01&to=2026-11-14&group_by=org
GET /v1/partner/orgs/{orgId}/usage?from=2026-11-01&to=2026-11-14An org with its own key, or a partner key with X-Tenant-Id, reads its own numbers with GET /v1/usage.
| Parameter | Meaning |
|---|---|
from, to |
First and last day counted, in UTC, both included. By default the last 30 days. At most 400 days. |
group_by |
event_type (the default), day, or org on the partner-wide call. |
{
"from": "2026-11-01",
"to": "2026-11-14",
"group_by": "day",
"data": [
{
"org_id": null,
"day": "2026-11-01",
"totals": {
"POST_PUBLISHED": 12, "TARGET_PUBLISHED": 20, "COMMENT_RECEIVED": 40, "COMMENT_SENT": 3,
"MESSAGE_RECEIVED": 8, "MESSAGE_SENT": 5, "ACCOUNT_CONNECTED": 0, "API_CALL": 1904
}
}
],
"limits": [{ "limit": "social_accounts", "used": 3, "max": 10 }]
}- Each row has either
org_idorday, depending ongroup_by. Withevent_type, neither. - Every event type is in
totals, zero included. New types may be added, so ignore ones you do not know. - Days and orgs without activity are left out.
limitsappears only on single-org views.maxisnullfor an unlimited limit.- Today's numbers trail by a few minutes.
The event types:
| Type | Counts |
|---|---|
POST_PUBLISHED |
Posts published. |
TARGET_PUBLISHED |
Targets published: one for each account a post reached. |
COMMENT_RECEIVED, COMMENT_SENT |
Comments that arrived, and replies and comments you sent. |
MESSAGE_RECEIVED, MESSAGE_SENT |
Direct messages in each direction. |
ACCOUNT_CONNECTED |
Accounts connected. |
API_CALL |
One per authenticated Content API request. Partner API calls are not counted. |
An invalid range returns 400 validation_failed: from after to, a range over 400 days, or group_by=org on an org's own usage.
Plan limits
Plan limits are social_accounts, posts_per_month (calendar month, UTC), members and workspaces. Check an org's use with GET /v1/org, which returns plan and usage. At the limit, a call that would add more returns 402 quota_exceeded with limit, used and max. Raise the limit by moving the org to another plan with PATCH /v1/partner/orgs/{orgId}.
You can subscribe to quota.warning, quota.exceeded, org.quota.warning and org.quota.exceeded already, but they are not sent yet. For now, read usage or handle 402.
A daily event
Subscribe your partner webhook to usage.daily_ready and you get one event a day, after the previous UTC day has been counted, with your totals across all orgs:
{
"id": "evt_…",
"type": "usage.daily_ready",
"org_id": null,
"workspace_id": null,
"data": { "day": "2026-11-01", "totals": { "POST_PUBLISHED": 12, "API_CALL": 1904 } }
}That is a good trigger to pull per-org numbers with group_by=org.
Next: Event types