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: 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 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 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 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 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 securitySchemes: STATSIG-API-KEY: type: apiKey name: STATSIG-API-KEY in: header