statsig Initialization API

Endpoints for initializing client SDKs with all evaluated feature gates, configs, experiments, and layers for a given user.

OpenAPI Specification

statsig-initialization-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Statsig Client SDK Audit Logs Initialization API
  description: The Statsig Client SDK API provides endpoints that power Statsig's client-side SDKs for JavaScript, React, React Native, iOS, Android, Unity, and other platforms. Client SDKs use Client-SDK Keys that are safe to embed in mobile apps and front-end web applications. They access the initialize endpoint to retrieve all evaluated gates, configs, and experiments for a given user, and the log_event endpoint for sending analytics events. The SDKs handle local evaluation, caching, and automatic error handling for performant client-side feature flagging.
  version: 1.0.0
  contact:
    name: Statsig Support
    url: https://statsig.com/support
  termsOfService: https://statsig.com/terms
servers:
- url: https://api.statsig.com/v1
  description: Statsig API Server
security:
- clientSdkKey: []
tags:
- name: Initialization
  description: Endpoints for initializing client SDKs with all evaluated feature gates, configs, experiments, and layers for a given user.
paths:
  /initialize:
    post:
      operationId: initializeClient
      summary: Initialize client SDK
      description: Returns all evaluated gates, configs, experiments, and layers for a given user. This is the primary endpoint called during client SDK initialization. The response contains hashed entity names for security, and the client SDK decodes them locally. The response is optimized for client-side caching and includes a hash for detecting changes on subsequent requests.
      tags:
      - Initialization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - user
              properties:
                user:
                  $ref: '#/components/schemas/StatsigUser'
                hash:
                  type: string
                  description: Hash from a previous initialize response, used to detect changes and enable incremental updates.
                sinceTime:
                  type: integer
                  format: int64
                  description: Timestamp of the last successful initialization, used for incremental updates.
      responses:
        '200':
          description: Evaluated configurations for the user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitializeResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error message describing the authentication failure.
  schemas:
    StatsigUser:
      type: object
      description: The user object representing the end user. A userID is required for consistent evaluation results across requests.
      properties:
        userID:
          type: string
          description: A unique identifier for the user.
        email:
          type: string
          format: email
          description: The email address of the user.
        ip:
          type: string
          description: The IP address of the user.
        userAgent:
          type: string
          description: The user agent string.
        country:
          type: string
          description: The two-letter country code.
        locale:
          type: string
          description: The locale identifier.
        appVersion:
          type: string
          description: The application version.
        custom:
          type: object
          additionalProperties: true
          description: Custom properties for targeting rules.
        privateAttributes:
          type: object
          additionalProperties: true
          description: Private attributes used for evaluation but not logged.
        customIDs:
          type: object
          additionalProperties:
            type: string
          description: Custom identifier mappings.
    InitializeResponse:
      type: object
      description: The response from the initialize endpoint containing all evaluated configurations for the user.
      properties:
        feature_gates:
          type: object
          additionalProperties:
            type: object
            properties:
              value:
                type: boolean
                description: Whether the user passes the gate.
              rule_id:
                type: string
                description: The matched rule identifier.
              secondary_exposures:
                type: array
                items:
                  type: object
                description: Secondary exposure data for nested gate evaluations.
          description: A map of hashed gate names to their evaluation results.
        dynamic_configs:
          type: object
          additionalProperties:
            type: object
            properties:
              value:
                type: object
                description: The config parameter values for this user.
              rule_id:
                type: string
                description: The matched rule identifier.
              secondary_exposures:
                type: array
                items:
                  type: object
                description: Secondary exposure data.
          description: A map of hashed config names to their evaluation results.
        layer_configs:
          type: object
          additionalProperties:
            type: object
            properties:
              value:
                type: object
                description: The layer parameter values.
              rule_id:
                type: string
                description: The matched rule identifier.
              explicit_parameters:
                type: array
                items:
                  type: string
                description: Parameters explicitly set by the active experiment.
          description: A map of hashed layer names to their evaluation results.
        has_updates:
          type: boolean
          description: Whether there are updates since the last initialization.
        time:
          type: integer
          format: int64
          description: Server timestamp of the evaluation.
        hash_used:
          type: string
          description: The hashing algorithm used for entity names.
  securitySchemes:
    clientSdkKey:
      type: apiKey
      in: header
      name: statsig-api-key
      description: Client-SDK Key that is safe to embed in mobile apps and front-end web applications. Created in Project Settings > API Keys tab.
externalDocs:
  description: Statsig Client SDK Documentation
  url: https://docs.statsig.com/client/introduction