{
  "service": "pendo",
  "displayName": "Pendo",
  "categories": [
    "Data",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Integration Key",
      "placeholder": "PENDO_INTEGRATION_KEY",
      "description": "Pendo integration key sent with the x-pendo-integration-key header. Create it in Pendo Settings > Integrations > Integration Keys: https://app.pendo.io/admin/integrationkeys.",
      "extraFields": [
        {
          "key": "region",
          "label": "Region",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "us",
          "description": "Pendo application region used for API requests. Supported values are us, eu, us1, japan, and australia. Leave empty for us."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.pendo.io",
  "actions": [
    {
      "id": "pendo.get_features",
      "service": "pendo",
      "name": "get_features",
      "description": "Get one or more Pendo features by feature ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Pendo object ID."
            },
            "description": "Pendo feature IDs to retrieve.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving Pendo features."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "features": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Pendo object returned by the Engage API."
            },
            "description": "Matching Pendo feature objects."
          }
        },
        "additionalProperties": false,
        "description": "Pendo features returned by ID."
      }
    },
    {
      "id": "pendo.get_pages",
      "service": "pendo",
      "name": "get_pages",
      "description": "Get one or more Pendo pages by page ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Pendo object ID."
            },
            "description": "Pendo page IDs to retrieve.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving Pendo pages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Pendo object returned by the Engage API."
            },
            "description": "Matching Pendo page objects."
          }
        },
        "additionalProperties": false,
        "description": "Pendo pages returned by ID."
      }
    },
    {
      "id": "pendo.identify",
      "service": "pendo",
      "name": "identify",
      "description": "Verify the current Pendo integration key and report whether Pendo says it has write access.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to verify a Pendo integration key."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean",
            "description": "Whether Pendo accepted the integration key."
          },
          "canWrite": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the integration key has write access when Pendo returns it."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "The raw Pendo token verification response."
          }
        },
        "additionalProperties": false,
        "description": "Pendo integration key verification result."
      }
    },
    {
      "id": "pendo.list_features",
      "service": "pendo",
      "name": "list_features",
      "description": "List Pendo features, optionally scoped to one application or expanded across all applications.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "minLength": 1,
            "description": "Pendo application ID used to list features for one application in a multi-app subscription."
          },
          "expandAllApps": {
            "type": "boolean",
            "description": "Whether to include features from all applications in the subscription."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Pendo features."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "features": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Pendo object returned by the Engage API."
            },
            "description": "Pendo feature objects."
          }
        },
        "additionalProperties": false,
        "description": "Pendo features returned by the Engage API."
      }
    },
    {
      "id": "pendo.list_pages",
      "service": "pendo",
      "name": "list_pages",
      "description": "List Pendo pages, optionally scoped to one application or expanded across all applications.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "minLength": 1,
            "description": "Pendo application ID used to list pages for one application in a multi-app subscription."
          },
          "expandAllApps": {
            "type": "boolean",
            "description": "Whether to include pages from all applications in the subscription."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Pendo pages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Pendo object returned by the Engage API."
            },
            "description": "Pendo page objects."
          }
        },
        "additionalProperties": false,
        "description": "Pendo pages returned by the Engage API."
      }
    }
  ]
}
