{"openapi":"3.1.0","info":{"title":"Gainsight PX (BYOK) API","version":"0.1.0","description":"Gainsight PX (BYOK) lets an AI assistant read your own Gainsight PX data through the Gainsight PX API with a key you supply (Gainsight PX REST API key (read permission is enough)). Read-only: 12 tools (list_features, get_feature, list_segments, list_engagements, get_engagement, list_engagement_errors, get_integration_statuses, get_subscription, list_articles, list_content_library,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-gainsight-px.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-gainsight-px/docs"},"termsOfService":"https://connectorbay.com/byok-gainsight-px/terms"},"servers":[{"url":"https://byok-gainsight-px.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-gainsight-px/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_features":{"post":{"operationId":"list_features","summary":"List tracked product features and modules with type, parent, product key, status and labels. Use for \"Which features doe","description":"List tracked product features and modules with type, parent, product key, status and labels. Use for \"Which features does Gainsight PX track\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"property_key":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this product (property) key, such as AP-XXXXXXXX-1.","title":"Property Key"},"page_number":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 200, default 25).","title":"Page Size"}},"required":["region"],"title":"list_featuresArguments","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_feature":{"post":{"operationId":"get_feature","summary":"Get one tracked feature or module. Use for \"Describe Gainsight PX feature f1\".","description":"Get one tracked feature or module. Use for \"Describe Gainsight PX feature f1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"feature_id":{"description":"Id of the feature, from list_features.","maxLength":200,"title":"Feature Id","type":"string"}},"required":["region","feature_id"],"title":"get_featureArguments","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_segments":{"post":{"operationId":"list_segments","summary":"List user segments with id and name. Use for \"Which segments exist in Gainsight PX\".","description":"List user segments with id and name. Use for \"Which segments exist in Gainsight PX\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"page_number":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 200, default 25).","title":"Page Size"}},"required":["region"],"title":"list_segmentsArguments","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_engagements":{"post":{"operationId":"list_engagements","summary":"List engagements (in-app guides, dialogs, surveys, emails) with type, state, languages and environments; can filter by t","description":"List engagements (in-app guides, dialogs, surveys, emails) with type, state, languages and environments; can filter by type. Use for \"Which Gainsight PX engagements are currently running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"content_types":{"anyOf":[{"enum":["IN_APP_DIALOG","IN_APP_CAROUSEL","IN_APP_GUIDE","IN_APP_NOTIFICATION","OUT_BOUND_EMAIL","IN_APP_NPS_SURVEY","IN_APP_CES_SURVEY","IN_APP_RATING_SURVEY","IN_APP_BOOLEAN_SURVEY","IN_APP_MULTIPLE_QUESTION_SURVEY"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this engagement type (one of the values shown).","title":"Content Types"},"page_number":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Items per page (1 to 500, default 100).","title":"Page Size"}},"required":["region"],"title":"list_engagementsArguments","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_engagement":{"post":{"operationId":"get_engagement","summary":"Get one engagement: type, state, languages, product keys and environments. Use for \"What state is Gainsight PX engagemen","description":"Get one engagement: type, state, languages, product keys and environments. Use for \"What state is Gainsight PX engagement e1 in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"engagement_id":{"description":"Id of the engagement, from list_engagements.","maxLength":200,"title":"Engagement Id","type":"string"}},"required":["region","engagement_id"],"title":"get_engagementArguments","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_engagement_errors":{"post":{"operationId":"list_engagement_errors","summary":"List engagements that had delivery errors in a date range, with views, error count and first and last occurrence. Use fo","description":"List engagements that had delivery errors in a date range, with views, error count and first and last occurrence. Use for \"Which Gainsight PX engagements have errors this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"date_range_start":{"anyOf":[{"maximum":9999999999999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Range start as epoch milliseconds.","title":"Date Range Start"},"date_range_end":{"anyOf":[{"maximum":9999999999999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Range end as epoch milliseconds.","title":"Date Range End"},"property_key":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this product (property) key, such as AP-XXXXXXXX-1.","title":"Property Key"},"page_number":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 1000, default 25).","title":"Page Size"}},"required":["region"],"title":"list_engagement_errorsArguments","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_integration_statuses":{"post":{"operationId":"get_integration_statuses","summary":"Show whether each configured integration sync is up or down, its last successful time, last error and records processed.","description":"Show whether each configured integration sync is up or down, its last successful time, last error and records processed. Use for \"Are my Gainsight PX integrations syncing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"}},"required":["region"],"title":"get_integration_statusesArguments","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_subscription":{"post":{"operationId":"get_subscription","summary":"Get the subscription: name, time zone, website and its products with their product keys. Use for \"What is my Gainsight P","description":"Get the subscription: name, time zone, website and its products with their product keys. Use for \"What is my Gainsight PX subscription and which products does it have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"}},"required":["region"],"title":"get_subscriptionArguments","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_articles":{"post":{"operationId":"list_articles","summary":"List knowledge center articles with name, languages, product and modified date. Use for \"Which help articles does Gainsi","description":"List knowledge center articles with name, languages, product and modified date. Use for \"Which help articles does Gainsight PX hold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"product_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only articles of this product id.","title":"Product Id"},"page_number":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Items per page (1 to 200, default 100).","title":"Page Size"}},"required":["region"],"title":"list_articlesArguments","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_content_library":{"post":{"operationId":"list_content_library","summary":"List content library entries (guides, surveys, articles, links) with type, name and last modified time. Use for \"What is","description":"List content library entries (guides, surveys, articles, links) with type, name and last modified time. Use for \"What is in the Gainsight PX content library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"content_type":{"anyOf":[{"enum":["ENGAGEMENT","GUIDE","SLIDER","DIALOG","SURVEY","ARTICLE","LINKED_ARTICLE","LINK","FUNC_CALL"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this content type.","title":"Content Type"},"search_terms":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries matching this text.","title":"Search Terms"},"page_number":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Items per page (1 to 200, default 100).","title":"Page Size"}},"required":["region"],"title":"list_content_libraryArguments","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_attribute_definitions":{"post":{"operationId":"list_attribute_definitions","summary":"List the attributes defined on the user or account model (name, API name, type, origin and state), not the values. Use f","description":"List the attributes defined on the user or account model (name, API name, type, origin and state), not the values. Use for \"Which custom account attributes exist in Gainsight PX\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"model_type":{"description":"Model to describe: user or account.","enum":["user","account"],"title":"Model Type","type":"string"}},"required":["region","model_type"],"title":"list_attribute_definitionsArguments","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_accounts":{"post":{"operationId":"list_accounts","summary":"List customer accounts (companies) with plan, industry, size, user count, health score and last seen time; contact peopl","description":"List customer accounts (companies) with plan, industry, size, user count, health score and last seen time; contact people are not returned. Use for \"Which Gainsight PX accounts have the lowest health score\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"API host prefix of your Gainsight PX data center: api for US, api-eu for EU, api-us2 for US2.","enum":["api","api-eu","api-us2"],"title":"Region","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter such as name==Acme (see the PX API docs for the filter syntax).","title":"Filter"},"sort":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Optional sort, for example lastSeenDate or -numberOfUsers.","title":"Sort"},"scroll_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Scroll id from the previous page's scrollId (leave empty for the first page).","title":"Scroll Id"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 1000, default 25).","title":"Page Size"}},"required":["region"],"title":"list_accountsArguments","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}}}}