Skip to main content
POST
Call desk.build_card

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.

Body

application/json
title
string
required

What to call the card — its label on the desk.

Required string length: 1 - 120
brief
string
required

What the card should show, in the member's own words.

Required string length: 1 - 4000
data_table_ids
string<uuid>[]

Every Data table this card may read, and the only ones. Leave it out for a card that reads nothing.

Maximum array length: 8
confirmation_id
string<uuid>

Leave this out on the first call: the answer describes what would be built, charges nothing and hands you an id. Send that id back, unchanged, to actually build it.

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
state
enum<string>
required

confirmation_required — nothing was written and nothing was charged; built — the card exists.

Available options:
confirmation_required,
built
title
string
required

What the card is called.

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.

confirmation_id
string<uuid>

Present only while confirmation is required.

expires_in_seconds
integer

How long that confirmation stays usable.

request_summary
string

Present only while confirmation is required — what will be built, in one sentence, for a person to approve.

card_id
string<uuid>

Present once built — the card's durable identity.

revision
string

Present once built — the build this card is now on.

entry
string

Bundle-relative path of the document the frame loads.

file_count
integer
Required range: x >= 0
bytes
integer
Required range: x >= 0
reads
string[]

What this build declared it may read, and the only ones.

door_url
string | null

Present once built — a short-lived address that renders this card. Null when one could not be signed for this environment; the card is still built. Treat it as a secret: it is a bearer capability and it expires.