---
title: "List partner businesses of the Page"
method: GET
path: "/v1/accounts/{accountId}/business-partners"
tags: ["Accounts"]
---

# List partner businesses of the Page

`GET /v1/accounts/{accountId}/business-partners`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/accounts/{accountId}/business-partners`
- Auth: HTTP bearer

The business portfolios (Meta Business Managers) that may act on the Facebook Page
behind this account, plus the Page's owning portfolio and linked Instagram
professional account. Works on Facebook accounts and on Instagram accounts connected
through Facebook Login.

## Path parameters

- `accountId` string, required

## Response `200`

Page ownership and partners

- object
  - `page` MetaPageOwnership
    - `id` string: Facebook Page id.
    - `name` string
    - `business` object, nullable: Business portfolio that owns the Page; null when the Page is outside any portfolio.
      - `id` string
      - `name` string
    - `instagramBusinessAccount` object, nullable: Instagram professional account linked to the Page; null when none is linked.
      - `id` string
      - `username` string
  - `partners` MetaPagePartner[]
    - `businessId` string
    - `name` string
    - `permittedTasks` string[]: Tasks the partner holds, in the bare spelling the grant takes (ADVERTISE, ANALYZE, MANAGE, ...). Meta reads them back with a PROFILE_PLUS_ prefix, which is stripped here; partners granted in Business Settings may hold tasks beyond the six the grant accepts, such as MANAGE_LEADS or REVENUE.

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: Meta refused: the connecting user lacks business_management or is not an admin of the owning portfolio. Reconnect the account.
- `404`: The account or requested resource was not found or is not accessible. An account ID may have been disconnected and removed. Read GET /v1/accounts for current account IDs.
- `422`: No Facebook Page is linked (Instagram Login account, or no Page selected).
- `429`: The connected account's upstream platform quota is exhausted. Reddit rate-limits per connected Reddit user (1000 requests per 10-minute window), and that budget is shared by every operation using that account. Retry after the window resets rather than retrying immediately; repeated calls while exhausted do not succeed and keep the budget spent. Google Ads: writes and reports run on one developer token shared by every Google Ads account on Zernio. The token holds Standard access (no daily operations cap), so this only happens when Google throttles the token or your ad account. The envelope has `code: rate_limited`, `platform: google`, `details.quotaScope: DEVELOPER` (`ACCOUNT` when it is your own ad account's quota), `details.resetsAt` (ISO instant when Google accepts requests again) and `Retry-After` counting down to it. Retrying earlier cannot succeed. Meta ads: every Meta throttle (codes 4, 17, 32, 613 and the business-use-case codes 80000-80014) returns 429 `rate_limited`, even when Meta itself answers HTTP 400. `Retry-After` comes from Meta's `x-business-use-case-usage` estimate when Meta sends one, otherwise it is Meta's documented 60-second minimum (30 seconds for the one-write-per-30-seconds limit on a single object). Pinterest ads: Pinterest rate-limits per user and app, per category (ads_read, ads_write, ads_analytics). `Retry-After` comes from Pinterest's `x-ratelimit-reset` when it sends one, otherwise 60 seconds.

## Changes

- **2026-10-06** `f8c8f34fb41a`: 4 warning
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `400`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `401`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `404`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `429`
- **2026-10-02** `d556591af3f6`: 10 info
  - added the optional property `code` to the response with the `401` status
  - added the optional property `details` to the response with the `401` status
  - added the optional property `docUrl` to the response with the `400` status
  - added the optional property `docUrl` to the response with the `401` status
  - …6 more
- **2026-09-30** `16a7b9d5373e`: 3 info
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `400`
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `404`
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `429`
- **2026-09-29** `698a0d89ab62`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/:accountId/business-partners/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/4e74db179e73?raw)
