Pendo API

By Abhishek Kumar
7 min read

Table of Contents

Your product will change the future, but first it must adapt to the present. Drive product adoption, customer loyalty, and team innovation with Pendo.

API Overview

Pendo is a cloud-based software platform that provides product analytics, user onboarding, and in-app guidance to help businesses improve their user experience and drive product adoption. It offers a comprehensive suite of features, including real-time user behavior tracking, personalized onboarding flows, interactive in-app guides, and advanced analytics to measure the impact of product changes. Pendo integrates seamlessly with popular development tools and platforms, enabling businesses to easily embed these capabilities into their software applications.

Pendo API provides a comprehensive set of REST APIs, webhooks, and documentation to enable developers to integrate Pendo's functionality into their own applications. The REST APIs allow developers to programmatically access and manage Pendo data, such as user behavior events, onboarding flows, and in-app guidance content. Webhooks provide a mechanism for Pendo to send real-time notifications to external systems when specific events occur, such as when a user completes an onboarding flow or interacts with an in-app guide. Pendo's API documentation provides detailed information on all available endpoints, request and response formats, and code samples to assist developers in integrating with the platform. Additionally, Pendo enforces rate limits to prevent excessive API usage and ensure optimal performance for all users.

API Request Limits

Free Plan

100 requests per minute

Growth Plan

500 requests per minute

Enterprise Plan

1,000 requests per minute

APIs

Accounts

Method: GET

Description: Retrieve a list of accounts.

Endpoint: accounts

Parameters:

Accounts

Method: GET

Description: Retrieve a specific account.

Endpoint: accounts/{account_id}

Parameters:

Accounts

Method: PUT

Description: Update a specific account.

Endpoint: accounts/{account_id}

Parameters: account_name, is_active, manage_access_tokens

Accounts

Method: POST

Description: Create an account.

Endpoint: accounts

Parameters: account_name, is_active, manage_access_tokens

Accounts

Method: DELETE

Description: Delete a specific account.

Endpoint: accounts/{account_id}

Parameters:

Access Tokens

Method: GET

Description: List all access tokens for an account.

Endpoint: accounts/{account_id}/access_tokens

Parameters:

Access Tokens

Method: POST

Description: Create an access token for an account.

Endpoint: accounts/{account_id}/access_tokens

Parameters: account_access_token_name, account_access_token_description, access_token_scopes

Access Tokens

Method: DELETE

Description: Delete a specific access token.

Endpoint: accounts/{account_id}/access_tokens/{access_token_id}

Parameters:

Access Tokens

Method: PUT

Description: Update a specific access token.

Endpoint: accounts/{account_id}/access_tokens/{access_token_id}

Parameters: account_access_token_name, account_access_token_description, access_token_scopes

Access Tokens

Method: GET

Description: Retrieve a specific access token.

Endpoint: accounts/{account_id}/access_tokens/{access_token_id}

Parameters:

Access Tokens

Method: POST

Description: Generate a long-lived access token.

Endpoint: accounts/{account_id}/access_tokens/generate_long_lived

Parameters:

Access Tokens

Method: GET

Description: Retrieve a Pendo API key.

Endpoint: accounts/{account_id}/pendo_api_key

Parameters:

Assist Cards

Method: PUT

Description: Update card data.

Endpoint: assists/{assist_id}/cards/{card_id}

Parameters: device_id, is_deleted, icon, location, name, metadata

Assist Cards

Method: GET

Description: Retrieve card data.

Endpoint: assists/{assist_id}/cards/{card_id}

Parameters:

Assist Cards

Method: DELETE

Description: Delete card data.

Endpoint: assists/{assist_id}/cards/{card_id}

Parameters:

Assist Cards

Method: POST

Description: Create card data.

Endpoint: assists/{assist_id}/cards

Parameters: device_id, is_deleted, icon, location, name, metadata

Assist Prompts

Method: POST

Description: Create a new prompt.

Endpoint: assists/{assist_id}/prompts

Parameters: audience, context, content, creation_time, icon_url, name, state

Assist Prompts

Method: GET

Description: Retrieve a specific prompt.

Endpoint: assists/{assist_id}/prompts/{prompt_id}

Parameters:

Assist Prompts

Method: PUT

Description: Update a specific prompt.

Endpoint: assists/{assist_id}/prompts/{prompt_id}

Parameters: audience, context, content, icon_url, name, state

Assist Prompts

Method: DELETE

Description: Delete a specific prompt.

Endpoint: assists/{assist_id}/prompts/{prompt_id}

Parameters:

Assists

Method: GET

Description: Retrieve a list of all assists.

Endpoint: assists

Parameters:

Assists

Method: GET

Description: Retrieve a specific assist.

Endpoint: assists/{assist_id}

Parameters:

Assists

Method: PUT

Description: Update a specific assist.

Endpoint: assists/{assist_id}

Parameters: name, description, is_active, metadata

Assists

Method: POST

Description: Create a new assist.

Endpoint: assists

Parameters: name, description, is_active, metadata

Assists

Method: DELETE

Description: Delete a specific assist.

Endpoint: assists/{assist_id}

Parameters:

Audiences

Method: GET

Description: Retrieve a list of audiences.

Endpoint: audiences

Parameters:

Audiences

Method: POST

Description: Create a new audience.

Endpoint: audiences

Parameters: name, description, member_count, created_date

Audiences

Method: GET

Description: Retrieve a specific audience.

Endpoint: audiences/{audience_id}

Parameters:

Audiences

Method: PUT

Description: Update a specific audience.

Endpoint: audiences/{audience_id}

Parameters: name, description, member_count, created_date

Audiences

Method: DELETE

Description: Delete a specific audience.

Endpoint: audiences/{audience_id}

Parameters:

Audiences

Method: GET

Description: Retrieve a list of audience names.

Endpoint: audiences/names

Parameters:

Audiences

Method: GET

Description: Retrieve a list of members in an audience.

Endpoint: audiences/{audience_id}/members

Parameters:

Audiences

Method: POST

Description: Add members to an audience.

Endpoint: audiences/{audience_id}/members/add|audiences/{audience_id}/members/replace

Parameters: members

Audiences

Method: DELETE

Description: Delete members from an audience.

Endpoint: audiences/{audience_id}/members/remove

Parameters: members

Audiences

Method: GET

Description: Retrieve a list of all audience rules.

Endpoint: audiences/rules

Parameters:

Audiences

Method: POST

Description: Create a new audience rule.

Endpoint: audiences/rules

Parameters: audience_id, rule_definition, rule_id, rule_name, rule_priority

Audiences

Method: GET

Description: Retrieve a specific audience rule.

Endpoint: audiences/rules/{rule_id}

Parameters:

Audiences

Method: PUT

Description: Update a specific audience rule.

Endpoint: audiences/rules/{rule_id}

Parameters: audience_id, rule_definition, rule_name, rule_priority

Audiences

Method: DELETE

Description: Delete a specific audience rule.

Endpoint: audiences/rules/{rule_id}

Parameters:

Audiences

Method: GET

Description: List members of an audience that satisfy a given set of conditions.

Endpoint: audiences/members/satisfy_rule_definitions

Parameters: rule_definitions, page_size, page_index, include_total_count

Audiences

Method: GET

Description: List members of an audience that satisfy a given set of rule names.

Endpoint: audiences/members/satisfy_rule_names

Parameters: rule_names, page_size, page_index, include_total_count

Audiences

Method: GET

Description: List members of an audience that satisfy the conditions in a given rule definition.

Endpoint: audiences/members/satisfy_rule_definition

Parameters: rule_definition, page_size, page_index, include_total_count

Audiences

Method: GET

Description: List members of an audience that satisfy the conditions in a given rule name.

Endpoint: audiences/members/satisfy_rule_name

Parameters: rule_name, page_size, page_index, include_total_count

Data Sources

Method: GET

Description: Retrieve a list of all data sources.

Endpoint: data_sources

Parameters:

Data Sources

Method: GET

Description: Retrieve a specific data source.

Endpoint: data_sources/{data_source_id}

Parameters:

Data Sources

Method: POST

Description: Create a new data source.

Endpoint: data_sources

Parameters: name, description, format, created_date, is_public, source_metadata

Data Sources

Method: PUT

Description: Update a specific data source.

Endpoint: data_sources/{data_source_id}

Parameters: name, description, format, is_public

Data Sources

Method: DELETE

Description: Delete a specific data source.

Endpoint: data_sources/{data_source_id}

Parameters:

Data Sources

Method: GET

Description: Retrieve all mappings for a data source.

Endpoint: data_sources/{data_source_id}/data_mappings

Parameters:

Data Sources

Method: GET

Description: Retrieve a data mapping for a data source.

Endpoint: data_sources/{data_source_id}/data_mappings/{data_mapping_id}

Parameters:

Data Sources

Method: DELETE

Description: Delete data mapping for a data source.

Endpoint: data_sources/{data_source_id}/data_mappings/{data_mapping_id}

Parameters:

Data Sources

Method: GET

Description: Retrieve all products associated with a data source.

Endpoint: data_sources/{data_source_id}/products

Parameters:

Data Sources

Method: POST

Description: Add a product to a data source.

Endpoint: data_sources/{data_source_id}/products

Parameters: product_id

Data Sources

Method: DELETE

Description: Remove a product from a data source.

Endpoint: data_sources/{data_source_id}/products/{product_id}

Parameters:

Data Sources

Method: POST

Description: Create a new data source mapping.

Endpoint: data_sources/{data_source_id}/data_mappings

Parameters: data_source_column, data_dictionary_value, pendo_field_name

Data Sources

Method: GET

Description: Retrieve a list of all devices.

Endpoint: devices

Parameters:

Data Sources

Method: GET

Description: Retrieve a specific device.

Endpoint: devices/{device_id}

Parameters:

Data Sources

Method: POST

Description: Create a new device.

Endpoint: devices

Parameters: device_id, platform, first_seen_at, last_seen_at, last_interaction_at, os_version, os_build, device_model, localized_device_model, app_version, app_build, localized_app_version, metadata

Data Sources

Method: PUT

Description: Update a specific device.

Endpoint: devices/{device_id}

Parameters: platform, first_seen_at, last_seen_at, last_interaction_at, os_version, os_build, device_model, localized_device_model, app_version, app_build, localized_app_version, metadata

Data Sources

Method: DELETE

Description: Delete a specific device.

Endpoint: devices/{device_id}

Parameters:

Data Sources

Method: POST

Description: Create a new device interaction.

Endpoint: devices/{device_id}/interactions

Parameters: interaction_metadata, interaction_timestamp, interaction_type

Data Sources

Method: DELETE

Description: Delete a device interaction.

Endpoint: devices/{device_id}/interactions/{interaction_id}

Parameters:

Data Sources

Method: GET

Description: Retrieve a list of all integrations.

Endpoint: integrations

Parameters:

Data Sources

Method: GET

Description: Retrieve a specific integration.

Endpoint: integrations/{integration_id}

Parameters:

Data Sources

Method: PUT

Description: Update a specific integration.

Endpoint: integrations/{integration_id}

Parameters: enabled, is_syncing, sync_status

Data Sources

Method: POST

Description: Create a new integration.

Endpoint: integrations

Parameters: integration_type, enabled, data_source_id, connector_id, metadata

Data Sources

Method: DELETE

Description: Delete a specific integration.

Endpoint: integrations/{integration_id}

Parameters:

Data Sources

Method: POST

Description: Sync the specified integration.

Endpoint: integrations/{integration_id}/sync

Parameters:

Data Sources

Method: GET

Description: Import data into the specified data source.

Endpoint: data_sources/{data_source_id}/import

Parameters:

Data Sources

Method: GET

Description: Retrieve a list of all Pendo Field (PDC) connections.

Endpoint: pendo_connections

Parameters:

Data Sources

Method: GET

Description: Retrieve a specific Pendo Field (PDC) connection.

Endpoint: pendo_connections/{pendo_connection_id}

Parameters:

Data Sources

Method: POST

Description: Create a new Pendo Field (PDC) connection.

Endpoint: pendo_connections

Parameters: workspace_id, pendo_field_product_id

FAQ

How do I authenticate to the Pendo APIs?

To authenticate, you must use a personal access token. You can create one in the Pendo UI under Settings > Integrations > API.

What are the rate limits for the Pendo APIs?

The rate limits vary depending on the API you are using. You can find the specific rate limits for each API in the API documentation.

How do I create a sandbox account for development purposes?

To create a sandbox account, you must contact Pendo support. They will provide you with instructions on how to create the account.

What is the difference between a developer account and a production account?

A developer account is meant for testing and development purposes only. A production account is for use with live data.

How do I create a new data source?

To create a new data source, you must make a POST request to the Data Sources API.

Last Update: September 09, 2024