List accounts
Overview
Get a paginated list of account companies (bundle_id=3) under the authenticated partner (bundle_id=1), with owner email, status, location/active-plan counts, and current plan name. Pass call_for=dropdown for a flat label/value list instead.
Prerequisites
- A bearer token from your partner account.
- Only Partner tokens can call this endpoint.
- Contact support if you need help generating or obtaining a token.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/partner/account/list
Authentication
- Requires a bearer token in the
Authorization: Bearer <bearer-token>header. - Who can call it: Partner tokens.
- Authentication is under the
partner/accountgroup. - The controller requires the caller's company to be
bundle_id == 1(partner); otherwise it returns 403. - Scope is limited to the partner's own account tree, further narrowed by the user's
assign_brand/assign_locationassignments. - Optional
account_id/client_account_idfilters are re-checked by an ownership check. A value outside the partner's accounts yields an empty page.
Rate limit
- No rate limit.
Query parameters
- Query:
limit(integer, optional) — page size, default 10. - Query:
page(integer, optional) — page number. - Query:
sort_field(string, optional) — one ofcompany_name,email,status,plan_name; defaultcompany_name. - Query:
sort_by(string, optional) —asc/ASC/desc/DESC; defaultASC. - Query:
search_field(string, optional) —company_name,email,status, orplan_name(pairs withsearch_value). - Query:
search_value(string, optional) — like-match value (exact status_id whensearch_field=status). - Query:
active_plan(in:0,1, optional) — when 1, restrict to accounts with an active store plan. - Query:
call_for(string, optional) —dropdownreturns a flat label/value list (prepends{"label":"All","value":""}when more than one account and nosearch_valueis supplied). - Query:
account_id(integer, optional) — filter to one account by internal company id; must belong to the auth partner. - Query:
client_account_id(string, max 255, optional) — partner-supplied external id, resolved to the account within the partner only.
Response
id(integer) — account company id.company_name(string) — account name.email(string) — owner user email.account_status(string) —Active/Inactive/Paused(derived from person.status_id).status(integer) — raw person.status_id.total_locations(integer) — count of all store ids under the account.store_ids(integer[]) — active/pending store ids.total_active_plan(integer) — distinct stores with active/expired store_plans.plan_name(string|null) — account-level plan name.client_account_id(string|null) — partner-supplied external id.sub_partner_name(string|null) — owning sub-partner's name when the account belongs to one, elsenull.
When call_for=dropdown, the data envelope wraps { "status": "success", "response": [{"label": "...", "value": "..."}, ...] }. An All entry is prepended only when more than one account is returned and no search_value was supplied.
200 Paginated · 200
200{
"data": [
{
"id": 7,
"company_name": "Acme Brand",
"email": "[email protected]",
"account_status": "Active",
"status": 1,
"total_locations": 5,
"store_ids": [15, 16, 17],
"plan_name": "Pro Monthly"
}
],
"links": {
"first": "https://production-api.shoutaboutus.com/api/v1/partner/account/list?page=1",
"last": "https://production-api.shoutaboutus.com/api/v1/partner/account/list?page=3",
"prev": null,
"next": "https://production-api.shoutaboutus.com/api/v1/partner/account/list?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 3,
"path": "https://production-api.shoutaboutus.com/api/v1/partner/account/list",
"per_page": 10,
"to": 10,
"total": 24
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
403 | The token is valid but the record sits outside your account |
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/partner/account/list?limit=10&page=1&sort_field=company_name&sort_by=ASC" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 10 days ago
Did this page help you?
