What every call has in common
- One address per action, under
https://app.goosybear.ai/api/v1/tools/. POSTwith a JSON object of arguments — send{}when an action takes none.- A bearer key in the
Authorizationheader, on every request. okin the body says whether the action succeeded. A call that reaches the service answers200; an action that declines still answers200with"ok": falseand a reason, so branch onok, not on the status code.
Actions that spend credits take two calls
An action that SPENDS CREDITS will not run in a single call, by design. The first call answers"status": "confirmation_required" with a one-sentence
summary of what it would do and a confirmation_id, and charges nothing. Send
that id back on a second call to actually run it — there is no way around it.
Each such action says so on its own reference page; the rest run on one call.
The same actions over MCP
Each action is also an MCP tool with the same name, the same arguments and the same answers. If you are connecting an assistant rather than writing code, start at Connect an assistant instead.Beta
The API is in beta. Addresses, request shapes and response shapes can still change, and every response carries anx-goosy-api: beta header for as long as
that is true. Pin the version of the description you generated code against,
and re-generate when it changes.
Refusals
Refusals carry a machine-readablecode and a plain-language message. The
ones you will meet most: