{"openapi":"3.1.0","info":{"title":"GrowthBook Data Sources (BYOK) API","version":"0.1.0","description":"GrowthBook Data Sources (BYOK) lets an AI assistant read your own GrowthBook Data Sources data through the GrowthBook Data Sources API with a key you supply (API secret key (starts with secret_; a read-only role is enough)). Read-only: 8 tools (list_data_sources, get_data_source, list_fact_tables, get_fact_table, list_fact_table_filters, list_fact_metrics, get_fact_metric, list_dimensions). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-growthbook-data.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-growthbook-data/docs"},"termsOfService":"https://connectorbay.com/byok-growthbook-data/terms"},"servers":[{"url":"https://byok-growthbook-data.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-growthbook-data/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_data_sources":{"post":{"operationId":"list_data_sources","summary":"List the data sources (warehouses and event trackers GrowthBook analyses) with type, name, projects and event tracker. C","description":"List the data sources (warehouses and event trackers GrowthBook analyses) with type, name, projects and event tracker. Connection settings and queries are not returned. Use for \"Which data sources are connected to GrowthBook\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this project id (from the GrowthBook connector list_projects).","title":"Project Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100, API default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip; use nextOffset from the previous answer for the next page.","title":"Offset"}},"title":"list_data_sourcesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_data_source":{"post":{"operationId":"get_data_source","summary":"Get one data source with its type, name, description, projects and event tracker. Use for \"Show GrowthBook data source d","description":"Get one data source with its type, name, description, projects and event tracker. Use for \"Show GrowthBook data source ds_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"data_source_id":{"description":"Data source id from list_data_sources, for example 'ds_1'.","maxLength":100,"title":"Data Source Id","type":"string"}},"required":["data_source_id"],"title":"get_data_sourceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_fact_tables":{"post":{"operationId":"list_fact_tables","summary":"List fact tables (SQL-defined event or entity tables used for metrics) with name, description, tags, data source, user i","description":"List fact tables (SQL-defined event or entity tables used for metrics) with name, description, tags, data source, user id types, timestamp column and archived flag. The SQL and columns are left out. Use for \"Which fact tables does GrowthBook have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"datasource_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this data source id (from list_data_sources).","title":"Datasource Id"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this project id (from the GrowthBook connector list_projects).","title":"Project Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100, API default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip; use nextOffset from the previous answer for the next page.","title":"Offset"}},"title":"list_fact_tablesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_fact_table":{"post":{"operationId":"get_fact_table","summary":"Get one fact table with its metadata, the SQL that defines it and its columns (names and types). Use for \"What SQL defin","description":"Get one fact table with its metadata, the SQL that defines it and its columns (names and types). Use for \"What SQL defines the Orders fact table in GrowthBook\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"fact_table_id":{"description":"Fact table id from list_fact_tables, for example 'ftb_1'.","maxLength":100,"title":"Fact Table Id","type":"string"}},"required":["fact_table_id"],"title":"get_fact_tableArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_fact_table_filters":{"post":{"operationId":"list_fact_table_filters","summary":"List the reusable row filters defined on a fact table with name, description and the filter expression. Use for \"Which f","description":"List the reusable row filters defined on a fact table with name, description and the filter expression. Use for \"Which filters exist on the Orders fact table in GrowthBook\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"fact_table_id":{"description":"Fact table id from list_fact_tables.","maxLength":100,"title":"Fact Table Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100, API default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip; use nextOffset from the previous answer for the next page.","title":"Offset"}},"required":["fact_table_id"],"title":"list_fact_table_filtersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_fact_metrics":{"post":{"operationId":"list_fact_metrics","summary":"List fact metrics (mean, proportion, ratio, quantile, retention, funnel) with type, data source, tags and display option","description":"List fact metrics (mean, proportion, ratio, quantile, retention, funnel) with type, data source, tags and display options. Owner names and statistical settings are left out. Use for \"Which fact metrics are defined in GrowthBook\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"datasource_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this data source id (from list_data_sources).","title":"Datasource Id"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this project id (from the GrowthBook connector list_projects).","title":"Project Id"},"fact_table_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only metrics based on this fact table id.","title":"Fact Table Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100, API default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip; use nextOffset from the previous answer for the next page.","title":"Offset"}},"title":"list_fact_metricsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_fact_metric":{"post":{"operationId":"get_fact_metric","summary":"Get one fact metric with its type, numerator and denominator definitions, windows and thresholds. Use for \"How is the Re","description":"Get one fact metric with its type, numerator and denominator definitions, windows and thresholds. Use for \"How is the Revenue per user metric defined in GrowthBook\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"fact_metric_id":{"description":"Fact metric id from list_fact_metrics, for example 'fact__1'.","maxLength":100,"title":"Fact Metric Id","type":"string"}},"required":["fact_metric_id"],"title":"get_fact_metricArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_dimensions":{"post":{"operationId":"list_dimensions","summary":"List the experiment dimensions (user attributes to break results down by) with name, data source and identifier type. Th","description":"List the experiment dimensions (user attributes to break results down by) with name, data source and identifier type. The SQL query is left out. Use for \"Which experiment dimensions are defined in GrowthBook\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"datasource_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this data source id (from list_data_sources).","title":"Datasource Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100, API default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip; use nextOffset from the previous answer for the next page.","title":"Offset"}},"title":"list_dimensionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}