Partner API
Introduction
The Partner API is the best tool for complete style control over a user’s Zapier experience within your app. Essentially, it lets you customize how you present Zapier within your product without sacrificing your app’s look, feel, and flow.
Think of it as a native Zapier integration, helping you showcase your best Zapier-powered workflows where it’s most helpful to your users (within the flow of your tool). You can customize styling, streamline Zap set-up for users, expose relevant Zap information, and more!
With the Partner API, you can:
- Get a list of all the apps available in Zapier’s app directory so you can power your app directory and show your users all the integration possibilities with your Zapier integration.
- Have complete style control over how you present Zap templates in your product. The Partner API gives you access to the raw Zap Template data so you can give your users access to your Zap template with your product’s style, look and feel.
- Get access to all your Zap templates and give your users the ability to search to quickly find the one they need.
- Streamline Zap setup by pre-filling fields on behalf of your users.
- Show users the Zaps they have set up from right within your product keeping them on your site longer and giving them complete confidence in their Zapier integration.
- Embed our Zap Editor to allow your users to create new Zaps and modify existing ones, without needing to leave your product.
Once your integration is public, the integration’s client ID needed to call the Partner API will be revealed under the Embed > Settings or Embed > Partner API section of the Developer Platform.
Authentication
There are two ways to authenticate with the Partner API.
- Your application’s
client_id
which you will receive once you are approved for access to the API - A user’s access token
Which authentication method you should use depends on which endpoint(s) you are using. Review each endpoint’s documentation to understand which parameters are required.
Note: while we do generate a
client_secret
, the type of grant we use (implicit
) doesn’t need it so it’s not something we provide.
Access Token
For resources that require a valid access token you can use the OAuth2 protocol. At the moment, we only permit the implicit
grant type. Should your use case require a different grant type send us your request. There’s also a suggested workaround on how to work with an implicit oauth flow below.
Procuring a Token
Construct the following URL, and redirect the user to authorize your application:
https://zapier.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={scope}
Parameter | Requirement | Explanation |
---|---|---|
client_id | Required | Your application ID. |
redirect_uri | Required | The URI you provided in the sign-up form. If you need to modify this, you’ll need to send us a request. |
response_type | Required | Use token . |
scope | Optional | Space (%20 ) separated values. See each resource for their required scope, if any. This (and all other params) should be properly url encoded. |
approval_prompt | Optional | One of auto or force . Use auto if the second authorization (before expiration of previous token) should not prompt the user to re-authorize. Use force if the user should authorize your application again. |
state | Optional | A unique string to help your application guard against XSRF. |
Example Prompt
Receiving the Token, or Error
If the user cancels, or approves the authorization the user will be redirected to your redirect_uri
with the following example urls:
Approved
http://your.redirect.url/#access_token=iuqhw8egojqenduvybtoken_type=Bearer&expires_in=36000&scope=zap
Cancelled
http://your.redirect.url/?error=access_denied
Your application should use JavaScript to parse the hash parameter and use the token as needed. The access token will not expire. If ever invalid, however, provide the user with the authorize flow once more. In the implicit
grant type, there are no refresh tokens. You can use a hidden iframe with approval_prompt=auto
, or ask the user to authorize once more, to receive new tokens.
Using the token:
Preferred use of the tokens is via an HTTP Authorization Header.
curl -H "Authorization: Bearer {token}" "https://api.zapier.com/v1/zaps"
Workaround for Implicit Only
While we consider and implement other OAuth flows, the following is a suggested workaround for working with the implicit OAuth flow. A sequence diagram is provided for the example:
The idea is to use an intermediate page that reads the access token from the URL fragment. An example like so: https://your.app/your/redirect_uri#access_token=THE_USER_ACCESS_TOKEN
. Then the page would POST
to your backend the access token. If you created a popup, you can also use a postMessage
to pass the access token to the main page. Ultimately, you’ll want to save the token to your backend for the signed in user. Once the backend returns a successful save, then redirect the user (or close the popup) back to the page you’d like the user to interact with your page and uses the access token.
Endpoints
GET /v1/apps
URL | Protected By |
---|---|
api.zapier.com/v1/apps | Client ID |
Notes
- Your own app will not be returned.
- Zapier built-in apps will not be returned.
- Order of the result is by app popularity.
Arguments
Available parameters to the Apps resource:
parameter | requirement | notes |
---|---|---|
client_id | Required | Your application client ID. |
category | Optional | Filter the results by app category slug. |
is_in_zap_template_with | Optional | Fetch apps that appear in a Zap Template with your app (no value required). |
title_search | Optional | Filter the results with a case-insensitive search for a substring within the app title. |
title_starts_with | Optional | Fetch apps with a title that starts with this value (case-insensitive). |
per_page | Optional | (defaults to 100, max of 100) Limit the number of apps returned. |
page | Optional | (defaults to 1) The page number. Page number 1 refers to the first page in the result. |
Example Requests
Get apps that can be integrated with my app.
curl -L "https://api.zapier.com/v1/apps?client_id=${client_id}"
Get a list of apps related to google
curl -L "https://api.zapier.com/v1/apps?client_id=${client_id}&category=google"
Get a list of apps that are included in the same Zap Template as your app
curl -L "https://api.zapier.com/v1/apps?client_id=${client_id}&is_in_zap_template_with"
Get the Google Calendar app
curl -L "https://api.zapier.com/v1/apps?client_id=${client_id}&title_search=google+calendar"
Get a list of apps where the title starts with google
curl -L "https://api.zapier.com/v1/apps?client_id=${client_id}&title_starts_with=google"
Get apps that can be integrated with my app, returning only 5 results per page
curl -L "https://api.zapier.com/v1/apps?client_id=${client_id}&per_page=5"
Example Response
Refer to the App object reference for all the available fields.
{
"total": 3649,
"page": 2,
"pages": 1825,
"per_page": 2,
"objects": [
{
"uuid": "ca83afc5-ee9a-470d-b577-e7f8fd555b67",
"title": "Slack",
"slug": "slack",
"description": "Slack is a platform for team communication: everything in one place, instantly searchable, available wherever you go. Offering instant messaging, document sharing and knowledge search for modern teams.",
"image": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"url": "https://api.zapier.com/v1/embed/apps/google-ads/integrations/slack",
"links": {
"mutual:zap_templates": "https://api.zapier.com/v1/zap-templates?apps=slack"
},
"categories": [
{
"slug": "team-chat"
}
],
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"app_latest": "SlackAPI"
},
{
"uuid": "d74234df-0045-436e-bd5b-ee577e74e6b8",
"title": "Google Calendar",
"slug": "google-calendar",
"description": "Google Calendar lets you organize your schedule and share events with co-workers and friends. With Google's free online calendar, it's easy to keep track of your daily schedule.",
"image": "https://zapier-images.imgix.net/storage/services/62c82a7958c6c29736f17d0495b6635c.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"url": "https://api.zapier.com/v1/embed/apps/google-ads/integrations/google-calendar",
"links": {
"mutual:zap_templates": "https://api.zapier.com/v1/zap-templates?apps=google-calendar"
},
"categories": [
{
"slug": "calendar"
},
{
"slug": "google"
}
],
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/62c82a7958c6c29736f17d0495b6635c.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/62c82a7958c6c29736f17d0495b6635c.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/62c82a7958c6c29736f17d0495b6635c.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/62c82a7958c6c29736f17d0495b6635c.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"app_latest": "GoogleCalendarAPI"
}
],
"prev_url": "https://api.zapier.com/v1/apps?per_page=2&page=1",
"next_url": "https://api.zapier.com/v1/apps?per_page=2&page=3"
}
GET /v1/zap-templates
URL | Protected By |
---|---|
api.zapier.com/v1/zap-templates | Client ID |
Arguments
Available parameters to the Zap templates resource:
parameter | requirement | notes |
---|---|---|
client_id | Required | Your application client ID. |
templates | Optional | A comma separated list of specific Zap templates. |
apps | Optional | A comma separated list of Zapier Apps to match Zap templates against. Note: Your app will always be one of the apps. |
limit | Optional | (defaults to 5, max of 100) Limit the number of Zap templates returned. |
offset | Optional | (defaults to 0) The number of Zap templates to skip before beginning to return the Zap templates. The default value is 0, which is the offset of the first item. |
Example Requests
Get all Zap templates for my app.
curl -L "https://api.zapier.com/v1/zap-templates?client_id=${client_id}"
Get all Zap templates that include my app and another.
curl -L "https://api.zapier.com/v1/zap-templates?client_id=${client_id}&apps=mailchimp"
Example Response
Refer to the Zap template reference for all the available fields.
[
{
"id": 51652,
"steps": [
{
"id": 1,
"uuid": "b9df4eff-f311-44f9-ac54-2901f952c6ac",
"title": "Google Ads",
"slug": "google-ads",
"description": "Google Ads (formerly Google AdWords) is an online advertising platform developed by Google, where advertisers pay to display brief advertisements, service offerings, product listings, video content, and generate mobile application installs within the Google ad network to web users.",
"image": "https://zapier-images.imgix.net/storage/services/4058ec8b47ad751cbd39bd686cf4eab7.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"hex_color": "4285F4",
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/4058ec8b47ad751cbd39bd686cf4eab7.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/4058ec8b47ad751cbd39bd686cf4eab7.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/4058ec8b47ad751cbd39bd686cf4eab7.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/4058ec8b47ad751cbd39bd686cf4eab7.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"api": "GoogleAdsCLIAPI@3.0.0",
"url": "https://zapier.com/apps/google-ads/integrations?utm_medium=partner_api",
"label": "New Campaign"
},
{
"id": 2,
"uuid": "ca83afc5-ee9a-470d-b577-e7f8fd555b67",
"title": "Slack",
"slug": "slack",
"description": "Slack is a platform for team communication: everything in one place, instantly searchable, available wherever you go. Offering instant messaging, document sharing and knowledge search for modern teams.",
"image": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"hex_color": "510f4d",
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/6cf3f5a461feadfba7abc93c4c395b33_2.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"api": "SlackAPI",
"url": "https://zapier.com/apps/slack/integrations?utm_medium=partner_api",
"label": "Send Channel Message"
}
],
"title": "Send messages to Slack channels whenever new Google Ads campaigns launch",
"slug": "send-messages-to-slack-channels-whenever-new-google-ads-campaigns-launch",
"status": "published",
"description_plain": "A new Google Ads campaign can mean the start of your next marketing push, but it can also mean the start of a ton of new sales and service workflows. Zapier gives you a head start on those projects by automatically posting a new message in Slack to a specific channel you choose. Give your teams the heads up they need before your new clients come rolling in!\n",
"description_raw": "A new Google Ads campaign can mean the start of your next marketing push, but it can also mean the start of a ton of new sales and service workflows. Zapier gives you a head start on those projects by automatically posting a new message in Slack to a specific channel you choose. Give your teams the heads up they need before your new clients come rolling in!",
"url": "https://zapier.com/apps/google-ads/integrations/slack/51652/send-messages-to-slack-channels-whenever-new-google-ads-campaigns-launch?utm_medium=partner_api",
"description": "<p>A new Google Ads campaign can mean the start of your next marketing push, but it can also mean the start of a ton of new sales and service workflows. Zapier gives you a head start on those projects by automatically posting a new message in Slack to a specific channel you choose. Give your teams the heads up they need before your new clients come rolling in!</p>\n",
"create_url": "https://api.zapier.com/v1/embed/google-ads/create/51652",
"type": "guided_zap"
}
]
Paging through results using limit and offset
By default, this API returns the first 5 Zap templates. To get a different set of items,
you can use the offset
and limit
parameters in the query string.
For example, to get 20 Zap templates, skipping the first 20 results:
curl -H "Authorization: Bearer {token}" \
-L "https://api.zapier.com/v1/zap-templates?client_id=${client_id}&limit=20&offset=20"
GET /v1/zaps
URL | Protected By | Required Scopes |
---|---|---|
api.zapier.com/v1/zaps | Access Token | zap |
Note
The zaps returned are narrowed/filtered by your Zapier app. For example, if you are Trello you’ll only be returned a user’s Zap that contain Trello in one of the steps of the Zap.
If your app is built with the Zapier CLI the Zaps returned are for any version of your app.
Arguments
Available parameters to the Zaps resource:
parameter | requirement | notes |
---|---|---|
params__{KEY}={VALUE} | Optional | Return Zaps that have a specific key/value set in the params (settings) of the Zap. |
get_params | Optional | Return Zaps along with their associated key/value param settings. |
limit | Optional | (defaults to 5, max of 100) Limits the number of returned items |
offset | Optional | (defaults to 0) the number of Zaps to skip before beginning to return the Zaps. The default value of 0, which is the offset of the first item. |
Example Requests
Get all Zaps in the user’s account (note this will only include the OAuth app that is associated with the Zapier app).
curl -H "Authorization: Bearer {token}" -L "https://api.zapier.com/v1/zaps"
Get all Zaps in the user’s account that have a particular Trello board (assuming the OAuth app is Trello).
curl -H "Authorization: Bearer {token}" -L "https://api.zapier.com/v1/zaps?¶ms__board=BOARD_ID"
Get all Zaps in the user’s account and include Trello steps’ params
key/value pairs (assuming the OAuth app is Trello).
curl -H "Authorization: Bearer {token}" -L "https://api.zapier.com/v1/zaps?&get_params"
Example Response
Refer to the Zap reference for all the available fields.
{
"next": "https://api.zapier.com/v1/zaps?limit=2&offset=4",
"previous": "https://api.zapier.com/v1/zaps?limit=2",
"count": 20,
"objects": [
{
"id": 159061877,
"title": "",
"state": "off",
"steps": [
{
"type_of": "read",
"app": {
"id": 730,
"uuid": "c91cc1ba-d8fb-4aaa-b71a-a325f7705f78",
"title": "Typeform",
"slug": "typeform",
"description": "Typeform helps you ask awesomely online! If you ever need to run a survey, questionnaire, form, contest etc. Typeform will help you achieve it beautifully across all devices, every time, using its next generation platform.",
"hex_color": "8bcbca",
"image": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"api": "TypeformCLIAPI@1.0.25",
"url": "https://zapier.com/apps/typeform/integrations?utm_source=partner&utm_medium=embed&utm_campaign=partner_api&referer=None"
},
"params": null
},
{
"type_of": "write",
"app": {
"id": 60,
"uuid": "b9df4eff-f311-44f9-ac54-2901f952c6ac",
"title": "Trello",
"slug": "trello",
"description": "Trello is a team collaboration tool that lets you organize anything and everything to keep your projects on task.",
"hex_color": "0079bf",
"image": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"api": "TrelloAPI",
"url": "https://zapier.com/apps/trello/integrations?utm_source=partner&utm_medium=embed&utm_campaign=partner_api&referer=None"
},
"params": {
"checklist_name": "Checklist",
"card_pos": "bottom"
}
}
],
"url": "https://zapier.com/app/editor/159061877?utm_source=partner&utm_medium=embed&utm_campaign=partner_api&referer=None",
"modified_at": "2022-08-22T15:17:30+00:00"
},
{
"id": 159061916,
"title": "",
"state": "off",
"steps": [
{
"type_of": "read",
"app": {
"id": 730,
"uuid": "c91cc1ba-d8fb-4aaa-b71a-a325f7705f78",
"title": "Typeform",
"slug": "typeform",
"description": "Typeform helps you ask awesomely online! If you ever need to run a survey, questionnaire, form, contest etc. Typeform will help you achieve it beautifully across all devices, every time, using its next generation platform.",
"hex_color": "8bcbca",
"image": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/065860c1e1210fdf4040105024099b0a.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"api": "TypeformCLIAPI@1.0.25",
"url": "https://zapier.com/apps/typeform/integrations?utm_source=partner&utm_medium=embed&utm_campaign=partner_api&referer=None"
},
"params": null
},
{
"type_of": "write",
"app": {
"id": 60,
"uuid": "b9df4eff-f311-44f9-ac54-2901f952c6ac",
"title": "Trello",
"slug": "trello",
"description": "Trello is a team collaboration tool that lets you organize anything and everything to keep your projects on task.",
"hex_color": "0079bf",
"image": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&ixlib=python-3.0.0&q=50",
"images": {
"url_16x16": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=16&ixlib=python-3.0.0&q=50&w=16",
"url_32x32": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=32&ixlib=python-3.0.0&q=50&w=32",
"url_64x64": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=64&ixlib=python-3.0.0&q=50&w=64",
"url_128x128": "https://zapier-images.imgix.net/storage/services/da3ff465abd3a3e1b687c52ff803af74.png?auto=format%2Ccompress&fit=crop&h=128&ixlib=python-3.0.0&q=50&w=128"
},
"api": "TrelloAPI",
"url": "https://zapier.com/apps/trello/integrations?utm_source=partner&utm_medium=embed&utm_campaign=partner_api&referer=None"
},
"params": {
"checklist_name": "Checklist",
"card_pos": "bottom"
}
}
],
"url": "https://zapier.com/app/editor/159061916?utm_source=partner&utm_medium=embed&utm_campaign=partner_api&referer=None",
"modified_at": "2022-08-22T15:17:30+00:00"
}
]
}
GET /v1/profiles/me
URL | Protected By | Required Scopes |
---|---|---|
api.zapier.com/v1/profiles/me | Access Token | profile |
Example Requests
Get user information related to the given access_token
curl -H "Authorization: Bearer {token}" -L "https://api.zapier.com/v1/profiles/me"
Example Response
Refer to the Profile reference for all the available fields.
{
"id": 88998899,
"first_name": "Jacob",
"last_name": "Corwin",
"email": "jacob.corwin@gmail.com",
"email_confirmed": true,
"timezone": null,
"full_name": "Jacob Corwin"
}
GET /v1/categories
URL | Protected By |
---|---|
api.zapier.com/v1/categories | None |
Arguments
Available parameters to the categories resource:
parameter | requirement | notes |
---|---|---|
limit | Optional | (defaults to 10, max of 100) Limit the number of categories. returned. |
offset | Optional | (defaults to 0) The number of categories items to skip before returning new categories. The default value is 0, which is the offset of the first item. |
Example Requests
Get a list of app categories
curl -L "https://api.zapier.com/v1/categories"
Example Response
Refer to the AppCategory reference for all the available fields.
{
"next": "https://api.zapier.com/v1/categories?offset=10&limit=10",
"previous": null,
"count": 90,
"objects": [
{
"id": 7,
"title": "Accounting",
"slug": "accounting",
"description": "Tools for accounting and finance.",
"url": "https://zapier.com/api/v4/app-directory/categories/accounting/",
"type_of": "curated",
"featured_entry_slug": "accounting-automation",
"role": "child"
},
{
"id": 77,
"title": "Ads & Conversion",
"slug": "ads-conversion",
"description": "Tools to track and reach an audience online.",
"url": "https://zapier.com/api/v4/app-directory/categories/ads-conversion/",
"type_of": "curated",
"featured_entry_slug": "improve-ppc-campaigns",
"role": "child"
},
{
"id": 106,
"title": "AI Tools",
"slug": "ai-tools",
"description": "Unlock the potential of artificial intelligence in your workflow with these AI integrations. These apps use AI to tackle everything from natural language processing to image classification, providing you with unparalleled automation power.",
"url": "https://zapier.com/api/v4/app-directory/categories/ai-tools/",
"type_of": "curated",
"featured_entry_slug": "use-openai-gpt-3-to-write-emails",
"role": "child"
},
{
"id": 87,
"title": "All",
"slug": "all",
"description": "Contains all the services.",
"url": "https://zapier.com/api/v4/app-directory/categories/all/",
"type_of": "auto",
"featured_entry_slug": null,
"role": "parent"
},
{
"id": 57,
"title": "Amazon",
"slug": "aws",
"description": "Tools from Amazon to host and manage sites and applications on the Amazon cloud.",
"url": "https://zapier.com/api/v4/app-directory/categories/aws/",
"type_of": "curated",
"featured_entry_slug": "what-you-should-automate",
"role": "child"
},
{
"id": 24,
"title": "Analytics",
"slug": "analytics",
"description": "Tools to measure and report on success",
"url": "https://zapier.com/api/v4/app-directory/categories/analytics/",
"type_of": "curated",
"featured_entry_slug": "automate-analytics-tools",
"role": "child"
},
{
"id": 31,
"title": "App Builder",
"slug": "app-builder",
"description": "Tools to build a custom app with forms and databases.",
"url": "https://zapier.com/api/v4/app-directory/categories/app-builder/",
"type_of": "curated",
"featured_entry_slug": null,
"role": "child"
},
{
"id": 95,
"title": "App Families",
"slug": "app-families",
"description": "",
"url": "https://zapier.com/api/v4/app-directory/categories/app-families/",
"type_of": "curated",
"featured_entry_slug": null,
"role": "parent"
},
{
"id": 105,
"title": "Artificial Intelligence",
"slug": "artificial-intelligence",
"description": "Unlock the potential of artificial intelligence in your workflow with these AI integrations. These apps use AI to tackle everything from natural language processing to image classification, providing you with unparalleled automation power.",
"url": "https://zapier.com/api/v4/app-directory/categories/artificial-intelligence/",
"type_of": "curated",
"featured_entry_slug": "gpt-3-prompt",
"role": "parent"
},
{
"id": 86,
"title": "Beta",
"slug": "beta",
"description": "Beta services.",
"url": "https://zapier.com/api/v4/app-directory/categories/beta/",
"type_of": "auto",
"featured_entry_slug": null,
"role": "child"
}
]
}
Data Objects
App
attribute | type | notes |
---|---|---|
uuid | String | The unique canonical identifier to the app. |
description | String | Plain text description of the app. |
links | Object | Link to get mutual Zap templates from Zapier’s Partner API. |
title | String | The name of the app. |
url | String | An absolute url to the Zapbook Apps page. |
image | String | The app’s logo in large format. |
images | Object | Thumbnails for the app image. Available sizes (and respective keys): url_128x128 , url_64x64 , url_32x32 , and url_16x16 . |
slug | String | A URL/SEO friendly ID for the app. |
categories | Object | A list of categories this app belongs to. |
app_latest | String | An identifier for the app’s production version. |
{
"uuid": "ca83afc5-ee9a-470d-b577-e7f8fd555b67",
"description": "Slack is a platform for team communication: everything in one place, instantly searchable, available wherever you go. Offering instant messaging, document sharing and knowledge search for modern teams.",
"links": {
"mutual:zap_templates": "https://api.zapier.com/v1/zap-templates?apps=slack"
},
"title": "Slack",
"url": "https://zapier.com/partner/embed/apps/trello/integrations/slack",
"image": "https://cdn.zapier.com/storage/developer/57b336375384ab62cc06e7e83d5c3622_2.png",
"images": {
"url_16x16": "https://cdn.zapier.com/storage/developer/57b336375384ab62cc06e7e83d5c3622_2.16x16.png",
"url_32x32": "https://cdn.zapier.com/storage/developer/57b336375384ab62cc06e7e83d5c3622_2.32x32.png",
"url_128x128": "https://cdn.zapier.com/storage/developer/57b336375384ab62cc06e7e83d5c3622_2.128x128.png",
"url_64x64": "https://cdn.zapier.com/storage/developer/57b336375384ab62cc06e7e83d5c3622_2.64x64.png"
},
"slug": "slack",
"categories": [
{
"slug": "team-chat"
},
{
"slug": "top-100"
}
]
}
AppCategory
attribute | type | notes |
---|---|---|
id | String | Unique identifier for the category. |
title | String | Plain text description of the category. |
slug | String | URL/SEO friendly ID for the Zap template. API. |
description | String | Detailed explanation of the app category. |
url | String | An absolute url to the Zapbook Apps page. |
type_of | String | Category type. ‘Curated’ categories are maintained by Zapier staff, ‘Automatically Generated’ categories are maintained by automation and populated with the ‘rebuild_special_categories’ command, ‘Other’ categories are manually created for various purposes. |
featured_entry_slug | String | Alternative slug for the category. |
role | String | Indicates if the category is a ‘parent’ or a ‘child’. |
{
"id": 104,
"title": "AI Tools",
"slug": "ai-tools",
"description": "Unlock the potential of artificial intelligence in your workflow with these AI integrations. These apps use AI to tackle everything from natural language processing to image classification, providing you with unparalleled automation power.",
"url": "https://zapier.com/api/v4/app-directory/categories/ai-tools/",
"type_of": "curated",
"featured_entry_slug": null,
"role": "parent"
}
Profile
attribute | type | notes |
---|---|---|
id | Number | The ID of the User. |
first_name | String | User’s first name. |
last_name | String | User’s last name. |
String | User’s email. | |
email_confirmed | Boolean | Says if the user confirmed the email to Zapier. |
timezone | String | User’s timezone. |
full_name | String | User’s full name |
{
"id": 88998899,
"first_name": "Jacob",
"last_name": "Corwin",
"email": "jacob.corwin@gmail.com",
"email_confirmed": true,
"timezone": null,
"full_name": "Jacob Corwin"
}
Zap
attribute | type | notes |
---|---|---|
id | Number | The ID of the Zap. |
modified_at | Date | The last modified date time. |
state | String | One of 'on' , 'off' , or 'draft' |
steps | Array |
An array steps in the Zap. See Zap Step. |
title | String | The name of the Zap, if any, otherwise null . |
url | String | An absolute url to the Zap (to edit). |
{
"id": 125,
"modified_at": "2017-03-22T09:38:11-05:00",
"state": "on",
"steps": [{ "See Step object definition ..." }],
"title": "Create Trello cards from new Typeform entries",
"url": "https://zapier.com/app/editor/125"
}
Zap Step
attribute | type | notes |
---|---|---|
type_of | String | One of 'read' , 'write' , 'filter' , 'search' , or 'search_or_write' |
app | App | The app for the step. See App object. |
{
"app": {
/* See the App object definition ... */
},
"type_of": "read"
}
Zap Template
attribute | type | notes |
---|---|---|
id | Number | The ID of the Zap Template |
create_url | String | An absolute URL used to create the Zap. |
description | String | The HTML-rendered description provided when the Zap template was created. |
description_plain | String | Plain text (HTML tags stripped) description. Note: \r and \n replaced with space character. Artifacts may be present. |
description_raw | String | The [Markdown][markdown] description provided when the Zap template was created. |
slug | String | A URL/SEO friendly ID for the Zap template. |
steps | Array |
An array of two or more steps in the Zap template. See App object. |
title | String | The name of the Zap template. |
status | String | The status of the Zap template (choices: draft , published ). |
url | String | An absolute url to the Zapbook Zap template Page. |
{
"create_url": "https://zapier.com/webintent/create-zap?template=10127&utm_campaign=Zap%20Templates%20Partners%20API&embedded=true&referrer=FacebookLeadsAPI&utm_source=partners&utm_medium=api&selected_apis=FacebookLeadsAPI,MailchimpCLIAPI@1.0.10",
"description": "<p>Facebook Lead Ads are an...",
"description_plain": "Facebook Lead Ads ... ",
"description_raw": "**Facebook Lead Ads** are an ...",
"slug": "subscribe-new-facebook-lead-ads-mailchimp-list",
"status": "published",
"steps": [
{
/* ... see App object definition ... */
}
],
"title": "Subscribe new Facebook Lead Ad leads to a MailChimp list",
"url": "https://zapier.com/apps/inside-sales-box/integrations/zoho-crm/12084/add-new-leads-created-in-inside-sales-box-to-zoho-crm"
}
Errors
Zapier uses HTTP response codes to indicate the success or failure of an API request.
Code | Status | Explanation |
---|---|---|
200 | OK | Successful request. |
400 | Bad Request | Invalid request, or invalid parameters . |
403 | Authentication | Not authorized. |
404 | Not Found | The resource requested was not found. |
429 | Too Many Requests | Too many requests were performed within a window of time. Try again later. |
5xx | Server Error | A fatal error occurred while processing the request. Try again. |
All errors will be JSON object with a String array of errors:
{
"errors": ["Malformed request"]
}
Example Implementations
Jotform uses the /apps
endpoint to power their own app directory by intertwining the thousands of public integrations on Zapier’s directory with their native integrations:
Wufoo uses the /zap-templates
endpoint to retrieve raw data about their Zap Templates to customize the look and feel of how they are surfaced to users within their own integration directory:
Unbounce uses the /zaps
endpoint to display users’ Zaps using their integration directly within the Unbounce platform:
Changelog
-
2023-05-25
-
Added query parameters to
v1/apps
- The endpoint
/v1/apps
supports query parameterstitle_search
,title_starts_with
,category
, andis_in_zap_template_with
for more refined app search results.
- The endpoint
-
Added query parameter to
v1/zaps
- The endpoint
/v1/zaps
supports the query parametersget_params
.
- The endpoint
-
Added endpoint
/v1/categories
- The new endpoint
/v1/categories
returns a list of supported zap categories.
- The new endpoint
-
-
2023-03-30
-
Added attribute to
v1/apps
- The endpoint
/v1/apps
exposes theapp_latest
string attribute representing the SelectedAPI and production version for each app.
- The endpoint
-
-
2022-08-29
-
Removed restriction to
v1/zaps
- The endpoint
/v1/zaps
now performs param filtering on both triggers and actions.
- The endpoint
-
-
2022-05-23
-
Added attribute to
v1/zaps
- The endpoint
/v1/zaps
exposes theuuid
attribute to each step app. This attribute is a UUID v4 string.
- The endpoint
-
-
2021-08-03
-
Added attribute to
v1/zap-templates
- The endpoint
/v1/zap-templates
exposes theuuid
attribute to each step. This attribute is a UUID v4 string.
- The endpoint
-
-
2021-07-29
-
Added
v1/profiles/me
-
The endpoint return information about the user whose
access_token
is authorized. -
Check the endpoint documentation for the payload structure.
-
-
Added pagination to
v1/zaps
-
The endpoint
/v1/zaps
supportslimit
/offset
query parameters to paginate the results. -
count
/next
/previous
have been added to the response payload.
-
-
-
2021-06-01
- [DEPRECATION] After July 5, 2021, the endpoint
v1/zap-template/me
will no longer exist.
- [DEPRECATION] After July 5, 2021, the endpoint
-
2021-05-13
-
Added attributes to existing endpoint payloads
-
The endpoint
/v1/apps
exposes theuuid
attribute for each app that is returned. This attribute is a UUID v4 string. -
The endpoint
/v1/zap-templates
exposes thelabel
attribute to each step. Anull
placeholder value is used if the label is unable to be resolved.
-
-
Updated example endpoint payloads
- The example payloads for endpoints
/v1/apps
and/v1/zap-templates
have been updated to reflect these new attributes.
- The example payloads for endpoints
-
-
2021-01-14
-
Introducing rate limiting
- The endpoints are now rate limit protected. The limit is set to 9,000 requests per hour for an individual endpoint.
-
-
2018-05-31
-
New
/apps
endpoint- This is a new endpoint that returns a list of apps in Zapier’s App Directory.
-
-
2018-03-19
-
Updated
/zap-templates
and/zap-templates/me
- These endpoints now accept an
offset
parameter to support pagination through results.
- These endpoints now accept an
-
-
2018-02-12
-
Faster
/zap-templates
lookup.- Sub-second responses to the
/v1/zap-templates
even when requesting up to 100 Zap templates.
- Sub-second responses to the
-
-
2017-11-01
-
Access tokens never expire.
- After security review, the access tokens granted will no longer expire. This may change in the future, however, based on endpoints provided by the API. In that event, we expect API consumers to provide the user with the authorize endpoint to get a fresh access token.
-
-
2017-10-16
-
/zaps
- The endpoint will now return all Zaps regardless of the Zapier CLI App’s version that was used when creating the Zap.
-