> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erdo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Lists the advertising accounts this organization's connected integrations can


> act on: provider, account id, name, currency, reporting timezone, and whether the account is a manager (MCC).

Every provider read takes an account id first, and until this nothing published named one — so a consumer could read an organization's campaigns and their spend and still not be able to run a single provider query. Address reads to an operating account: a query aimed at a manager returns nothing rather than failing, which reads as an account with no advertising.




## OpenAPI

````yaml /api/openapi.json get /v1/ad-accounts
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, and experiments. Authenticate with
    a Bearer API key (erdo_api_...) or scoped token (erdo_token_...).
  version: '2026-07-29'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/ad-accounts:
    get:
      summary: >
        Lists the advertising accounts this organization's connected
        integrations can
      description: >
        act on: provider, account id, name, currency, reporting timezone, and
        whether the account is a manager (MCC).


        Every provider read takes an account id first, and until this nothing
        published named one — so a consumer could read an organization's
        campaigns and their spend and still not be able to run a single provider
        query. Address reads to an operating account: a query aimed at a manager
        returns nothing rather than failing, which reads as an account with no
        advertising.
      operationId: GET:mcp.ListAdAccountsAPI
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  ad_accounts:
                    items:
                      $ref: '#/components/schemas/mcp.AdAccount'
                    type: array
                  unavailable:
                    description: >
                      listed, with the reason. A provider whose token has
                      expired must not silently shrink the list: a caller
                      comparing this against the campaigns it can see would
                      conclude the account had been disconnected.
                    items:
                      $ref: '#/components/schemas/mcp.AdAccountProblem'
                    title: >
                      unavailable names the providers that are connected but
                      could not be
                    type: array
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    mcp.AdAccount:
      properties:
        account_id:
          description: >
            formatting — a Google Ads customer id as ten digits and no dashes.
            This is the value a provider read or an external ref names.
          title: |
            account_id is the provider's own identifier for the account, with no
          type: string
        currency_code:
          description: >
            before comparing spend across accounts, which are not required to
            match.
          title: >
            currency_code is the currency the account reports spend in. Worth
            reading
          type: string
        is_manager:
          description: >
            accounts and holds no campaigns itself. A query aimed at a manager
            returns nothing rather than failing, so it reads as an account with
            no advertising. Address reads to an operating account.
          title: |
            is_manager marks a manager (MCC) account: one that administers other
          type: boolean
        name:
          description: |
            account is meant. Never used to identify one.
          title: >
            name is the account's own descriptive name, for showing a person
            which
          type: string
        provider:
          title: >
            provider is the integration the account belongs to, e.g.
            "google_ads".
          type: string
        time_zone:
          description: >
            provider's "yesterday" falls, so anything comparing against a daily
            figure has to use it rather than the reader's own.
          title: >
            time_zone is the account's own reporting timezone. It decides where
            a
          type: string
      title: >
        One advertising account the organization's connected integrations can
        reach.
      type: object
    mcp.AdAccountProblem:
      properties:
        provider:
          type: string
        reason:
          type: string
      title: |
        One connected provider that could not be listed, and why.
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````