# Map a provider account to a client

> `POST` `/v1/client-integration-accounts`

URL: https://www.agencytitan.com/docs/tag/integration-catalogs/POST/v1/client-integration-accounts

Operation ID: `integration_catalogs_map_client_integration_account`

Tag: [integration_catalogs](https://www.agencytitan.com/docs/tag/integration-catalogs.md)

## Description

Map an already discovered provider account to a client. Use for requests such as "map account", "map this account to the client", "link google ads account to client", "assign ads account to client", or "connect sub-account to client".

Discover candidates first with list_provider_subaccounts, the Google Ads accessible-customers listing, or list_client_integration_accounts. When several candidate accounts match, ask the user which account to map before calling. Mapping is not destructive and needs no approval. This tool refuses accounts that are not visible in the selected credential's discovered account list.

## Parameters

_None_

## Request body

- Required: yes
- Content-Type: `application/json`
  - Type: `object`
  - Properties:
    - `client_id` (`string`, required) — Client ID returned by find_clients.
    - `credential_id` (`string`) — Required only when the client has more than one active credential for this integration.
    - `external_account_id` (`string`, required) — Provider account ID. Google Ads CIDs may include dashes.
    - `integration_key` (`string`, required) — Integration key, such as google_ads or highlevel.
    - `label` (`string`) — Optional client-facing label for this mapping.
    - `set_default` (`boolean`) — Set this mapping as the default. Defaults to false.

## Responses

- `200` (`application/json`): Successful response.
  - Type: `object`
  - Properties:
    - `data` (`anyOf`, required)
- `400` (`application/json`): Request validation failed (unknown or out-of-range parameters/properties are rejected).
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `401` (`application/json`): Missing, invalid, expired, or revoked bearer token.
  - Type: `object`
  - Properties:
    - `error` (`string`, required)
    - `error_description` (`string`, required)
- `403` (`application/json`): The authenticated user does not have permission for this operation.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `404` (`application/json`): The requested resource was not found.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `409` (`application/json`): The request conflicts with an existing record or partially applied.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `429` (`application/json`): Per-tenant rate limit exceeded (600 requests/minute across all /v1 REST endpoints). The Retry-After header indicates how many seconds to wait.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `500` (`application/json`): An unexpected internal error occurred.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)

## Authentication

- `bearerAuth` — http (bearer) — All /v1 endpoints (except `/v1/openapi.json` and `/v1/llms.txt`) require a bearer token. Two equal first-class paths: (1) an OAuth 2.0 access token from the au…

## Useful links

- Interactive page: https://www.agencytitan.com/docs/tag/integration-catalogs/POST/v1/client-integration-accounts
- API reference home: https://www.agencytitan.com/docs/
- Tag page: https://www.agencytitan.com/docs/tag/integration-catalogs.md
- This operation as Markdown: https://www.agencytitan.com/docs/tag/integration-catalogs/POST/v1/client-integration-accounts.md
- OpenAPI JSON: https://www.agencytitan.com/docs/openapi.json
- Full API Markdown: https://api.agencytitan.com/v1/llms.txt
- API keys: https://app.agencytitan.com/settings/api-mcp
