Skip to main content
POST
Call data.query

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
table_id
string<uuid>
required

The table being asked about.

has_value_in
string[]

Only rows that HAVE a value in every one of these columns.

missing_value_in
string[]

Only rows with NO value in any one of these columns — this is how you answer 'which of these have no phone?'.

equals
object

Column key to exact value. Only for columns that exist on the table.

order_by
string

A column key to sort by. Leave it out for the natural order.

descending
boolean

Sort the other way.

limit
integer

How many rows to bring back, at most 100. The total count is always returned whatever this is, so ask for few rows and report the count.

Required range: 1 <= x <= 100
cursor
string
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
table_id
string
required
count_line
string
required
total
number
required
returned
number
required
rows
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.

next_cursor
string