---
title: "Call assistant_settings.status"
method: POST
path: "/api/v1/tools/assistant_settings.status"
tags: ["assistant_settings"]
---

# Call assistant_settings.status

`POST /api/v1/tools/assistant_settings.status`

## Request

- Base URL: `https://app.goosybear.ai`
- URL: `https://app.goosybear.ai/api/v1/tools/assistant_settings.status`
- Auth: HTTP bearer

Say how the assistant is set up for this account — 'why is Goosy behaving like this?', 'what instructions does it have?', 'what are my assistant settings?'.  Read which agents this account has standing instructions for (not the wording) and the assistant preferences in effect, with the layer each value came from. Use it to explain why the assistant is behaving as it is. You cannot change an instruction or a preference. Not for the member's own look and tier — that is `shell.describe_settings`.

## Headers

- `x-request-id` string

## Request body

- object

## Response `200`

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.

- union
  - object: The tool ran and answered.
    - `ok` true, required
    - `agents` object[], required
      - `agent_key` string, required
      - `label` string, required
      - `instructions_set` boolean, required
      - `instructions_length` integer, required
    - `agents_instructed` integer, required
    - `preferences` object[], required
      - `key` string, required
      - `value` union, required
        - string
        - number
        - boolean
      - `source_layer` string, nullable, required
    - `preferences_are_defaults` boolean, required
  - ToolRefusal: A call that was admitted and dispatched, and did not succeed.
    - `ok` false, required
    - `code` string, required: The typed reason — e.g. `workspace_ambiguous`, `invalid_arguments`, or the tool's own failure code.
    - `message` string, required: A sentence a person can act on.
    - `workspaces` string[]: On a workspace refusal: the slugs this key may pass as `workspace`.
    - `issues` object[]: On `invalid_arguments`: which fields failed, and why.
      - `path` string, required
      - `message` string, required
    - `path` string: On an authoring refusal: where in your call's input it points, e.g. `steps.<key>.params.<field>`.
    - `fix` string: On an authoring refusal: the change to your call that would pass.
    - `instruction` string: On an authoring refusal: what to do next with it.

## Other responses

- `400`: The request could not be used: the body is present but not a JSON object (`tenant_api.malformed_body`); it is a top-level array carrying more messages than this endpoint accepts (`tenant_mcp.batch_too_large`); or the `Idempotency-Key` header is malformed (`tenant_api.idempotency_key_invalid`), disagrees with the body's `idempotency_key` (`tenant_api.idempotency_key_conflict`), or was sent to an action that cannot replay a retry (`tenant_api.idempotency_unsupported`). Nothing ran.
- `401`: No bearer credential, or one that did not resolve. Deliberately ONE undifferentiated answer for absent / unknown / revoked / expired, so the endpoint is never an oracle over the key space.
- `403`: The credential is good but the surface is not open to it — the platform or account API switch is off, or the holder lacks the `api.access` capability. The `code` says which.
- `404`: No such tool. The body names no tool and is identical for every unrecognised name.
- `429`: Over this key's per-minute cap. Carries `Retry-After` and `error.retry_after_seconds`.

---

[API](https://skmtc.dev/goosybear/apis/goosy-bear-api.md) · [All operations](https://skmtc.dev/goosybear/apis/goosy-bear-api/llms.txt) · [OpenAPI document](https://skmtc.dev/goosybear/apis/goosy-bear-api/revisions/6d82fb124064?raw)
