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

# What switching a feature would do

> A dry run of PUT /api/v1/features/{id}: the projects it would turn on or off and, for what reaches outside the admin's view (API keys in use, share links, portals and sites, public BrandHub listings, counting that can't be made up later, the server's own warning), what will happen, counted. Nothing changes. Admin there.

Any caller; the scope needed is checked on what it acts on.



## OpenAPI

````yaml /openapi.json get /api/v1/features/{id}/impact
openapi: 3.1.0
info:
  title: artbucket
  version: '1'
  description: >-
    Agent-first asset management. The web UI is built on this API and nothing
    else, beside signing in at /api/auth. Send `Authorization: Bearer <key>`: a
    key works in one project with one scope, and scopes are a ladder: read <
    propose < write < admin. People signed in to the app carry a session cookie
    instead, and their scope is what their grants add up to: on the
    organization, the project, or single collections and assets. A scope shown
    as needed on the project is also enough on the one collection or asset a
    route acts on. Agents (MCP at POST /api/v1/mcp) usually get `propose`: what
    they add waits for a human.
servers:
  - url: http://localhost:3000
security:
  - bearer: []
  - session: []
  - {}
paths:
  /api/v1/features/{id}/impact:
    parameters:
      - name: id
        in: path
        required: true
        description: e.g. portals
        schema:
          type: string
    get:
      summary: What switching a feature would do
      description: >-
        A dry run of PUT /api/v1/features/{id}: the projects it would turn on or
        off and, for what reaches outside the admin's view (API keys in use,
        share links, portals and sites, public BrandHub listings, counting that
        can't be made up later, the server's own warning), what will happen,
        counted. Nothing changes. Admin there.


        Any caller; the scope needed is checked on what it acts on.
      parameters:
        - name: context
          in: query
          schema:
            type: string
            enum:
              - organization
              - project
            default: organization
          description: Where
        - name: state
          in: query
          schema:
            type: string
            enum:
              - 'on'
              - 'off'
              - projects
          description: The change to weigh (required)
      responses:
        '200':
          description: What it would do
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      changes:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        description: How many projects it turns on or off
                      confirm:
                        type: boolean
                        description: >-
                          Whether to ask before doing it: what it does reaches
                          outside, or overrides projects' own choice
                      title:
                        type: string
                        description: The question to ask, e.g. Turn off Portals and sites?
                      says:
                        type: array
                        items:
                          type: string
                        description: >-
                          What will happen, a sentence each: the projects it
                          changes, and what reaches outside, counted
                      action:
                        type: string
                        description: The confirming button's label
                    required:
                      - changes
                      - confirm
                      - title
                      - says
                      - action
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        default:
          description: An error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      detail: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: 'An API key: ab_...'
    session:
      type: apiKey
      in: cookie
      name: better-auth.session_token
      description: Signed in, at /api/auth

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.