Skip to main content
POST
Call automations.repair_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
board_id
string

The board of the automation to repair. Omit on an automation board — the conversation already knows which one it is on.

Required string length: 1 - 64
step_key
string

The machine key of the step that FAILED. Leave it out to repair the step that failed on the last run; the answer names that step. Call without fix first to read what it was given, what it produced and how it failed.

Required string length: 1 - 64
fix
object

The change to THAT ONE step. Omit on the first call. A field you leave out is left exactly as it is. You may not change the step's key, its kind, what it hands on, any other step, the order, or what starts the automation — a fix that would is REFUSED.

confirmation_id
string<uuid>

Omit to propose: the first call says what would happen, returns a confirmation_id and changes nothing. To go ahead, send the same arguments again with that confirmation_id, on a member's own API key; a service account's key can propose but never confirm.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
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
required
Allowed value: "diagnosis"
board_id
string
required
step_key
string
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.

step_label
string
error_message
string | null
step
object
run_id
string
test_run
boolean
confirmation_id
string<uuid>
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
expires_in_seconds
integer
request_summary
string

What will happen, in one sentence, for a person to approve before confirming.

applies_to_version
integer
expected_latest_version
integer | null
Required range: x > 0
step_before
object
step_after
object
version
integer