Skip to main content
POST
Call connections.complete_ad_account_step

Authorizations

Authorization
string
header
required

An API key minted at Settings › API & MCP. Send it as Authorization: Bearer <key>. A key carries its holder's own permissions, resolved on every call — revoking a membership closes the key's reach immediately. Keep it in an environment variable (GOOSY_API_KEY), never in a committed file.

Headers

x-request-id
string

Your own id for this request, echoed back and recorded on the audit trail. 1–128 characters from A–Z a–z 0–9 . _ : -, starting with a letter or digit; anything else is replaced by a generated id.

Maximum string length: 128

Body

application/json
platform
enum<string>
required

Which advertising platform's ad account to set up on that platform's own account — the customer owns the account and grants us access to it. The allowed values are the enum's; do not offer a platform outside it.

Available options:
meta,
google,
tiktok,
linkedin
step_key
string
required

The step to mark, taken VERBATIM from connections.ad_account_status' steps list. It is verified against the platform's own step catalog before anything is stored, so an invented or stale key refuses rather than being recorded.

external_account_id
string | null

The operator's OWN ad account id, on the ONE step that asks for it (on TikTok, 'Come back and confirm' asks for the advertiser ID). Pass it only when they have told you the id; any other step refuses it rather than silently dropping it. NEVER pass a password, token or API key here; this field is an account identifier only.

workspace
string

Which workspace to run in — its slug. Omit to use your default. With more than one reachable workspace and no default, the call is refused and the choices are listed.

Minimum string length: 1

Response

The call was admitted and dispatched. ok says whether the tool succeeded — a refusal the tool itself produced is still a 200, exactly as it is a successful JSON-RPC result over MCP.

The tool ran and answered.

ok
boolean
required
platform
enum<string>
required
Available options:
meta,
google,
tiktok,
linkedin
grant_state
enum<string>
required
Available options:
not_started,
awaiting_customer_creation,
awaiting_authorization,
awaiting_platform_access,
request_issued,
awaiting_customer_accept,
active,
revoked,
failed
status_sentence
string | null
required
external_account_id
string | null
required
next_step_key
string | null
required
next_step_title
string | null
required
steps
object[]
required
workspace
string
required

The slug of the workspace this call ran in.

working_in
object
required

Which workspace this call ran in, and how that was decided. Present on every workspace-scoped result.