# Four collections paginate, and branding goes wrapped

Four collections now paginate — without `limit` you get the first 20 — and the three branding responses come wrapped in `{success, data, meta}`.

Aug 25, 2026 · Breaking

Two changes that close the last inconsistencies in how the canonical surface answers: three responses that came back bare are now wrapped like every other one, and four collections that grew without a bound now paginate.

Both are visible from outside, so both are written down here even though neither had documented consumers.

## What else changed

- **Three branding responses are now wrapped.** `GET` and `PUT /v1/companies/{company_id}/invoice-customization` and `PUT /v1/companies/{company_id}/logo` were the last operations answering the resource bare. Move your read one level down: `body.logo_url` becomes `body.data.logo_url`. The logo `DELETE` still answers `204` — there is no body to wrap.
- **Four collections now paginate**, with the API's normal `page`/`limit` and its normal defaults: without them you get the first 20 items, not all of them. They are `GET /v1/accounts/{account_id}/members`, `.../members/{member_id}/grants`, `GET /v1/companies/{company_id}/recurring-invoices/{recurring_invoice_id}/history` and `GET /v1/accounts/{account_id}/companies/stats`. The array still travels under the same key — `pagination` is simply added beside it.
- **`stats` pages like its parent list.** Asking `GET /v1/accounts/{account_id}/companies/stats` and `GET /v1/accounts/{account_id}/companies` with the same `page`/`limit` returns the two responses aligned company by company.
- **The deprecated flat aliases are untouched, byte for byte.** In particular `GET /v1/recurring-invoices/{recurring_invoice_id}/history` does **not** paginate: it is frozen as it shipped until its retirement date. Reshaping a route that is going away only breaks the people still on it.
- **Every collection now declares how it is walked.** A list either carries `pagination`, or is marked a closed catalogue, or declares a cursor style — so the absence of `pagination` is no longer something you have to guess about. These are spec annotations: not one byte of any response changes because of them.

## Endpoints

- `GET|PUT /v1/companies/{company_id}/invoice-customization` — Now wrapped in {success, data, meta}
- `PUT /v1/companies/{company_id}/logo` — Now wrapped in {success, data, meta}
- `GET /v1/accounts/{account_id}/members` — Paginated — first 20 by default
- `GET /v1/accounts/{account_id}/members/{member_id}/grants` — Paginated — first 20 by default
- `GET /v1/companies/{company_id}/recurring-invoices/{recurring_invoice_id}/history` — Paginated — first 20 by default; the flat alias is not
- `GET /v1/accounts/{account_id}/companies/stats` — Paginated, aligned with the companies list

## Where to go next

- [Invoice customization](/companies/getCompanyInvoiceCustomization)
- [List members](/members/listAccountMembers)
- [Company stats](/companies/listCompanyStats)

---

Full OpenAPI spec: https://docs.beel.es/api/openapi