List the calling partner's managed client accounts.
const url = 'https://api.siteqwality.com/partner/accounts';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.siteqwality.com/partner/accounts \ --header 'Authorization: Bearer <token>'Unpaged, deliberately. The partner SKU is sold per client and the largest
tier discussed is 50, so a partner’s whole client list is one small page;
adding a pager would be inventing a problem. If a partner ever holds
hundreds of clients this becomes a paged endpoint, with total carried the
way GET /monitors carries it.
Each row’s monitor counts come from the same three tables and the same
state-aware predicates GET /monitors/totals uses, in one query for the
whole list rather than one per client.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”The partner’s live client accounts
Response for GET /partner/accounts.
object
Live clients only, newest first. A soft-deleted client is absent, which
matches the X-SQ-Account switch refusing to open one.
One managed client account, as the console lists it and as create answers.
object
The client’s account id. This is the value the partner sends as
X-SQ-Account to open the client in the ordinary dashboard.
Nullable because accounts.primary_user_id carries no foreign key; see
DbPartnerChildAccount::contact_email.
Convenience mirror of suspended_at.is_some(), so a client list can
render the badge without parsing a timestamp.
Monitor counts for one client, in the same state-aware sense
GET /monitors/totals uses: a paused monitor counts in total and
paused and in neither online nor down.
object
Example generated
{ "clients": [ { "account_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "display_name": "example", "contact_email": "example", "created_at": "2026-04-15T12:00:00Z", "suspended": true, "suspended_at": "2026-04-15T12:00:00Z", "monitors": { "total": 1, "online": 1, "down": 1, "paused": 1 } } ]}Missing or invalid authentication
Caller is not an admin, or the account is not in the partner program
Internal server error