Statsig Settings API

The Settings API from Statsig — 4 operation(s) for settings.

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /console/v1/settings/project Get project settings · Get Project Settings #
Ask an LLM
“What is my project's visibility and default unit type?”
“Can I read the general project settings?”
Tell an agent
Show my project settings.
Get the project name, visibility and default unit type.
POST /console/v1/settings/project Update project settings · Update Project Settings #
Ask an LLM
“How do I rename the project or change its visibility?”
“Can I change the default unit type used for new gates and experiments?”
Tell an agent
Set the project name to {name} and visibility to {visibility}.
Update project {name} with visibility {visibility} and default unit type {default_unit_type}.
GET /console/v1/settings/reviews Get review requirement settings · Get Reviews Settings #
Ask an LLM
“Are config and metric reviews required in my project?”
“Do only verified metrics need review?”
Tell an agent
Show the reviews settings.
Check which changes require review in this project.
POST /console/v1/settings/reviews Update review requirement settings · Update Reviews Settings #
Ask an LLM
“How do I require reviews on every config change?”
“Can I require metric reviews only for verified metrics?”
Tell an agent
Set config reviews required {is_config_review_required}, metric reviews {is_metric_review_required}, verified-only {is_metric_review_required_on_verified_only}.
Require source reviews {is_whn_source_review_required} in our warehouse native project.
GET /console/v1/settings/roles Get the default project role setting · Get Roles Settings #
Ask an LLM
“What role do new members get by default?”
“Which default project role is configured?”
Tell an agent
Show the roles settings.
Tell me the default role assigned to new project members.
POST /console/v1/settings/roles Set the default project role · Update Roles Settings #
Ask an LLM
“How do I make new members start as Read Only?”
“Can I change the role newcomers are assigned automatically?”
Tell an agent
Set the default project role to {default_project_role}.
Make {default_project_role} the role every new member gets.
GET /console/v1/settings/teams Get team requirement settings · Get Teams Settings #
Ask an LLM
“Is a team required on every new config?”
“What are the project's team settings?”
Tell an agent
Show the teams settings.
Check whether new configs must have a team.
POST /console/v1/settings/teams Require teams on new configs · Update Teams Settings #
Ask an LLM
“How do I force every new config to have an owning team?”
“Can I turn off the team requirement for configs?”
Tell an agent
Set require teams on configs to {require_teams_on_configs}.
Turn the team-on-every-config rule {require_teams_on_configs}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/statsig:statsig-settings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

statsig-settings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Console Settings API
  description: The "Console API" is the CRUD API for performing the actions offered on console.statsig.com without needing to go through the web UI.
  version: 20240601.0.0
  contact: {}
servers:
- url: https://statsigapi.net
tags:
- name: Settings
paths:
  /console/v1/settings/project:
    get:
      summary: Get Project Settings
      parameters: []
      responses:
        '200':
          description: Get Project Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsProjectContractDto'
                example:
                  message: Settings read successfully.
                  data:
                    name: Test Project
                    visibility: CLOSED
                    default_unit_type: user_id
              example:
                message: Settings read successfully.
                data:
                  name: Test Project
                  visibility: CLOSED
                  default_unit_type: user_id
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: getConsoleV1SettingsProject
      x-operation-id-source: derived
    post:
      summary: Update Project Settings
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsProjectContractDto'
      responses:
        '200':
          description: Update Project Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsProjectContractDto'
                example:
                  message: Settings read successfully.
                  data:
                    name: Test Project
                    visibility: closed
                    default_unit_type: stable_id
              example:
                message: Settings read successfully.
                data:
                  name: Test Project
                  visibility: closed
                  default_unit_type: stable_id
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: postConsoleV1SettingsProject
      x-operation-id-source: derived
  /console/v1/settings/reviews:
    get:
      summary: Get Reviews Settings
      parameters: []
      responses:
        '200':
          description: Get Reviews Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsReviewsContractDto'
                example:
                  message: Settings read successfully.
                  data:
                    is_config_review_required: true
                    is_metric_review_required: true
                    is_metric_review_required_on_verified_only: false
              example:
                message: Settings read successfully.
                data:
                  is_config_review_required: true
                  is_metric_review_required: true
                  is_metric_review_required_on_verified_only: false
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: getConsoleV1SettingsReviews
      x-operation-id-source: derived
    post:
      summary: Update Reviews Settings
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsReviewsContractDto'
      responses:
        '200':
          description: Update Reviews Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsReviewsContractDto'
                example:
                  message: Settings updated successfully.
                  data:
                    is_config_review_required: true
                    is_metric_review_required: true
                    is_metric_review_required_on_verified_only: true
              example:
                message: Settings updated successfully.
                data:
                  is_config_review_required: true
                  is_metric_review_required: true
                  is_metric_review_required_on_verified_only: true
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: postConsoleV1SettingsReviews
      x-operation-id-source: derived
  /console/v1/settings/roles:
    get:
      summary: Get Roles Settings
      parameters: []
      responses:
        '200':
          description: Get Roles Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsRolesContractDto'
                example:
                  message: Settings read successfully.
                  data:
                    default_project_role: Member
              example:
                message: Settings read successfully.
                data:
                  default_project_role: Member
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: getConsoleV1SettingsRoles
      x-operation-id-source: derived
    post:
      summary: Update Roles Settings
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsRolesContractDto'
      responses:
        '200':
          description: Update Roles Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsRolesContractDto'
                example:
                  message: Settings updated successfully.
                  data:
                    default_project_role: Read Only
              example:
                message: Settings updated successfully.
                data:
                  default_project_role: Read Only
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: postConsoleV1SettingsRoles
      x-operation-id-source: derived
  /console/v1/settings/teams:
    get:
      summary: Get Teams Settings
      parameters: []
      responses:
        '200':
          description: Get Teams Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsTeamsContractDto'
                example:
                  message: Settings read successfully.
                  data:
                    require_teams_on_configs: true
              example:
                message: Settings read successfully.
                data:
                  require_teams_on_configs: true
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: getConsoleV1SettingsTeams
      x-operation-id-source: derived
    post:
      summary: Update Teams Settings
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsTeamsContractDto'
      responses:
        '200':
          description: Update Teams Settings Response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SingleDataResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/SettingsTeamsContractDto'
                example:
                  message: Settings updated successfully.
                  data:
                    require_teams_on_configs: false
              example:
                message: Settings updated successfully.
                data:
                  require_teams_on_configs: false
        '400':
          description: Invalid request. Please check the request input and try again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 400
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Request:
                  value:
                    status: 400
                    message: Invalid request. Please check the request input and try again.
        '401':
          description: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    enum:
                    - 401
                  message:
                    type: string
                required:
                - status
                - message
              examples:
                Invalid Endpoint:
                  value:
                    status: 401
                    message: 'This endpoint only accepts an active CONSOLE key, but an invalid key was sent. Key: console-xxxXXXxxxXXXxxx'
      tags:
      - Settings
      security:
      - STATSIG-API-KEY: []
      operationId: postConsoleV1SettingsTeams
      x-operation-id-source: derived
components:
  schemas:
    SettingsReviewsContractDto:
      type: object
      properties:
        is_config_review_required:
          type: boolean
          description: Whether config reviews are required.
        is_metric_review_required:
          type: boolean
          description: Whether metric reviews are required.
        is_metric_review_required_on_verified_only:
          type: boolean
          description: Whether metric reviews are only required for verified metrics.
        is_whn_analysis_only_review_required:
          type: boolean
          description: Whether analysis-only experiment reviews are required. Only applicable to WHN projects.
        is_whn_source_review_required:
          type: boolean
          description: Whether metric/assignment/entity property source reviews are required. Only applicable to WHN projects.
      required:
      - is_config_review_required
      - is_metric_review_required
      - is_metric_review_required_on_verified_only
    SingleDataResponse:
      type: object
      properties:
        message:
          type: string
          description: A simple string explaining the result of the operation.
        data:
          type: object
          description: A single result.
      required:
      - message
      - data
    SettingsRolesContractDto:
      type: object
      properties:
        default_project_role:
          type: string
          description: The name of the default project role. This is the role that will be initially assigned to new users joining the project.
      required:
      - default_project_role
    SettingsProjectContractDto:
      type: object
      properties:
        name:
          type: string
          description: The name of the project.
        visibility:
          type: string
          enum:
          - OPEN
          - CLOSED
          - EXTERNAL
          description: The visibility type of the project.
        default_unit_type:
          type: string
          description: The default unit ID type of the project for newly created gates, experiments, and metrics. If not provided, there will be no default unit type.
      required:
      - name
      - visibility
    SettingsTeamsContractDto:
      type: object
      properties:
        require_teams_on_configs:
          type: boolean
          description: Whether a team is required on each new config.
      required:
      - require_teams_on_configs
  securitySchemes:
    STATSIG-API-KEY:
      type: apiKey
      name: STATSIG-API-KEY
      in: header