openapi: 3.2.0 info: title: Console Prompts 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: Prompts paths: /console/v1/prompts: get: summary: List Prompts parameters: - name: limit required: false in: query description: Results per page schema: example: 10 oneOf: - type: string - type: number type: integer - name: page required: false in: query description: Page number schema: example: 1 oneOf: - type: string - type: number type: integer responses: '200': description: List Prompts Success content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginationResponseWithMessage' - properties: data: type: array items: $ref: '#/components/schemas/ExternalPromptDto' '404': description: Not Found. The requested resource could not be found. content: application/json: schema: type: object properties: status: type: integer enum: - 404 message: type: string required: - status - message examples: Not Found: value: status: 404 message: Not Found. The requested resource could not be found. tags: - Prompts security: - STATSIG-API-KEY: [] operationId: getConsoleV1Prompts x-operation-id-source: derived post: summary: Create Prompt parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AIConfigCreateDto' responses: '200': description: Create Prompt content: application/json: schema: allOf: - $ref: '#/components/schemas/SingleDataResponse' - properties: data: $ref: '#/components/schemas/ExternalPromptDto' '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' '403': description: Forbidden. The request was valid, but the server is refusing action. You might not have the necessary permissions to access the resource. content: application/json: schema: type: object properties: status: type: integer enum: - 403 message: type: string required: - status - message examples: Forbidden resource: value: status: 403 message: Forbidden. The request was valid, but the server is refusing action. You might not have the necessary permissions to access the resource. tags: - Prompts security: - STATSIG-API-KEY: [] operationId: postConsoleV1Prompts x-operation-id-source: derived /console/v1/prompts/{id}: get: summary: Get Prompt parameters: - name: id required: true in: path description: id schema: type: string responses: '200': description: Get Prompt content: application/json: schema: allOf: - $ref: '#/components/schemas/SingleDataResponse' - properties: data: $ref: '#/components/schemas/ExternalPromptDto' '404': description: Not Found. The requested resource could not be found. content: application/json: schema: type: object properties: status: type: integer enum: - 404 message: type: string required: - status - message examples: Not Found: value: status: 404 message: Not Found. The requested resource could not be found. tags: - Prompts security: - STATSIG-API-KEY: [] operationId: getConsoleV1PromptsById x-operation-id-source: derived patch: summary: Update Prompt (partial) parameters: - name: id required: true in: path description: id schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AIConfigPartialUpdateDto' responses: '200': description: Update Prompt Response content: application/json: schema: allOf: - $ref: '#/components/schemas/SingleDataResponse' - properties: data: $ref: '#/components/schemas/ExternalPromptDto' tags: - Prompts security: - STATSIG-API-KEY: [] operationId: patchConsoleV1PromptsById x-operation-id-source: derived delete: summary: Delete Prompt parameters: - name: id required: true in: path description: id schema: type: string responses: '200': description: Delete Prompt Response content: application/json: schema: properties: message: type: string example: message: AI Config deleted successfully. example: message: AI Config deleted successfully. '404': description: Not Found. The requested resource could not be found. content: application/json: schema: type: object properties: status: type: integer enum: - 404 message: type: string required: - status - message examples: Not Found: value: status: 404 message: Not Found. The requested resource could not be found. tags: - Prompts security: - STATSIG-API-KEY: [] operationId: deleteConsoleV1PromptsById x-operation-id-source: derived /console/v1/prompts/{id}/versions: post: summary: Create Prompt Version parameters: - name: id required: true in: path description: id schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AIConfigVersionCreateDto' responses: '201': description: Create Prompt Version content: application/json: schema: allOf: - $ref: '#/components/schemas/SingleDataResponse' - properties: data: $ref: '#/components/schemas/AIConfigVersionCreateDto' tags: - Prompts security: - STATSIG-API-KEY: [] operationId: postConsoleV1PromptsByIdVersions x-operation-id-source: derived /console/v1/prompts/{id}/versions/{versionId}/start_evals: post: summary: Start Prompt Version Evaluation Job parameters: - name: versionId required: true in: path schema: type: string - name: id required: true in: path description: id schema: type: string responses: '200': description: Start evaluation job for a Prompt Version content: application/json: schema: allOf: - $ref: '#/components/schemas/SingleDataResponse' - properties: data: $ref: '#/components/schemas/ExternalPromptVersionDto' '404': description: Not Found. The requested resource could not be found. content: application/json: schema: type: object properties: status: type: integer enum: - 404 message: type: string required: - status - message examples: Not Found: value: status: 404 message: Not Found. The requested resource could not be found. tags: - Prompts security: - STATSIG-API-KEY: [] operationId: postConsoleV1PromptsByIdVersionsByVersionIdStartEvals x-operation-id-source: derived components: schemas: PaginationResponseWithMessage: type: object properties: message: type: string description: A simple string explaining the result of the operation. data: description: Array of results returned by pagination limit. type: array items: type: object pagination: description: Pagination metadata for checking if there is next page for example. allOf: - $ref: '#/components/schemas/PaginationResponseMetadataDto' required: - message - data - pagination AIConfigCreateDto: type: object properties: name: type: string maxLength: 100 minLength: 3 pattern: ^[a-zA-Z0-9_\-. ]*$ description: Name for the AI Config. example: my_prompt displayName: type: string maxLength: 100 minLength: 3 pattern: ^[a-zA-Z0-9_\-. ]*$ description: Optional display name for the AI Config. description: type: string maxLength: 1000 description: Description for the AI Config. targetApps: oneOf: - type: string - type: array items: type: string description: List of target app names. team: type: string description: Team name. teamID: type: string description: Team ID. tags: type: array items: type: string description: Optional tags to associate with the AI Config. creatorID: type: - string - 'null' owner: type: - object - 'null' properties: ownerID: type: string description: ID of the owner example: abc123 ownerType: type: string description: Type of the owner (e.g., SDK_KEY or USER) example: USER ownerName: type: string description: The name of the owner. This field is optional. example: John Doe ownerEmail: type: string description: The email of the owner. This field is optional. description: Schema for owner data including ID, type, name. example: ownerID: user123 ownerType: USER ownerName: John Doe ownerEmail: owner123@test.com creatorEmail: type: - string - 'null' required: - name AIConfigPartialUpdateDto: type: object properties: description: type: string maxLength: 1000 description: Updated description. targetApps: oneOf: - type: string - type: array items: type: string description: Updated list of target app names. team: type: string description: Updated team name. teamID: type: string description: Updated team ID. 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 ExternalPromptVersionDto: type: object properties: id: type: string name: type: string required: - id - name ExternalPromptDto: type: object properties: id: type: string description: ID name: type: string maxLength: 100 minLength: 3 pattern: ^[a-zA-Z0-9_\-. ]*$ description: The gate display name idType: type: string description: type: string maxLength: 1000 lastModifierID: type: - string - 'null' description: ID of the last modifier. lastModifiedTime: type: - number - 'null' description: Time of the last modification. format: double lastModifierEmail: type: - string - 'null' description: Email of the last modifier. lastModifierName: type: - string - 'null' description: Name of the last modifier. creatorID: type: - string - 'null' createdTime: type: number description: Timestamp when the entity was created. format: double creatorName: type: - string - 'null' description: Name of the creator. creatorEmail: type: - string - 'null' tags: type: array items: type: string targetApps: type: array items: type: string description: List of target applications associated with this configuration. holdoutIDs: type: array items: type: string description: Holdouts applied to this configuration. team: type: - string - 'null' teamID: type: - string - 'null' version: type: number description: Version number format: double required: - id - description - lastModifierID - lastModifiedTime - lastModifierEmail - lastModifierName - createdTime - creatorName AIConfigVersionCreateDto: type: object properties: prompts: type: array items: type: object properties: content: type: string role: type: string enum: - system - user - assistant required: - content - role temperature: type: number format: double model: type: string name: type: string maxLength: 100 minLength: 3 pattern: ^[a-zA-Z0-9_\-. ]*$ description: The Prompt Version display name example: my_config provider: type: string workflow_body: type: object properties: type: type: string enum: - JSON value: type: string required: - type - value workflow_headers: type: array items: type: object properties: name: type: string value: type: string required: - name - value auth_workflow_headers: type: array items: type: object properties: name: type: string value: type: string required: - name - value eval_model: type: string top_p: type: number format: double frequency_penalty: type: number format: double presence_penalty: type: number format: double max_tokens: type: number format: double id: type: string maxLength: 100 minLength: 3 pattern: ^[a-zA-Z0-9_\-.]*$ description: The Prompt Version name ID description: type: string maxLength: 1000 required: - name PaginationResponseMetadataDto: type: object properties: itemsPerPage: type: number format: double pageNumber: type: number format: double nextPage: type: - string - 'null' previousPage: type: - string - 'null' totalItems: type: number format: double all: type: string required: - itemsPerPage - pageNumber - nextPage - previousPage securitySchemes: STATSIG-API-KEY: type: apiKey name: STATSIG-API-KEY in: header