GrowthBook data-sources API

How GrowthBook connects and queries your data, including cached database schema metadata (information schemas) for tables and columns.

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/growthbook-data-sources-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

growthbook-data-sources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: GrowthBook REST AnalyticsExplorations data-sources API
  description: "GrowthBook offers a full REST API for interacting with the application.\n\nRequest data can use either JSON or Form data encoding (with proper `Content-Type` headers). All response bodies are JSON-encoded.\n\nThe API base URL for GrowthBook Cloud is `https://api.growthbook.io/api`. For self-hosted deployments, it is the same as your API_HOST environment variable (defaults to `http://localhost:3100/api`). The rest of these docs will assume you are using GrowthBook Cloud.\n\n## Versioning\n\nEndpoints are versioned by path prefix:\n\n- `/v1/...` — stable, widely-supported endpoints\n- `/v2/...` — updated endpoints with improved shapes (e.g. unified per-rule environment scope for feature flags)\n\nNew integrations should prefer v2 where available.\n\n## Authentication\n\nWe support both the HTTP Basic and Bearer authentication schemes for convenience.\n\nYou first need to generate a new API Key in GrowthBook. Different keys have different permissions:\n\n- **Personal Access Tokens**: These are sensitive and provide the same level of access as the user has to an organization. These can be created by going to `Personal Access Tokens` under the your user menu.\n- **Secret Keys**: These are sensitive and provide the level of access for the role, which currently is either `admin` or `readonly`. Only Admins with the `manageApiKeys` permission can manage Secret Keys on behalf of an organization. These can be created by going to `Settings -> API Keys`\n\nIf using HTTP Basic auth, pass the Secret Key as the username and leave the password blank (when using curl, add `:` at the end of the secret to indicate an empty password)\n\n```bash\ncurl https://api.growthbook.io/api/v1/features \\\n  -u secret_abc123DEF456:\n```\n\nIf using Bearer auth, pass the Secret Key as the token:\n\n```bash\ncurl https://api.growthbook.io/api/v1/features \\\n-H \"Authorization: Bearer secret_abc123DEF456\"\n```\n\n## Errors\n\nThe API may return the following error status codes:\n\n- **400** - Bad Request - Often due to a missing required parameter\n- **401** - Unauthorized - No valid API key provided\n- **402** - Request Failed - The parameters are valid, but the request failed\n- **403** - Forbidden - Provided API key does not have the required access\n- **404** - Not Found - Unknown API route or requested resource\n- **429** - Too Many Requests - You exceeded the rate limit of 60 requests per minute. Try again later.\n- **5XX** - Server Error - Something went wrong on GrowthBook's end (these are rare)\n\nThe response body will be a JSON object with the following properties:\n\n- **message** - Information about the error\n"
servers:
- url: https://api.growthbook.io/api
  description: GrowthBook Cloud
- url: https://{domain}/api
  description: Self-hosted GrowthBook
security:
- bearerAuth: []
- basicAuth: []
tags:
- name: data-sources
  x-displayName: Data Sources
  description: How GrowthBook connects and queries your data, including cached database schema metadata (information schemas) for tables and columns.
paths:
  /v1/data-sources:
    get:
      operationId: listDataSources
      summary: Get all data sources
      tags:
      - data-sources
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/projectId'
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    dataSources:
                      type: array
                      items:
                        $ref: '#/components/schemas/DataSource'
                  required:
                  - dataSources
                  additionalProperties: false
                - $ref: '#/components/schemas/PaginationFields'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://api.growthbook.io/api/v1/data-sources' \\\n  -H 'Authorization: Bearer YOUR_API_KEY'"
  /v1/data-sources/{id}:
    get:
      operationId: getDataSource
      summary: Get a single data source
      tags:
      - data-sources
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  dataSource:
                    $ref: '#/components/schemas/DataSource'
                required:
                - dataSource
                additionalProperties: false
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://api.growthbook.io/api/v1/data-sources/{id}' \\\n  -H 'Authorization: Bearer YOUR_API_KEY'"
  /v1/data-sources/{dataSourceId}/information-schema:
    get:
      operationId: getInformationSchema
      summary: Get a Data Source's Information Schema
      description: Returns cached database schema metadata for a data source, including databases, schemas, and tables. The information schema is automatically created when a SQL-based data source is added. Not all data source types support information schemas.
      tags:
      - data-sources
      parameters:
      - $ref: '#/components/parameters/dataSourceId'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  informationSchema:
                    $ref: '#/components/schemas/InformationSchema'
                required:
                - informationSchema
                additionalProperties: false
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://api.growthbook.io/api/v1/data-sources/{dataSourceId}/information-schema' \\\n  -H 'Authorization: Bearer YOUR_API_KEY'"
  /v1/information-schema-tables/{tableId}:
    get:
      operationId: getInformationSchemaTable
      summary: Get a single Information Schema Table by id
      description: Returns cached metadata for a specific table in the Data Source, including columns and their data types. Not all data source types support information schemas.
      tags:
      - data-sources
      parameters:
      - $ref: '#/components/parameters/tableId'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  informationSchemaTable:
                    $ref: '#/components/schemas/InformationSchemaTable'
                required:
                - informationSchemaTable
                additionalProperties: false
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://api.growthbook.io/api/v1/information-schema-tables/{tableId}' \\\n  -H 'Authorization: Bearer YOUR_API_KEY'"
components:
  parameters:
    offset:
      name: offset
      in: query
      description: How many items to skip (use in conjunction with limit for pagination)
      schema:
        default: 0
        description: How many items to skip (use in conjunction with limit for pagination)
        type: integer
        minimum: 0
    dataSourceId:
      name: dataSourceId
      in: path
      required: true
      description: The id of the data source
      schema:
        description: The id of the data source
        type: string
    tableId:
      name: tableId
      in: path
      required: true
      description: The id of the information schema table
      schema:
        description: The id of the information schema table
        type: string
    id:
      name: id
      in: path
      required: true
      description: The id of the requested resource
      schema:
        description: The id of the requested resource
        type: string
    projectId:
      name: projectId
      in: query
      description: Filter by project id
      schema:
        description: Filter by project id
        type: string
    limit:
      name: limit
      in: query
      description: The number of items to return
      schema:
        default: 10
        description: The number of items to return
        type: integer
        minimum: 1
        maximum: 100
  schemas:
    InformationSchema:
      type: object
      properties:
        id:
          type: string
        datasourceId:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - COMPLETE
        error:
          type: object
          properties:
            errorType:
              type: string
              enum:
              - generic
              - not_supported
              - missing_params
            message:
              type: string
          required:
          - errorType
          - message
          additionalProperties: false
        databases:
          type: array
          items:
            type: object
            properties:
              databaseName:
                type: string
              path:
                type: string
              dateCreated:
                format: date-time
                type: string
              dateUpdated:
                format: date-time
                type: string
              schemas:
                type: array
                items:
                  type: object
                  properties:
                    schemaName:
                      type: string
                    path:
                      type: string
                    dateCreated:
                      format: date-time
                      type: string
                    dateUpdated:
                      format: date-time
                      type: string
                    tables:
                      type: array
                      items:
                        type: object
                        properties:
                          tableName:
                            type: string
                          path:
                            type: string
                          id:
                            type: string
                          numOfColumns:
                            type: number
                          dateCreated:
                            format: date-time
                            type: string
                          dateUpdated:
                            format: date-time
                            type: string
                        required:
                        - tableName
                        - id
                        - numOfColumns
                        - dateCreated
                        - dateUpdated
                        additionalProperties: false
                  required:
                  - schemaName
                  - dateCreated
                  - dateUpdated
                  - tables
                  additionalProperties: false
            required:
            - databaseName
            - dateCreated
            - dateUpdated
            - schemas
            additionalProperties: false
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
      required:
      - id
      - datasourceId
      - status
      - databases
      - dateCreated
      - dateUpdated
      additionalProperties: false
    DataSource:
      type: object
      properties:
        id:
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        type:
          type: string
        name:
          type: string
        description:
          type: string
        projectIds:
          type: array
          items:
            type: string
        eventTracker:
          type: string
        identifierTypes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              description:
                type: string
            required:
            - id
            - description
            additionalProperties: false
        assignmentQueries:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              description:
                type: string
              identifierType:
                type: string
              sql:
                type: string
              includesNameColumns:
                type: boolean
              dimensionColumns:
                type: array
                items:
                  type: string
            required:
            - id
            - name
            - description
            - identifierType
            - sql
            - includesNameColumns
            - dimensionColumns
            additionalProperties: false
        identifierJoinQueries:
          type: array
          items:
            type: object
            properties:
              identifierTypes:
                type: array
                items:
                  type: string
              sql:
                type: string
            required:
            - identifierTypes
            - sql
            additionalProperties: false
        mixpanelSettings:
          type: object
          properties:
            viewedExperimentEventName:
              type: string
            experimentIdProperty:
              type: string
            variationIdProperty:
              type: string
            extraUserIdProperty:
              type: string
          required:
          - viewedExperimentEventName
          - experimentIdProperty
          - variationIdProperty
          - extraUserIdProperty
          additionalProperties: false
      required:
      - id
      - dateCreated
      - dateUpdated
      - type
      - name
      - description
      - projectIds
      - eventTracker
      - identifierTypes
      - assignmentQueries
      - identifierJoinQueries
      additionalProperties: false
    PaginationFields:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        count:
          type: integer
        total:
          type: integer
        hasMore:
          type: boolean
        nextOffset:
          anyOf:
          - type: integer
          - type: 'null'
      required:
      - limit
      - offset
      - count
      - total
      - hasMore
      - nextOffset
      additionalProperties: false
    InformationSchemaTable:
      type: object
      properties:
        id:
          type: string
        datasourceId:
          type: string
        informationSchemaId:
          type: string
        tableName:
          type: string
        tableSchema:
          type: string
        databaseName:
          type: string
        columns:
          type: array
          items:
            type: object
            properties:
              columnName:
                type: string
              dataType:
                type: string
            required:
            - columnName
            - dataType
            additionalProperties: false
        refreshMS:
          type: number
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
      required:
      - id
      - datasourceId
      - informationSchemaId
      - tableName
      - tableSchema
      - databaseName
      - columns
      - refreshMS
      - dateCreated
      - dateUpdated
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'If using Bearer auth, pass the Secret Key as the token:

        ```bash

        curl https://api.growthbook.io/api/v1/features   -H "Authorization: Bearer secret_abc123DEF456"

        ```

        '
    basicAuth:
      type: http
      scheme: basic
      description: 'If using HTTP Basic auth, pass the Secret Key as the username and leave the password blank:

        ```bash

        curl https://api.growthbook.io/api/v1/features   -u secret_abc123DEF456:

        # The ":" at the end stops curl from asking for a password

        ```

        '
x-tagGroups:
- name: Endpoints
  tags:
  - projects
  - environments
  - features-v2
  - feature-revisions-v2
  - features
  - feature-revisions
  - ramp-schedules
  - data-sources
  - fact-tables
  - fact-metrics
  - metrics
  - experiments
  - namespaces
  - snapshots
  - dimensions
  - segments
  - sdk-connections
  - visual-changesets
  - saved-groups
  - organizations
  - members
  - code-references
  - archetypes
  - queries
  - settings
  - attributes
  - usage
  - Dashboards
  - CustomFields
  - MetricGroups
  - Teams
  - ExperimentTemplates
  - AnalyticsExplorations
  - RampScheduleTemplates
- name: Models
  tags:
  - AnalyticsExploration_model
  - Archetype_model
  - Attribute_model
  - CodeRef_model
  - CustomField_model
  - Dashboard_model
  - DataSource_model
  - Dimension_model
  - Environment_model
  - Experiment_model
  - ExperimentAnalysisSettings_model
  - ExperimentDecisionFrameworkSettings_model
  - ExperimentMetric_model
  - ExperimentMetricOverrideEntry_model
  - ExperimentResults_model
  - ExperimentSnapshot_model
  - ExperimentTemplate_model
  - ExperimentWithEnhancedStatus_model
  - FactMetric_model
  - FactTable_model
  - FactTableColumn_model
  - FactTableFilter_model
  - Feature_model
  - FeatureBaseRule_model
  - FeatureDefinition_model
  - FeatureEnvironment_model
  - FeatureEnvironmentV2_model
  - FeatureExperimentRefRule_model
  - FeatureExperimentRule_model
  - FeatureForceRule_model
  - FeatureRevision_model
  - FeatureRevisionV2_model
  - FeatureRolloutRule_model
  - FeatureRule_model
  - FeatureRuleV2_model
  - FeatureSafeRolloutRule_model
  - FeatureV2_model
  - FeatureWithRevisions_model
  - FeatureWithRevisionsV2_model
  - InformationSchema_model
  - InformationSchemaTable_model
  - LookbackOverride_model
  - Member_model
  - Metric_model
  - MetricAnalysis_model
  - MetricGroup_model
  - MetricUsage_model
  - Namespace_model
  - NamespaceExperimentMember_model
  - Organization_model
  - PaginationFields_model
  - Project_model
  - Query_model
  - RampSchedule_model
  - RampScheduleTemplate_model
  - SavedGroup_model
  - ScheduleRule_model
  - SdkConnection_model
  - Segment_model
  - Settings_model
  - Team_model
  - VisualChange_model
  - VisualChangeset_model