# Zapier
## Docs
- [Get Action Details](https://docs.zapier.com/ai-actions/api-reference/actions/get-action-details): Get details of a specific action, including its needs, gives, and a sample of the action.
- [Get Prefill Choices](https://docs.zapier.com/ai-actions/api-reference/actions/get-prefill-choices): Get prefill choices for an app's prefill.
- [Search Actions](https://docs.zapier.com/ai-actions/api-reference/actions/search-actions): Search for Zapier actions by app, ordered by relevancy.
- [Create AI Action](https://docs.zapier.com/ai-actions/api-reference/ai-actions/create-ai-action): Create a new AI Action that can be executed by the user later.
- [Delete AI Action](https://docs.zapier.com/ai-actions/api-reference/ai-actions/delete-ai-action): Delete an AI Action.
Returns `true` if the action was deleted, `false` if it was not found.
- [Get AI Action](https://docs.zapier.com/ai-actions/api-reference/ai-actions/get-ai-action): Get the details of a specific AI Action.
- [List AI Actions](https://docs.zapier.com/ai-actions/api-reference/ai-actions/list-ai-actions): List all the current actions for the current user.
- [Update AI Action](https://docs.zapier.com/ai-actions/api-reference/ai-actions/update-ai-action): Update an existing AI Action.
- [Get App Details](https://docs.zapier.com/ai-actions/api-reference/apps/get-app-details)
- [List Authentications For App](https://docs.zapier.com/ai-actions/api-reference/apps/list-authentications-for-app): Get list of Zapier authentications associated with the requesting user and account.
- [Search Apps](https://docs.zapier.com/ai-actions/api-reference/apps/search-apps)
- [Check User Auth](https://docs.zapier.com/ai-actions/api-reference/auth/check-user-auth): Test that the API and auth are working.
- [Get Account List](https://docs.zapier.com/ai-actions/api-reference/auth/get-account-list): Get a list of Zapier accounts for the current user.
- [Get Oauth Login Link](https://docs.zapier.com/ai-actions/api-reference/auth/get-oauth-login-link): This will create a link that can be used for "quick account creation" followed by OAuth login for a user.
When going to this link, if the provided email already has a Zapier account, the user will be asked to log in.
If the email does not have a Zapier account, the user will be asked to create an account with the provided email and name.
Upon creating an account or logging in, the user will be taken to
The user will get a Zapier account, be brought to AI Actions where they will see the OAuth consent screen, and then will be brought back to your site
with an OAuth `code` that can be used with `https://actions.zapier.com/oauth/token/` with the following data in the body with `Content-Type: application/x-www-form-urlencoded`:
- client_id: Your AI Actions OAuth client ID
- grant_type: `authorization_code`
- code_verifier: The verifier stored for your user when generating the login URL
- redirect_uri: The same URL you used for the `redirect_uri` in the previous step.
- code: The code in the query parameters of the URL that the user was redirected to.
- [Get User Login Link](https://docs.zapier.com/ai-actions/api-reference/auth/get-user-login-link): This will create a link that can be used for "quick account creation" for a user.
When going to this link, if the provided email already has a Zapier account, the user will be asked to log in.
If the email does not have a Zapier account, the user will be asked to create an account with the provided email and name.
Upon creating an account or logging in, the user will be taken to the `redirect_to` URL.
A suggested flow for this is:
- Check if you have an AI Actions OAuth token for a user
- If you do not, send the user to a page on your site for initiating PKCE OAuth flow, storing the `code_verifier` for them securely.
- Use this endpoint, with a `redirect_to` of `https://actions.zapier.com/oauth/authorize/` with the following query parameters:
- client_id: Your AI Actions OAuth client ID
- scope: `openid nla:exposed_actions:execute`
- response_type: `code`
- redirect_uri: The URL on your site that will handle the OAuth callback, must be in the list of allowed redirect URIs for your AI Actions OAuth client.
- code_challenge: The SHA256 hash of the `code_verifier` from the previous step.
- code_challenge_method: `S256`
The user will get a Zapier account, be brought to AI Actions where they will see the OAuth consent screen, and then will be brought back to your site
with an OAuth `code` that can be used with `https://actions.zapier.com/oauth/token/` with the following data in the body with `Content-Type: application/x-www-form-urlencoded`:
- client_id: Your AI Actions OAuth client ID
- grant_type: `authorization_code`
- code_verifier: The verifier stored for your user when generating the login URL
- redirect_uri: The same URL you used for the `redirect_uri` in the previous step.
- code: The code in the query parameters of the URL that the user was redirected to.
- [Execute Stateless AI Action](https://docs.zapier.com/ai-actions/api-reference/execution/execute-stateless-ai-action)
- [Execute Stored AI Action](https://docs.zapier.com/ai-actions/api-reference/execution/execute-stored-ai-action): Given an action ID and instructions, this will execute the action and return the results.
- [Preview Stored AI Action](https://docs.zapier.com/ai-actions/api-reference/execution/preview-stored-ai-action)
- [Rate Execution Log](https://docs.zapier.com/ai-actions/api-reference/execution/rate-execution-log): Rate a specific execution log given feedback from the user.
Rating should either be `-1` (bad, thumbs down), `0` (neutral, the default), or `1` (good, thumbs up).
You can also provide plain text feedback provided by the user. Supplied rating/feedback are patched onto execution log, so you can progressively call this endpoint.
- [App Health Check](https://docs.zapier.com/ai-actions/api-reference/system/app-health-check): Check that the app is up and running.
- [Guess Actions](https://docs.zapier.com/ai-actions/api-reference/utilities/guess-actions)
- [Shrink Result](https://docs.zapier.com/ai-actions/api-reference/utilities/shrink-result): **WARNING: This endpoint is not officially supported, and is subject to be changed or removed at any time.**
Shrinks the given result payload to git into a specified token budget.
This tries its best to keep around more important values and truncate less important ones.
The intent of this endpoint is that after executing an AI Action, you can pass the result into this to get a smaller result that can be passed in to LLMs without hitting the token limit.
- [API Key](https://docs.zapier.com/ai-actions/developer-resources/keys)
- [API Logs](https://docs.zapier.com/ai-actions/developer-resources/logs)
- [OpenAPI Specification](https://docs.zapier.com/ai-actions/developer-resources/openapi)
- [Submit an issue](https://docs.zapier.com/ai-actions/help/bug)
- [Join our Community](https://docs.zapier.com/ai-actions/help/community)
- [Zapier account list](https://docs.zapier.com/ai-actions/how-tos/account-list): Get a list of Zapier accounts for the current user.
- [Get action details and needs](https://docs.zapier.com/ai-actions/how-tos/action-info/action-details): Get details of a specific action, including its needs, gives, and a sample of the action.
- [Choose authentication](https://docs.zapier.com/ai-actions/how-tos/action-info/choose-auth): Get list of Zapier authentications associated with the requesting user and account.
- [Find an action](https://docs.zapier.com/ai-actions/how-tos/action-info/find-action): Search for Zapier actions by app, ordered by relevancy.
- [Find an app](https://docs.zapier.com/ai-actions/how-tos/action-info/find-app)
- [Introduction](https://docs.zapier.com/ai-actions/how-tos/action-info/introduction)
- [Get prefill choices](https://docs.zapier.com/ai-actions/how-tos/action-info/prefill-choices): Get prefill choices for an app's prefill.
- [Authentication](https://docs.zapier.com/ai-actions/how-tos/auth): Test that the API and auth are working.
- [Stored Vs. Stateless Actions](https://docs.zapier.com/ai-actions/how-tos/stateless-vs-stored)
- [Stateless actions introduction](https://docs.zapier.com/ai-actions/how-tos/stateless/intro)
- [Run a Stateless Action](https://docs.zapier.com/ai-actions/how-tos/stateless/run-stateless-action)
- [Configure stored actions in the AI Actions UI](https://docs.zapier.com/ai-actions/how-tos/stored/action-configuration)
- [Stored actions introduction](https://docs.zapier.com/ai-actions/how-tos/stored/intro)
- [List stored Actions](https://docs.zapier.com/ai-actions/how-tos/stored/list-actions): List all the current actions for the current user.
- [Create stored action](https://docs.zapier.com/ai-actions/how-tos/stored/manage/create-action): Create a new AI Action that can be executed by the user later.
- [Delete stored action](https://docs.zapier.com/ai-actions/how-tos/stored/manage/delete-action): Delete an AI Action.
Returns `true` if the action was deleted, `false` if it was not found.
- [Get stored action](https://docs.zapier.com/ai-actions/how-tos/stored/manage/get-action): Get the details of a specific AI Action.
- [Update stored action](https://docs.zapier.com/ai-actions/how-tos/stored/manage/update-action): Update an existing AI Action.
- [Run a stored action](https://docs.zapier.com/ai-actions/how-tos/stored/run-stored-action): Given an action ID and instructions, this will execute the action and return the results.
- [Introduction](https://docs.zapier.com/ai-actions/intro): AI Actions exposes Zapier's 7,000+ apps and 30,000+ actions, for selected partners, to build your own custom AI assistants.
- [Authentication](https://docs.zapier.com/ai-actions/libraries/nodejs/authentication)
- [Getting started](https://docs.zapier.com/ai-actions/libraries/nodejs/getting-started)
- [Next.js](https://docs.zapier.com/ai-actions/libraries/nodejs/nextjs-reccommendation)
- [Usage examples](https://docs.zapier.com/ai-actions/libraries/nodejs/usage)
- [ActionList](https://docs.zapier.com/ai-actions/libraries/react/action-list)
- [AiActionsProvider](https://docs.zapier.com/ai-actions/libraries/react/ai-actions-provider)
- [EditAction and CreateAction](https://docs.zapier.com/ai-actions/libraries/react/edit-action)
- [Getting started](https://docs.zapier.com/ai-actions/libraries/react/getting-started)
- [StatelessActionCreator](https://docs.zapier.com/ai-actions/libraries/react/stateless-creator)
- [Quickstart](https://docs.zapier.com/ai-actions/quickstart): Learn how to kick-start AI Actions by obtaining a partner key, setting up allowed actions, and executing an action through our API.
- [Stateless action creator/runner](https://docs.zapier.com/ai-actions/tools/stateless-action)
- [Create Account](https://docs.zapier.com/partner-solutions/api-reference/accounts/create-account): Create a new user and obtain an access token. See [here](/guides/quac/intro-quac#add-support-to-the-workflow-api) to get started.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
- [User Profile](https://docs.zapier.com/partner-solutions/api-reference/accounts/user-profile): This endpoint returns the authenticated user information
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `profile` OAuth scope.
- [Get Actions](https://docs.zapier.com/partner-solutions/api-reference/actions/get-actions): Fetch the available actions for the provided App. It's typical to filter by type so that only actions that make sense for a particular step are shown. Action IDs may not be reused, see our documentation [here](https://docs.zapier.com/partner-solutions/workflow-api/Hardcoding-an-Action) for how to hardcode a particular action.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap` OAuth scope.
- [Get Choices](https://docs.zapier.com/partner-solutions/api-reference/actions/get-choices): Get the possible values for an Input Field that is marked as `SELECT`.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap` OAuth scope.
- [Get Input Fields](https://docs.zapier.com/partner-solutions/api-reference/actions/get-input-fields): Get the Input Fields for a particular Action, using the provided authentication and inputs. See [here](/guides/getting-started/Fields-and-Fieldsets) for more information.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap:write` OAuth scope.
- [Get Output Fields](https://docs.zapier.com/partner-solutions/api-reference/actions/get-output-fields): Get the Output Fields for a particular Action, using the provided authentication and inputs.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap:write` OAuth scope.
- [Step Test](https://docs.zapier.com/partner-solutions/api-reference/actions/step-test): Tests the action (step) in the third party api, using the provided authentication and inputs.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap:write` OAuth scope.
- [Get Apps [v1]](https://docs.zapier.com/partner-solutions/api-reference/apps/get-apps-[v1]): This endpoint returns a list of apps sorted popularity. See [here](/guides/list-apps) to get started.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
- [Get Apps [v2]](https://docs.zapier.com/partner-solutions/api-reference/apps/get-apps-[v2]): This endpoint returns a list of apps sorted popularity. See [here](/guides/list-apps) to get started.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap` OAuth scope.
- [Zapier Authentication](https://docs.zapier.com/partner-solutions/api-reference/authentication): Authenticate with The Zapier Workflow API
- [Create Authentication](https://docs.zapier.com/partner-solutions/api-reference/authentications/create-authentication): Creates a new Authentication for the provided App. See [here](/guides/custom-flows/adding-an-authentication) to get started.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `authentication:write` OAuth scope.
- [Get Authentications](https://docs.zapier.com/partner-solutions/api-reference/authentications/get-authentications): Fetch the available Authentications for the provided App. This will only return Authentications that are owned by the user and not those that are shared with them, since it's not possible to create Zaps with Authentications you don't own.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `authentication` OAuth scope.
- [Get Categories](https://docs.zapier.com/partner-solutions/api-reference/categories/get-categories): List of Zap categories
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/action)
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/app)
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/authentication)
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/choice)
- [Errors](https://docs.zapier.com/partner-solutions/api-reference/common-types/errors): Errors in the API follow the recommendation from the JSON API spec.
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/fieldset)
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/infoField)
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/inputField)
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/outputField)
- [Pagination](https://docs.zapier.com/partner-solutions/api-reference/common-types/pagination)
- [Requests](https://docs.zapier.com/partner-solutions/api-reference/common-types/requests)
- [Responses](https://docs.zapier.com/partner-solutions/api-reference/common-types/responses): Responses for the API follow the JSON API spec for fetching resources.
- [null](https://docs.zapier.com/partner-solutions/api-reference/common-types/zap)
- [Create a Workflow step](https://docs.zapier.com/partner-solutions/api-reference/experimental/create-a-workflow-step): Creates a new Workflow Step based on a single provided step and returns a webhook URL that can be used to invoke the Workflow Step and retrieve a response. When creating a Workflow write action step, field values can be hardcoded, or they can contain mapped values. The mapped values should be surrounded with double curly braces.
In the example request body the Workflow Step contains the field values `email`, `name`, `phone`, and `address` in double curly braces. Then the webhook URL returned can be called with a `POST` request containing a JSON body in the following format:
```
{
"email": "user@example.com",
"name": "John Doe",
"phone": "1234567890",
"address": "123 Maple Lane"
}
```
Note that authentications may become invalid over time, and if this occurs, users will be notified by email to fix their authentication. If the authentication is not fixed, trying to run the Workflow Step will time out. Workflow Steps are also (for now) visible and editable as Zaps at https://zapier.com/app/zaps. If a user turns off a Workflow Step Zap, the request will similarly time out. Finally, it is possible that a user can edit the Workflow Step Zap such that it returns unexpected outputs.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap:write` OAuth scope.
- [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting): Rate limits when accessing the Workflow API
- [Get Zap Templates](https://docs.zapier.com/partner-solutions/api-reference/zap-templates/get-zap-templates): List popular Zap Templates using your app. See [here](/guides/list-zap-templates) to get started.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
- [Create a Zap](https://docs.zapier.com/partner-solutions/api-reference/zaps/create-a-zap): This URL creates a new Zap based on a series of steps and a given title.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap:write` OAuth scope.
- [Get Zaps [v1]](https://docs.zapier.com/partner-solutions/api-reference/zaps/get-zaps-[v1]): This endpoint returns a list of Zaps for the authenticated Zapier user.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap` OAuth scope.
- [Get Zaps [v2]](https://docs.zapier.com/partner-solutions/api-reference/zaps/get-zaps-[v2]): This endpoint returns a list of Zaps for the authenticated Zapier user.
The `expand` array can be used to expand selected fields into full objects in the response. Inputs with keys can
also be passed to filter Zaps by certain criteria.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
#### OAuth
This endpoint requires the `zap`, or `zap:all` OAuth scope.
- [Guess a Zap [Beta]](https://docs.zapier.com/partner-solutions/api-reference/zaps/guess-a-zap): This endpoint returns a suggested Zap and pre-filled URL to Zapier from a given prompt.
This API is rate limited. See [Rate Limiting](https://docs.zapier.com/partner-solutions/api-reference/rate-limiting) for more details.
- [Element Security](https://docs.zapier.com/partner-solutions/elements-security): Keeping our elements secure and usable is critical at Zapier
- [Embed Insights](https://docs.zapier.com/partner-solutions/embed-insights): Insights are available to review the performance of your embed, and track usage growth.
- [Zapier Partner Solutions](https://docs.zapier.com/partner-solutions/getting-started): Add automation to your product with Zapier.
- [Pre-filled Zaps](https://docs.zapier.com/partner-solutions/pre-filled-zaps): Prefills allow you to define the input fields on behalf of the user, simplying the experience of setting up their Zap.
- [Quick Account Creation](https://docs.zapier.com/partner-solutions/quick-account-creation): Quick Account Creation is a seamless, accelerated sign-up feature allowing first time Zapier users to skip the standard sign-up procedure and onboarding survey. Enabling Quick Account Creation as part of your embed tool code helps provide a more frictionless experience for end users.
- [How to Build a Workflow](https://docs.zapier.com/partner-solutions/workflow-api/Building-a-Zap): This guide walks through the entire process of building an automated workflow for your users to use -- front picking apps, adding authentication, filling inputs and publishing.
- [Fields and Fieldsets](https://docs.zapier.com/partner-solutions/workflow-api/Fields-and-Fieldsets)
- [Hardcoding an Action](https://docs.zapier.com/partner-solutions/workflow-api/Hardcoding-an-Action): To help focus the user experience, it can be helpful to hardcode a certain Action to guide users in selecting the most appropriate action for their use-case.
- [Selecting an Action](https://docs.zapier.com/partner-solutions/workflow-api/Selecting-an-Action): An Action is an operation that can be performed against a third-party API; either a `READ` or a `WRITE`.
- [Selecting an Authentication](https://docs.zapier.com/partner-solutions/workflow-api/Selecting-an-Authentication): Support users in selecting 3rd party authentications, either through an existing authentication or by adding new.
- [Adding an Authentication to your app](https://docs.zapier.com/partner-solutions/workflow-api/adding-an-authentication): Reduce friction when adding an authentication to your own app.
- [Embedding the Zapier Editor](https://docs.zapier.com/partner-solutions/workflow-api/embed-zap-editor): With an embedded Zap editor in your product, your users can create and edit their Zaps without leaving your app.
- [Integrate the Workflow API](https://docs.zapier.com/partner-solutions/workflow-api/intro): Our most powerful tool for building native workflows in your product
- [Known Limitations](https://docs.zapier.com/partner-solutions/workflow-api/limitations): Creating workflows using the Zapier Workflow API is a recent addition, and there are some known limitations.
- [Retrieving Apps on Zapier](https://docs.zapier.com/partner-solutions/workflow-api/list-apps): Listing apps available on Zapier is a simple way to show users all of what's possible on Zapier
- [Retrieving Zap Templates](https://docs.zapier.com/partner-solutions/workflow-api/list-zap-templates): Zap templates are pre-made Zaps that help users discover popular use cases for automating their work. Each template features a specific use case and the apps needed for it to work.
- [Retrieving a list of users Zaps](https://docs.zapier.com/partner-solutions/workflow-api/list-zaps): Listing a users zaps reveals existing workflows created by users.
- [Testing a Step](https://docs.zapier.com/partner-solutions/workflow-api/testing-a-step): Step testing allows for the validation of a configured step, executing any `READ` or `WRITE` actions.
- [Embed the Workflow Element](https://docs.zapier.com/partner-solutions/workflow-element/intro): The Workflow Element is a prebuilt UI component that offers the quickest—and easiest—way to surface your Zapier integration directly within your own product.
- [Dynamic Dropdowns](https://docs.zapier.com/platform/build-cli/dynamic-dropdowns)
- [Frequently Asked Questions](https://docs.zapier.com/platform/build-cli/faqs)
- [Input Field Configuration](https://docs.zapier.com/platform/build-cli/input-fields)
- [Build with CLI](https://docs.zapier.com/platform/build-cli/overview): Zapier is a platform for creating integrations and workflows. This CLI is your gateway to creating custom applications on the Zapier platform.
- [Action](https://docs.zapier.com/platform/build/action): Every Zap starts with a single trigger that watches for new or updated data, starting the user's workflow. Action steps then make use of that data.
- [Add input fields to triggers and actions](https://docs.zapier.com/platform/build/add-fields): When building in the Platform UI, you'll use the Input Designer to create the form users will input data into, to send to your app's API.
- [Add authentication with API Key](https://docs.zapier.com/platform/build/apikeyauth): API Key authentication passes along a user-entered API Key with every API call. In your Zapier integration using API Key authentication, the API key—and optionally any other data your API needs—is included every time a Zap step runs.
- [Authentication](https://docs.zapier.com/platform/build/auth): Connecting an app to Zapier starts with authentication. Users select an app they wish to use in their Zap, authenticating their account with that app to allow Zapier to access their data.
- [Add authentication with Basic Authentication](https://docs.zapier.com/platform/build/basicauth): APIs using Basic Authentication will authenticate users with a username and password. In your Zapier integration using Basic Auth, Zapier includes the username and password credentials in the API request bundle every time Zapier polls an API endpoint for new data or posts new data to an API endpoint.
- [Reference user-entered details with data bundles](https://docs.zapier.com/platform/build/bundle): Zapier stores data from users' authentication and input forms for API calls in the `bundle` object. You can reference that data in your integration using `{{bundle.bundleName.field}}` text in API requests and connection labels, replacing `bundleName` with the bundle name and `field` with the input field key or API response field key you need.
- [Add an instant trigger using REST Hooks in Zapier Platform CLI](https://docs.zapier.com/platform/build/cli-hook-trigger): REST Hooks are an alternative to polling. The main differences are allowing your customers' Zaps to trigger instantly; and avoiding polling triggers' numerous - and sometimes unnecessary - requests to your API's endpoints to check for new data.
- [Use Code Mode to refine your API call](https://docs.zapier.com/platform/build/code-mode)
- [Use computed fields in OAuth or Session Authentication](https://docs.zapier.com/platform/build/computed-fields): When adding a field in your integration's authentication configuration, Zapier offers two field type options; field and computed field. The field option allows users to enter account information needed for authentication.
- [Compute a field from the data of the Test API call](https://docs.zapier.com/platform/build/computed-test-field): Zapier doesn't store the responses from the test API call for OAuth v2 and session authentication. Using computed fields, you can use data from a test API call later in your Zapier integration.
- [Add a connection label](https://docs.zapier.com/platform/build/connection-label): Zapier users can authenticate multiple accounts for any app. By default, every new app account added to Zapier is identified by the app's name, followed by a number (#2, #3, …) for accounts connected after the first.
- [Add a create action](https://docs.zapier.com/platform/build/create)
- [How deduplication works in Zapier](https://docs.zapier.com/platform/build/deduplication): Zapier automatically deduplicates incoming trigger data for your integration, so that Zaps do not run multiple times on the same data. Consider the following requirements for your “New Item” and “Updated Item” triggers to work as users expect.
- [Add authentication with Digest Authentication](https://docs.zapier.com/platform/build/digestauth): Digest Auth prompts users to enter their username and password, optionally along with any additional data your API requires for authentication. Zapier makes an unauthenticated API call to get the nonce from your server, and uses it to encrypt and pass the authentication data to your server with each API call.
- [Send or receive dynamic user-defined fields through your API](https://docs.zapier.com/platform/build/dynamic-field): Dynamic fields are a type of field built from an API call. Custom code runs to show fields based on other input field data. These are especially useful with project management apps, CRM apps, databases, and any other app where users can add custom, user-defined fields.
- [Use environment variables in your API call](https://docs.zapier.com/platform/build/env): Integrations can define environment variables that are available when the app's code executes. They are useful when you have data like an OAuth client ID and secret that you don't want to commit to source control. Environment variables can also be used as a way to toggle between a staging and production environment during app development and this would be recommended instead of the use of an independent integration for staging purposes.
- [Error: An array is expected](https://docs.zapier.com/platform/build/error-array-expected): When you add a polling trigger or search action to your integration, the Zapier platform [expects a bare array of new or found items returned](/platform/build/response-types), sorted in reverse chronological order. An API may instead return a result _object_ that contains the array of items the trigger/search needs.
- [Error: Got a non-object result, expected an object from create](https://docs.zapier.com/platform/build/error-non-object)
- [Error: Got a non-object result in the array, expected only objects](https://docs.zapier.com/platform/build/error-non-object-array): When using a REST Hook trigger, the data returned by the perform must be an array.
- [Add error response handling](https://docs.zapier.com/platform/build/errors): If your API returns responses with a status code above 400 that should not automatically throw an error then Zapier recommends enabling skipThrowForStatus.
- [Field types](https://docs.zapier.com/platform/build/field-definitions)
- [Use form mode to setup your API calls](https://docs.zapier.com/platform/build/form-mode): In the Platform UI, when building your authentication, triggers and actions, the default setting under _API Configuration_ is to create each component of your integration using Form Mode.
- [Add a REST Hook trigger](https://docs.zapier.com/platform/build/hook-trigger): Set up your REST Hook trigger in the Platform UI with the Settings, Input Designer and API Configuration tabs.
- [Use hydration in Platform CLI](https://docs.zapier.com/platform/build/hydration-cli): The best answer to this lives in our [CLI docs](https://docs.zapier.com/platform/reference/cli-docs#dehydration):
- [Hydration/dehydration limits](https://docs.zapier.com/platform/build/hydration-limits): [File dehydration](https://github.com/zapier/zapier-platform/blob/main/packages/cli/README.md#dehydration) is an extremely useful tool to remain within time and size constraints for Zapier triggers and actions. However, it does have its own limits.
- [Add line item group field to actions](https://docs.zapier.com/platform/build/line-items): Input fields in Zapier add one item each time the Zap runs. But, if you want users to be able to add multiple items in a single Zap run, then this can be achieved by using a line item group. This group takes line items, which are comma-separated values, and adds each instance of the values to the app in a single Zap run.
- [Add authentication with OAuth v2](https://docs.zapier.com/platform/build/oauth): OAuth v2 authentication matches in appearance the login process users expect from most modern apps.
- [Zapier operating constraints](https://docs.zapier.com/platform/build/operating-constraints): Zapier offers a relatively unique run-time environment for your integration and its requests to your API. The environment is stateless and restricts both execution time and payload size to offer normalized reliability and running time. There are three distinct contexts of this run-time that your integration will need to consider.
- [Use pagination in triggers](https://docs.zapier.com/platform/build/pagination-trigger): By default, Zapier triggers fetch new or recently updated data to start Zaps, and only need to find the most recently added items. Triggers can also be used to populate [dynamic dropdown fields](/platform/build/add-fields#dynamic-dropdown), and there they need to find all possible items to populate the field.
- [Add a polling trigger](https://docs.zapier.com/platform/build/polling-trigger): Set up your polling trigger in the Platform UI with the Settings, Input Designer and API Configuration tabs.
- [Reduce requests to your API](https://docs.zapier.com/platform/build/reduce-api-requests)
- [Reorder or remove action](https://docs.zapier.com/platform/build/reorder-action): Whenever a user selects your app's integration in a Zapier action step, they'll see every _create_ and _search_ action in your integration.
- [Reorder or remove triggers](https://docs.zapier.com/platform/build/reorder-trigger): Triggers are listed in alphabetical order in the Zap editor and this order cannot be changed.
- [Add authentication fields to Request Template](https://docs.zapier.com/platform/build/requesttemplate): The Request Template is a request editor that lets users set static values that apply to all requests made by this integration. Users can configure the URL params, HTTP headers and request body. This is the perfect place to set authentication fields.
- [Response types Zapier expects](https://docs.zapier.com/platform/build/response-types): With every API call, Zapier expects the response data to be returned in a specific response type. This can vary depending on what part of your integration you're working on. Use the table below to identify the correct response type to use
- [Output data, defining sample data and output fields](https://docs.zapier.com/platform/build/sample-data): This guide will explain what output data, sample data and output fields are and how to modify them in your triggers or actions.
- [Add a search action](https://docs.zapier.com/platform/build/search)
- [Add a search or create action](https://docs.zapier.com/platform/build/search-or-create): When adding a _search_ action type, you'll see the option to _Pair an existing search and a create to enable “Find or Create” functionality_ in the _Settings_ page. This embeds the _create_ inside the _search_ step to find or create items in one step of the Zap.
- [Add authentication with Session Authentication](https://docs.zapier.com/platform/build/sessionauth): Session authentication has elements of Basic authentication — where Zapier requests a username and password, and OAuth v2 — where Zapier redirects users to the app's site to allow access. User credentials are exchanged for a token used to authenticate subsequent API calls.
- [Enable static IP address connection for customers](https://docs.zapier.com/platform/build/static-ip): To enable customers to access your integration by static IP address, all outbound traffic from Zapier to your integration will need to be routed through a smaller set of consistent IP addresses. Any app owner/developer can request to enable the static IP address feature on a private or public app.
- [Validate domain and subdomain input fields during authentication](https://docs.zapier.com/platform/build/subdomain-validation): When adding a subdomain input field, commonly used in OAuth implementations, additional validation is strongly recommended to prevent a potential security vulnerability. If not taken into account, an attacker could utilize a maliciously constructed subdomain field (like `attacker-domain.com/`) in order to redirect OAuth connection requests to that attacker-controlled domain (because `attacker-domain.com/.your-domain.com` resolves to the attacker's domain instead of the expected one). Taking the following steps prevents the potential for an attacker to access your integration's sensitive authentication information, such as the OAuth client ID or secret.
- [Test authentication](https://docs.zapier.com/platform/build/test-auth): Testing a user's authentication is crucially important, as it is later used to test subsequent trigger and action steps when built.
- [Test and monitor your integration in your Zapier account](https://docs.zapier.com/platform/build/test-monitoring): Testing inside the Platform UI is crucial during the building process. To ensure users can benefit from your integration's features, it is equally crucial to test your integration within the Zap editor. This is the best way to notice details that might have been overlooked while building your integration.
- [Testing Tools](https://docs.zapier.com/platform/build/test-tools): The Zapier platform provides a set of tools to help inform and validate your integration before pushing changes out to users.
- [Test triggers or actions](https://docs.zapier.com/platform/build/test-triggers-actions): Once authentication is tested, trigger and action steps are easy to test inside Zapier visual builder. Set up the trigger or action settings and API calls, then as the last step the familiar _Test Your API Response_ box appears. It will show any accounts you added to your integration previously during the authentication testing.
- [Trigger](https://docs.zapier.com/platform/build/trigger)
- [Troubleshoot action payload size](https://docs.zapier.com/platform/build/troubleshoot-action-payload)
- [Troubleshoot action timeouts](https://docs.zapier.com/platform/build/troubleshoot-action-timeouts)
- [Troubleshoot custom fields](https://docs.zapier.com/platform/build/troubleshoot-custom-fields)
- [Troubleshoot throttles](https://docs.zapier.com/platform/build/troubleshoot-throttles)
- [Troubleshoot trigger payload size](https://docs.zapier.com/platform/build/troubleshoot-trigger-payload)
- [Troubleshoot trigger timeouts](https://docs.zapier.com/platform/build/troubleshoot-trigger-timeouts)
- [Developer Platform Login](https://docs.zapier.com/platform/dev-platform-login)
- [Partner Solutions Documentation](https://docs.zapier.com/platform/embed/partner-solutions): Heads up, our [Embed docs](https://docs.api.zapier.com/guides/intro) have moved.
- [Welcome](https://docs.zapier.com/platform/home)
- [Active users retention](https://docs.zapier.com/platform/manage/active-users): At Zapier, churn means a user used your integration in their Zaps 29 - 56 days ago, but hasn't run a successful task in one of those Zaps in the past 28 days. This user is considered to have churned from the integration. Maybe they switched to using a competing integration or their workflow had a more periodic or seasonal cadence.
- [Invite team members to your integration](https://docs.zapier.com/platform/manage/add-team): Integrations do not have a dedicated owner, instead they are managed by a team that can be modified as needed. Add team members to your integration to collaborate, contribute, and view analytics data for your integration on the Developer Platform. Your integration team can have up to 200 team members, regardless of whether your integration is Private or Public.
- [null](https://docs.zapier.com/platform/manage/api-outage): Zapier recognizes that temporary unavailability is sometimes inevitable for your API.
- [Change authentication field keys](https://docs.zapier.com/platform/manage/auth-keys)
- [Add required authentication field](https://docs.zapier.com/platform/manage/auth-required)
- [Change authentication type](https://docs.zapier.com/platform/manage/auth-scheme): If your API's authentication method changes, you would need to change the method Zapier uses to authenticate user accounts.
- [Add integration branding in Platform CLI](https://docs.zapier.com/platform/manage/branding-cli): When you make a new integration in Zapier CLI, you can add the app's name, description, and homepage to the `package.json` file.
- [Changes to your API can impact your integration](https://docs.zapier.com/platform/manage/change-api)
- [Change trigger or action key](https://docs.zapier.com/platform/manage/change-keys)
- [Update perform method for polling trigger](https://docs.zapier.com/platform/manage/change-perform)
- [Change trigger from polling to REST Hook](https://docs.zapier.com/platform/manage/change-trigger)
- [Clone a version](https://docs.zapier.com/platform/manage/clone): Cloning allows you to duplicate an existing version of your integration. This is particularly useful when you want to introduce new features or fixes without altering the original integration. When a previous version of your integration has more than 5 active users, you will need to clone that version to make modifications.
- [Deprecate or delete a version](https://docs.zapier.com/platform/manage/deprecate): Deprecation is an optional process that allows you to set a date from which a non-public version of your integration will no longer be updated. Deprecation is only recommended if the older integration version will eventually stop working, such as if the related API will be removed. Zapier is normally a “set it and forget it” experience for users, so use this feature carefully. Only if the older version will no longer function, should it be deprecated. Please note that deprecating a version is significantly more disruptive to our mutual users than migrating to the latest promoted version, or than leaving users on an older (now) private version if migration is not possible.
- [Embed activation rates](https://docs.zapier.com/platform/manage/embed-activation): Consider all the user clicks on Zap Templates surfaced in your embeds. The embed activation rate is the percentage of those Zaps that actually activated within 24 hours of creation, meaning the Zap ran at least one successful task. It measures the efefctiveness of the Zapier embeds in your product at converting user clicks on Zap Templates to Zap activations.
- [Embed insights definitions](https://docs.zapier.com/platform/manage/embed-insights): Embed features are available for public integrations.
- [Improve error response handling](https://docs.zapier.com/platform/manage/error-handling): Errors from your API cause pain for users at two vital points:
- [Essential tips for integrating quality health practices](https://docs.zapier.com/platform/manage/essential-tips-iq): Our shared customers rely on Zapier and your integration for business-critical workflows. Addressing feedback early and often ensures users have the best experience, both with Zapier's platform and yours. Follow these tips on how.
- [Export integration to Platform CLI](https://docs.zapier.com/platform/manage/export-cli): The Zapier Platform CLI (Command Line Interface) is a toolset you install and run in your local development environment. It allows you to build, test, and manage your Zapier integration through JavaScript code and terminal commands.
- [Export integration to Platform UI](https://docs.zapier.com/platform/manage/export-ui): The Zapier Platform UI is the easiest way for anyone with API experience to build Zapier integrations. It is for users more comfortable with a visual form editor.
- [Change input form field key](https://docs.zapier.com/platform/manage/input-key)
- [Integration insights definitions](https://docs.zapier.com/platform/manage/integration-insights): Integration quality on Zapier boils down to two main pillars: **Health** and **Depth**.
- [Migrate users to a new version](https://docs.zapier.com/platform/manage/migrate): If this isn't the first time you've promoted your app - you might have users on older versions.
- [Change output data response](https://docs.zapier.com/platform/manage/output)
- [Change output field key](https://docs.zapier.com/platform/manage/output-key)
- [Planning and implementing integration changes](https://docs.zapier.com/platform/manage/planning-changes): Before making updates to your integration, it's important to consider the potential impact on user migration and existing Zaps. Ensuring your API and Zapier integration remains backwards compatible is crucial to avoid disruption to users. However, we acknowledge certain changes are sometimes necessary and unavoidable. In such cases, consider the best practice for implementation.
- [Promote a version](https://docs.zapier.com/platform/manage/promote): After your integration has entered the beta or public status, you can set a new default version for public use. This process is called promoting a version.
- [Add new required input field](https://docs.zapier.com/platform/manage/required-input)
- [Share your integration](https://docs.zapier.com/platform/manage/sharing): Once an integration is public, all users would have access to it when searching for an app's name in the Zap Editor, or in the [Zapier App Directory](https://zapier.com/apps).
- [Respond to user feedback and bugs](https://docs.zapier.com/platform/manage/user-feedback): For public integrations, Zapier's Support team logs user requests and reported problems in Zapier's issue tracker, that your team can see from the _Bug & Feature Requests_ page in the Manage section.
- [Versions](https://docs.zapier.com/platform/manage/versions): Versions in Developer Platform allow developers to create multiple iterations of their integration to experiment with and implement new features without affecting existing users. Each integration can have many versions, but only one version can have a public status at a one time.
- [Manage a legacy integration](https://docs.zapier.com/platform/manage/versions-legacy)
- [Zap activation rates](https://docs.zapier.com/platform/manage/zap-activation): Consider all of the Zaps that users try to create with your integration's triggers, actions, or searches. The Zap activation rate is the percentage of those Zaps that actually activated within 24 hours of creation, meaning the Zap ran at least one successful task.
- [Add or modify integration branding and details](https://docs.zapier.com/platform/publish/add-or-modify-branding): When creating a new integration in the Platform UI from the link `https://developer.zapier.com/app/new`, you'll be prompted to add the app name, description, homepage URL and logo.
- [A Guide to Zapier Partner Program Benefits: Accelerate your integration's growth and reach](https://docs.zapier.com/platform/publish/benefits-guide): Zapier offers a variety of marketing and support benefits to partners. This cheat sheet is designed to help you understand when and how you can access each of these benefits as you unlock them.
- [Best practices for showcasing your integration](https://docs.zapier.com/platform/publish/best-practices): Sharing well-crafted content about your Zapier integration can help you improve user adoption, highlight key use cases, and simplify integration processes. Need some inspiration? The following examples show how some of our partners are effectively communicating their Zapier integrations across different platforms.
- [Integration branding guidelines](https://docs.zapier.com/platform/publish/branding-guidelines): When creating your integration, you'll add your app’s name, logo, description, category, and primary brand color. Consistent branding is essential for helping users recognize and discover your app on Zapier.
- [Integration build guidelines](https://docs.zapier.com/platform/publish/integration-build-guidelines): Before publishing your integration on Zapier, it is essential to ensure that your integration is well-prepared to provide a seamless and efficient user experience. The following guidelines are designed to assist you in refining your integration before submitting it for review. Adhering to these guidelines will help enhance the functionality and user interaction with your integration and will provide you with the best value and opportunities to harness Zapier as a method of obtaining new users and most commonly, boosting the lifetime value of your current customers.
- [Integration check reference](https://docs.zapier.com/platform/publish/integration-checks-reference): Before you can submit your integration for publishing, it runs through a set of automated checks to ensure it's working properly and giving our users (and yours) the best possible experience.
- [Integration publishing requirements](https://docs.zapier.com/platform/publish/integration-publishing-requirements): We're excited you are creating an integration for the [Zapier Platform](https://zapier.com/developer-platform). We're here to help you understand our platform and its requirements so that you can successfully prepare your Zapier integration for publishing. Thousands of partners have built integrations on the Zapier Platform that enable our mutual users to set up Zaps as easily and quickly as possible.
- [Integration success strategies](https://docs.zapier.com/platform/publish/partner-faq): With 7,000+ public integration partners on Zapier, use these 10 tried-and-true tactics from our top partners to skyrocket your growth and earn you more [benefits from the Partner Program](https://zapier.com/developer-platform/partner-program).
- [Partner Program](https://docs.zapier.com/platform/publish/partner-program): The [Zapier Partner Program](https://zapier.com/developer-platform/partner-program) is a program for Zapier's [6,000+ integration partners](https://zapier.com/apps). It is designed to give all partners a clear path to success for their integrations and reward them with benefits along the way.
- [Build your first public integration on Zapier](https://docs.zapier.com/platform/publish/public-integration): This guide gives an overview of the process to publishing a public integration.
- [Create help documentation for your users](https://docs.zapier.com/platform/publish/user-help): The Zapier team provide frontline support for your integration, and in order to provide the best experience for your users, help documentation about using your integration in Zaps is hosted in the [Zapier Help Center](https://help.zapier.com/hc/en-us).
- [Zap templates](https://docs.zapier.com/platform/publish/zap-templates): Zapier empowers apps to do together what they can't on their own. With a bit of inspiration and creativity, your users can pull dozens of apps together into unique workflows to get more done with your app in far less time.
- [Zapier Partner Sandbox](https://docs.zapier.com/platform/publish/zps): Zapier Partner Sandbox is a workspace for people in your organization who are on your integration team.
- [Build your integration on Zapier](https://docs.zapier.com/platform/quickstart/build-integration): This guide will walk you through what steps you need to take to build an integration from start to finish. There are no fees to build an integration with Zapier.
- [Platform CLI tutorial](https://docs.zapier.com/platform/quickstart/cli-tutorial): This tutorial walks you through the process of building, testing, and pushing an example app to Zapier using Platform CLI. We'll use a mock API for recipes in this tutorial, but for production Zapier apps, you'd want to connect to a real API.
- [Get help with the Zapier Platform](https://docs.zapier.com/platform/quickstart/get-help): Get help building your app integration through the following channels:
- [Zapier Glossary](https://docs.zapier.com/platform/quickstart/glossary)
- [How Zapier works](https://docs.zapier.com/platform/quickstart/how-zapier-works): [Zapier is a tool](https://zapier.com/how-it-works) that helps you automate repetitive tasks between two or more apps, no code necessary. Our customers use Zapier to move information from one app to another automatically rather than manually. Each Zap you create starts with a trigger (something that happens in one app) and then one or more actions (something else that happens in another app).
- [Private vs public integrations](https://docs.zapier.com/platform/quickstart/private-vs-public-integrations): When building an integration on the Zapier Platform, you must specify the intended audience.
- [Recommended triggers and actions](https://docs.zapier.com/platform/quickstart/recommended-triggers-and-actions): Whether you’re just starting to scope out a new Zapier integration build or have successfully launched your app in the Zapier App Directory, it’s helpful to know what features users find the most valuable and are the most widely used across Zapier’s various [app categories](https://zapier.com/apps). Ensuring your integration covers the foundational triggers, actions, and searches applicable to your app will provide more utility to your users.
- [Zapier trusted app developers](https://docs.zapier.com/platform/quickstart/trusted-developers): If you don't have the time/resources to dedicate towards building and launching your own integration, there are Zapier trusted developers who may be able to assist you. These are individuals/groups who have demonstrated their capabilities by satisfying our requirements for building apps on our Developer Platform, and we recommend as a substitute for building your integration in-house.
- [Platform UI tutorial](https://docs.zapier.com/platform/quickstart/ui-tutorial): This tutorial walks you through the process of building an integration on Zapier with authentication, a trigger and an action using the Platform UI.
- [Platform UI vs Platform CLI](https://docs.zapier.com/platform/quickstart/ui-vs-cli): There are two different developer tools to build either private or public integrations with on the Zapier Developer Platform: Platform UI or Platform CLI.
- [Zapier integration structure](https://docs.zapier.com/platform/quickstart/zapier-integration-structure): [Zapier's Developer Platform](https://developer.zapier.com/) includes everything needed to build and manage a new Zapier integration. When you access your integration project by name, you'll see the left sidebar outlines the core project structure.
- [AI Actions](https://docs.zapier.com/platform/reference/ai-actions): Zapier's [AI Actions](https://actions.zapier.com/) is an AI alpha product designed to work with natural language-based products. It leverages the Zapier platform, with over [6000 apps](https://zapier.com/apps). You can include the capabilities of Zapier's platform in your own product.
- [Zapier integration structure for an AI app](https://docs.zapier.com/platform/reference/ai-app): AI app integrations built on Zapier allow users to automate tasks using AI capabilities. Here are some common pain points and recommendations when building AI apps on Zapier.
- [Changelog](https://docs.zapier.com/platform/reference/changelog)
- [Zapier CLI Reference](https://docs.zapier.com/platform/reference/cli)
- [Zapier integration structure for a CRM app](https://docs.zapier.com/platform/reference/crm-app): CRM (customer relationship management) apps are detailed databases that link contacts with companies, companies with deals, and more.
- [Custom Actions and API Requests Actions](https://docs.zapier.com/platform/reference/custom-actions-api-requests): [Custom Actions](https://help.zapier.com/hc/en-us/articles/16276574838925-App-Extensions-in-Zapier) and [API Requests](https://help.zapier.com/hc/en-us/articles/12899607716493-Set-up-an-API-request-action#prerequisites-0-0) are features that have been developed internally at Zapier, designed to help our mutual customers achieve the most value out of your app integration.
- [Zapier integration structure for a forms app](https://docs.zapier.com/platform/reference/forms-app): Form and survey app integrations built on Zapier allow users to connect mobile data collection forms to send the responses into other apps as new contacts, document templates, messages, and more.
- [Scripting in converted Legacy Web Builder Integrations](https://docs.zapier.com/platform/reference/legacy-scripting): This guide provides instructions on editing and maintaining existing scripting methods for legacy web builder integrations that have been converted to either the Platform UI or Platform CLI.
- [Zapier integration structure for a project management app](https://docs.zapier.com/platform/reference/project-app): While you can't automate project work, you can automatically add tasks, create new projects, and keep track of progress via an app integration on Zapier.
- [Schema](https://docs.zapier.com/platform/reference/schema)
- [Transfer](https://docs.zapier.com/platform/reference/transfer): [Transfer](https://help.zapier.com/hc/en-us/articles/8496274335885) is a Zapier functionality that enables users to perform bulk operations using their historical data.
## Optional
- [Community](https://community.zapier.com/)
- [Blog](https://zapier.com/blog/)
- [Contact Us](https://developer.zapier.com/contact)