Skip to main content
POST
Call ads.read_board

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
campaign_id
string

The campaign's id. Leave it out to use the campaign the person is looking at.

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
campaign_id
string
required
campaign_name
string
required
platform
string
required
run
enum<string>
required

waiting_on_the_ideas: the planned ideas wait for a yes (ads.draft_creatives) before any picture is drawn; waiting_on_want_more: the run asks whether to draw more (ads.more or ads.done).

Available options:
not_started,
drawing,
waiting_on_the_ideas,
waiting_on_want_more,
finished,
failed
ideas
string[]
required
ads
object[]
required
daily_budget_cents
integer
required
Required range: x >= 0
ad_count
integer
required
Required range: x >= 0
live
boolean
required
sizes
object
required

The sizes the platform needs for the kept ads, counted from the campaign's own rows: made of needed, and how many are on their way. When made equals needed every size is done — never say the sizes are still open. Sizes not yet made are Goosy's, made at the approve, never the person's.

starts_on
string | null
required
targeting
object
required
platform_campaign
object | null
required
launch
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.