> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goosybear.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Call pages.capabilities.configure

> Propose or confirm one exact managed policy, grant, standing approval, workflow enrollment, or revocation.

Every result names the workspace it ran in. Say which workspace the answer is about. When the account has more than one workspace and none is selected, this tool refuses with `workspace_ambiguous` and lists the choices — offer them, never pick one.



## OpenAPI

````yaml /openapi.json post /api/v1/tools/pages.capabilities.configure
openapi: 3.1.0
info:
  title: Goosy Bear API
  version: 1.0.0-beta
  summary: Manage workspace content, projects, Data tables, Pages, library and credits.
  description: >-
    BETA. This API is in beta: paths, request shapes and response envelopes may
    change, and every response carries an `x-goosy-api: beta` header for as long
    as that is true. Pin the OpenAPI document you generated against and
    re-generate when it changes.
servers:
  - url: https://app.goosybear.ai
    description: Production
security:
  - tenantApiKey: []
paths:
  /api/v1/tools/pages.capabilities.configure:
    post:
      tags:
        - pages
      summary: Call pages.capabilities.configure
      description: >-
        Propose or confirm one exact managed policy, grant, standing approval,
        workflow enrollment, or revocation.


        Every result names the workspace it ran in. Say which workspace the
        answer is about. When the account has more than one workspace and none
        is selected, this tool refuses with `workspace_ambiguous` and lists the
        choices — offer them, never pick one.
      operationId: call_pages_capabilities_configure
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                configuration:
                  anyOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: policy
                        policy:
                          anyOf:
                            - type: object
                              properties:
                                scope_kind:
                                  type: string
                                  const: account
                                workspace_id:
                                  type: 'null'
                                project_board_id:
                                  type: 'null'
                                policy_id:
                                  anyOf:
                                    - type: string
                                      format: uuid
                                    - type: 'null'
                                operation_keys:
                                  type: array
                                  items:
                                    type: string
                                    enum:
                                      - pages.ai.generate_text
                                      - web.search
                                      - web.read
                                      - web.image_search
                                      - images.acquire_remote
                                      - images.generate
                                      - images.iterate
                                      - workflow.invoke
                                      - workflow.status
                                  minItems: 1
                                allowed_tiers:
                                  type: array
                                  items:
                                    type: string
                                    minLength: 1
                                default_tier:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                    - type: 'null'
                                limits:
                                  type: object
                                  properties:
                                    max_input_bytes:
                                      type: integer
                                      exclusiveMinimum: 0
                                    max_output_tokens:
                                      type: integer
                                      exclusiveMinimum: 0
                                    max_search_queries:
                                      type: integer
                                      minimum: 0
                                    max_search_results:
                                      type: integer
                                      minimum: 0
                                    max_tool_calls:
                                      type: integer
                                      minimum: 0
                                    max_concurrent_requests:
                                      type: integer
                                      exclusiveMinimum: 0
                                  required:
                                    - max_input_bytes
                                    - max_output_tokens
                                    - max_search_queries
                                    - max_search_results
                                    - max_tool_calls
                                    - max_concurrent_requests
                                  additionalProperties: false
                                enabled:
                                  type: boolean
                                activate:
                                  type: boolean
                              required:
                                - scope_kind
                                - workspace_id
                                - project_board_id
                                - policy_id
                                - operation_keys
                                - allowed_tiers
                                - default_tier
                                - limits
                                - enabled
                                - activate
                              additionalProperties: false
                            - type: object
                              properties:
                                scope_kind:
                                  type: string
                                  const: project
                                workspace_id:
                                  type: string
                                  format: uuid
                                project_board_id:
                                  type: string
                                  format: uuid
                                policy_id:
                                  anyOf:
                                    - type: string
                                      format: uuid
                                    - type: 'null'
                                operation_keys:
                                  type: array
                                  items:
                                    type: string
                                    enum:
                                      - pages.ai.generate_text
                                      - web.search
                                      - web.read
                                      - web.image_search
                                      - images.acquire_remote
                                      - images.generate
                                      - images.iterate
                                      - workflow.invoke
                                      - workflow.status
                                  minItems: 1
                                allowed_tiers:
                                  type: array
                                  items:
                                    type: string
                                    minLength: 1
                                default_tier:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                    - type: 'null'
                                limits:
                                  type: object
                                  properties:
                                    max_input_bytes:
                                      type: integer
                                      exclusiveMinimum: 0
                                    max_output_tokens:
                                      type: integer
                                      exclusiveMinimum: 0
                                    max_search_queries:
                                      type: integer
                                      minimum: 0
                                    max_search_results:
                                      type: integer
                                      minimum: 0
                                    max_tool_calls:
                                      type: integer
                                      minimum: 0
                                    max_concurrent_requests:
                                      type: integer
                                      exclusiveMinimum: 0
                                  required:
                                    - max_input_bytes
                                    - max_output_tokens
                                    - max_search_queries
                                    - max_search_results
                                    - max_tool_calls
                                    - max_concurrent_requests
                                  additionalProperties: false
                                enabled:
                                  type: boolean
                                activate:
                                  type: boolean
                              required:
                                - scope_kind
                                - workspace_id
                                - project_board_id
                                - policy_id
                                - operation_keys
                                - allowed_tiers
                                - default_tier
                                - limits
                                - enabled
                                - activate
                              additionalProperties: false
                      required:
                        - kind
                        - policy
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: grant
                        grant:
                          type: object
                          properties:
                            account_policy_id:
                              type: string
                              format: uuid
                            project_policy_id:
                              anyOf:
                                - type: string
                                  format: uuid
                                - type: 'null'
                            previous_grant_id:
                              anyOf:
                                - type: string
                                  format: uuid
                                - type: 'null'
                            target:
                              anyOf:
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: site
                                    site_id:
                                      type: string
                                      format: uuid
                                    target_board_id:
                                      type: string
                                      format: uuid
                                  required:
                                    - kind
                                    - site_id
                                    - target_board_id
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: workflow
                                    workflow_definition_id:
                                      type: string
                                      format: uuid
                                    workflow_definition_version_id:
                                      type: string
                                      format: uuid
                                    target_board_id:
                                      anyOf:
                                        - type: string
                                          format: uuid
                                        - type: 'null'
                                  required:
                                    - kind
                                    - workflow_definition_id
                                    - workflow_definition_version_id
                                    - target_board_id
                                  additionalProperties: false
                            operation_keys:
                              type: array
                              items:
                                type: string
                                enum:
                                  - pages.ai.generate_text
                                  - web.search
                                  - web.read
                                  - web.image_search
                                  - images.acquire_remote
                                  - images.generate
                                  - images.iterate
                                  - workflow.invoke
                                  - workflow.status
                              minItems: 1
                            allowed_tiers:
                              type: array
                              items:
                                type: string
                                minLength: 1
                            default_tier:
                              anyOf:
                                - type: string
                                  minLength: 1
                                - type: 'null'
                            limits:
                              type: object
                              properties:
                                max_input_bytes:
                                  type: integer
                                  exclusiveMinimum: 0
                                max_output_tokens:
                                  type: integer
                                  exclusiveMinimum: 0
                                max_search_queries:
                                  type: integer
                                  minimum: 0
                                max_search_results:
                                  type: integer
                                  minimum: 0
                                max_tool_calls:
                                  type: integer
                                  minimum: 0
                                max_concurrent_requests:
                                  type: integer
                                  exclusiveMinimum: 0
                              required:
                                - max_input_bytes
                                - max_output_tokens
                                - max_search_queries
                                - max_search_results
                                - max_tool_calls
                                - max_concurrent_requests
                              additionalProperties: false
                          required:
                            - account_policy_id
                            - project_policy_id
                            - previous_grant_id
                            - target
                            - operation_keys
                            - allowed_tiers
                            - default_tier
                            - limits
                          additionalProperties: false
                      required:
                        - kind
                        - grant
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: standing_approval
                        standing_approval:
                          type: object
                          properties:
                            grant_id:
                              type: string
                              format: uuid
                            disclosure_summary:
                              type: string
                              minLength: 1
                            expires_at:
                              anyOf:
                                - type: string
                                  format: date-time
                                - type: 'null'
                            standing_automation_id:
                              anyOf:
                                - type: string
                                  format: uuid
                                - type: 'null'
                          required:
                            - grant_id
                            - disclosure_summary
                            - expires_at
                            - standing_automation_id
                          additionalProperties: false
                      required:
                        - kind
                        - standing_approval
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: grant_revoke
                        grant_id:
                          type: string
                          format: uuid
                      required:
                        - kind
                        - grant_id
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: standing_approval_revoke
                        standing_approval_id:
                          type: string
                          format: uuid
                      required:
                        - kind
                        - standing_approval_id
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: workflow_enrollment
                        site_grant_id:
                          type: string
                          format: uuid
                        workflow_grant_id:
                          type: string
                          format: uuid
                        standing_automation_id:
                          type: string
                          format: uuid
                        site_standing_approval_id:
                          type: string
                          format: uuid
                        workflow_standing_approval_id:
                          type: string
                          format: uuid
                        previous_enrollment_id:
                          anyOf:
                            - type: string
                              format: uuid
                            - type: 'null'
                      required:
                        - kind
                        - site_grant_id
                        - workflow_grant_id
                        - standing_automation_id
                        - site_standing_approval_id
                        - workflow_standing_approval_id
                        - previous_enrollment_id
                      additionalProperties: false
                confirmation_id:
                  type: string
                  format: uuid
                workspace:
                  type: string
                  minLength: 1
                  description: >-
                    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.
              required:
                - configuration
              additionalProperties: false
      responses:
        '200':
          description: >-
            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.
          headers:
            x-goosy-api:
              description: Present while this API is in beta; the value is `beta`.
              schema:
                type: string
                const: beta
            x-goosy-tool-error:
              description: >-
                `true` when a boundary step refused the call — workspace
                resolution failed or could not be read. A tool that ran and
                returned its own typed `ok: false` reports `false` here.
                **Branch on `ok` in the body for the outcome; this header is the
                transport-level hint.**
              schema:
                type: string
                enum:
                  - 'true'
                  - 'false'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    description: The tool ran and answered.
                    properties:
                      ok:
                        type: boolean
                        const: true
                      state:
                        type: string
                        enum:
                          - confirmation_required
                          - configured
                          - enrollment_pending
                      kind:
                        type: string
                        enum:
                          - policy
                          - grant
                          - standing_approval
                          - grant_revoke
                          - standing_approval_revoke
                          - workflow_enrollment
                      confirmation_id:
                        type: string
                        format: uuid
                      expires_in_seconds:
                        type: integer
                        exclusiveMinimum: 0
                      disclosure_summary:
                        type: string
                      policy_id:
                        type: string
                        format: uuid
                      version_id:
                        type: string
                        format: uuid
                      version:
                        type: integer
                        exclusiveMinimum: 0
                      activated:
                        type: boolean
                      grant_id:
                        type: string
                        format: uuid
                      grant_saved:
                        type: boolean
                      runtime_credential:
                        type: string
                        enum:
                          - ready
                          - not_required
                          - enrollment_pending
                      enrollment_error_code:
                        type: string
                      standing_approval_id:
                        type: string
                        format: uuid
                      enrollment_id:
                        type: string
                        format: uuid
                      workflow_definition_id:
                        type: string
                        format: uuid
                      workflow_definition_version_id:
                        type: string
                        format: uuid
                      service_actor_user_id:
                        type: string
                        format: uuid
                      service_actor_role:
                        type: string
                      changed:
                        type: boolean
                      standing_approvals_revoked:
                        type: integer
                        minimum: 0
                      managed_keys_revoked:
                        type: integer
                        minimum: 0
                      request_replayed:
                        type: boolean
                      workspace:
                        type: string
                        description: The slug of the workspace this call ran in.
                      working_in:
                        type: object
                        properties:
                          label:
                            type: string
                            description: 'The chip words — e.g. "working in: Acme Main".'
                          note:
                            type: string
                            description: >-
                              Why this workspace — e.g. "your default", "this
                              call only".
                          workspace:
                            type: string
                            description: The resolved workspace's slug.
                          source:
                            type: string
                            enum:
                              - call-override
                              - key-pin
                              - stored-default
                              - sole-reachable
                            description: >-
                              Which rung of the R7 precedence resolved the
                              workspace.
                        required:
                          - label
                          - note
                          - workspace
                          - source
                        additionalProperties: false
                        description: >-
                          Which workspace this call ran in, and how that was
                          decided. Present on every workspace-scoped result.
                    required:
                      - ok
                      - kind
                      - state
                      - working_in
                      - workspace
                  - $ref: '#/components/schemas/ToolRefusal'
        '400':
          description: >-
            The request body could not be used: it is present but not a JSON
            object (`tenant_api.malformed_body`), or it is a top-level array
            carrying more messages than this endpoint accepts
            (`tenant_mcp.batch_too_large`). Send the tool's arguments as a JSON
            object, or omit the body entirely.
          headers:
            x-goosy-api:
              description: Present while this API is in beta; the value is `beta`.
              schema:
                type: string
                const: beta
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            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.
          headers:
            x-goosy-api:
              description: Present while this API is in beta; the value is `beta`.
              schema:
                type: string
                const: beta
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            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.
          headers:
            x-goosy-api:
              description: Present while this API is in beta; the value is `beta`.
              schema:
                type: string
                const: beta
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            No such tool. The body names no tool and is identical for every
            unrecognised name.
          headers:
            x-goosy-api:
              description: Present while this API is in beta; the value is `beta`.
              schema:
                type: string
                const: beta
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Over this key's per-minute cap. Carries `Retry-After` and
            `error.retry_after_seconds`.
          headers:
            x-goosy-api:
              description: Present while this API is in beta; the value is `beta`.
              schema:
                type: string
                const: beta
            Retry-After:
              description: Whole seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ToolRefusal:
      type: object
      properties:
        ok:
          type: boolean
          const: false
        code:
          type: string
          description: >-
            The typed reason — e.g. `workspace_ambiguous`, `invalid_arguments`,
            or the tool's own failure code.
        message:
          type: string
          description: A sentence a person can act on.
        workspaces:
          type: array
          items:
            type: string
          description: 'On a workspace refusal: the slugs this key may pass as `workspace`.'
        issues:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              message:
                type: string
            required:
              - path
              - message
            additionalProperties: false
          description: 'On `invalid_arguments`: which fields failed, and why.'
      required:
        - ok
        - code
        - message
      additionalProperties: false
      description: A call that was admitted and dispatched, and did not succeed.
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: >-
                The typed refusal code — e.g. `tenant_mcp.surface_disabled`,
                `tenant_mcp.rate_limited`.
            message:
              type: string
              description: A sentence a person can act on.
            retry_after_seconds:
              type: number
              description: 'On a 429: whole seconds to wait. Mirrors `Retry-After`.'
          required:
            - code
            - message
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        A request the boundary refused before dispatching anything. The same
        shape the MCP endpoint answers its own refusals with, so one client
        branch covers both transports.
  securitySchemes:
    tenantApiKey:
      type: http
      scheme: bearer
      description: >-
        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.

````