This is automatically generated by the npm run docs
command in zapier-platform-schema
version 15.19.0
.
- /AppFlagsSchema
- /AppSchema
- /AuthenticationBasicConfigSchema
- /AuthenticationCustomConfigSchema
- /AuthenticationDigestConfigSchema
- /AuthenticationOAuth1ConfigSchema
- /AuthenticationOAuth2ConfigSchema
- /AuthenticationSchema
- /AuthenticationSessionConfigSchema
- /BasicActionOperationSchema
- /BasicCreateActionOperationSchema
- /BasicDisplaySchema
- /BasicHookOperationSchema
- /BasicOperationSchema
- /BasicPollingOperationSchema
- /BufferConfigSchema
- /BulkReadSchema
- /BulkReadsSchema
- /CreateSchema
- /CreatesSchema
- /DynamicFieldsSchema
- /FieldChoiceWithLabelSchema
- /FieldChoicesSchema
- /FieldMetaSchema
- /FieldOrFunctionSchema
- /FieldSchema
- /FieldsSchema
- /FlatObjectSchema
- /FunctionRequireSchema
- /FunctionSchema
- /FunctionSourceSchema
- /HydratorsSchema
- /KeySchema
- /LockObjectSchema
- /MiddlewaresSchema
- /RedirectRequestSchema
- /RefResourceSchema
- /RequestSchema
- /ResourceMethodCreateSchema
- /ResourceMethodGetSchema
- /ResourceMethodHookSchema
- /ResourceMethodListSchema
- /ResourceMethodSearchSchema
- /ResourceSchema
- /ResourcesSchema
- /ResultsSchema
- /SearchAndCreatesSchema
- /SearchOrCreateSchema
- /SearchOrCreatesSchema
- /SearchSchema
- /SearchesSchema
- /ThrottleObjectSchema
- /ThrottleOverrideObjectSchema
- /TriggerSchema
- /TriggersSchema
- /VersionSchema
Codifies high-level options for your integration.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
skipHttpPatch |
no | boolean |
By default, Zapier patches the core http module so that all requests (including those from 3rd-party SDKs) can be logged. Set this to true if you're seeing issues using an SDK (such as AWS). |
skipThrowForStatus |
no | boolean |
Starting in core version 10.0.0 , response.throwForStatus() was called by default. We introduced a per-request way to opt-out of this behavior. This flag takes that a step further and controls that behavior integration-wide for requests made using z.request() . Unless they specify otherwise (per-request, or via middleware), Shorthand requests always call throwForStatus() . z.request() calls can also ignore this flag if they set skipThrowForStatus directly |
{ skipHttpPatch: true, skipThrowForStatus: false }
{ skipHttpPatch: false, skipThrowForStatus: true }
{}
{ foo: true }
- Invalid key.{ skipHttpPatch: 'yes' }
- Invalid value.{ skipThrowForStatus: 'no' }
- Invalid value.
Represents a full app.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
version |
yes | /VersionSchema | A version identifier for your code. |
platformVersion |
yes | /VersionSchema | A version identifier for the Zapier execution environment. |
beforeApp |
no | /MiddlewaresSchema | EXPERIMENTAL: Before the perform method is called on your app, you can modify the execution context. |
afterApp |
no | /MiddlewaresSchema | EXPERIMENTAL: After the perform method is called on your app, you can modify the response. |
authentication |
no | /AuthenticationSchema | Choose what scheme your API uses for authentication. |
requestTemplate |
no | /RequestSchema | Define a request mixin, great for setting custom headers, content-types, etc. |
beforeRequest |
no | /MiddlewaresSchema | Before an HTTP request is sent via our z.request() client, you can modify it. |
afterResponse |
no | /MiddlewaresSchema | After an HTTP response is recieved via our z.request() client, you can modify it. |
hydrators |
no | /HydratorsSchema | An optional bank of named functions that you can use in z.hydrate('someName') to lazily load data. |
resources |
no | /ResourcesSchema | All the resources for your app. Zapier will take these and generate the relevent triggers/searches/creates automatically. |
triggers |
no | /TriggersSchema | All the triggers for your app. You can add your own here, or Zapier will automatically register any from the list/hook methods on your resources. |
bulkReads |
no | /BulkReadsSchema | All of the read bulks (GETs) your app exposes to retrieve resources in batches. |
searches |
no | /SearchesSchema | All the searches for your app. You can add your own here, or Zapier will automatically register any from the search method on your resources. |
creates |
no | /CreatesSchema | All the creates for your app. You can add your own here, or Zapier will automatically register any from the create method on your resources. |
searchOrCreates |
no | /SearchOrCreatesSchema | All the search-or-create combos for your app. You can create your own here, or Zapier will automatically register any from resources that define a search, a create, and a get (or define a searchOrCreate directly). Register non-resource search-or-creates here as well. |
searchAndCreates |
no | /SearchAndCreatesSchema | An alias for "searchOrCreates". |
flags |
no | /AppFlagsSchema | Top-level app options |
throttle |
no | /ThrottleObjectSchema | Zapier uses this configuration to apply throttling when the limit for the window is exceeded. When set here, it is the default throttle configuration used on each action of the integration. And when set in an action's operation object, it gets overwritten for that action only. |
{ version: '1.0.0', platformVersion: '10.1.2' }
{ version: 'v1.0.0', platformVersion: '10.1.2' }
- Invalid value for version.{ version: '1.0.0', platformVersion: 'v10.1.2' }
- Invalid value for platformVersion.
Config for Basic Authentication. No extra properties are required to setup Basic Auth, so you can leave this empty if your app uses Basic Auth.
- Type -
object
- Source Code
{}
{ foo: true }
- Invalid key.
Config for custom authentication (like API keys). No extra properties are required to setup this auth type, so you can leave this empty if your app uses a custom auth method.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
sendCode |
no | oneOf(/RequestSchema, /FunctionSchema) | EXPERIMENTAL: Define the call Zapier should make to send the OTP code. |
{}
-
{ sendCode: { url: 'https://example.com/api/send', headers: { Authorization: 'Bearer {{process.env.API_KEY}}' }, body: { to_phone_number: '{{bundle.inputData.phone_number}}', code: '{{bundle.inputData.code}}' } } }
{ foo: true }
- Invalid key.
Config for Digest Authentication. No extra properties are required to setup Digest Auth, so you can leave this empty if your app uses Digets Auth.
- Type -
object
- Source Code
{}
{ foo: true }
- Invalid key.
Config for OAuth1 authentication.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
getRequestToken |
yes | oneOf(/RequestSchema, /FunctionSchema) | Define where Zapier will acquire a request token which is used for the rest of the three legged authentication process. |
authorizeUrl |
yes | oneOf(/RedirectRequestSchema, /FunctionSchema) | Define where Zapier will redirect the user to authorize our app. Typically, you should append an oauth_token querystring parameter to the request. |
getAccessToken |
yes | oneOf(/RequestSchema, /FunctionSchema) | Define how Zapier fetches an access token from the API |
-
{ getRequestToken: { require: 'some/path/to/file.js' }, authorizeUrl: { require: 'some/path/to/file2.js' }, getAccessToken: { require: 'some/path/to/file3.js' } }
-
Missing required key.
{ getRequestToken: { require: 'some/path/to/file.js' }, authorizeUrl: { require: 'some/path/to/file2.js' } }
Config for OAuth2 authentication.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
authorizeUrl |
yes | oneOf(/RedirectRequestSchema, /FunctionSchema) | Define where Zapier will redirect the user to authorize our app. Note: we append the redirect URL and state parameters to return value of this function. |
getAccessToken |
yes | oneOf(/RequestSchema, /FunctionSchema) | Define how Zapier fetches an access token from the API |
refreshAccessToken |
no | oneOf(/RequestSchema, /FunctionSchema) | Define how Zapier will refresh the access token from the API |
codeParam |
no | string |
Define a non-standard code param Zapier should scrape instead. |
scope |
no | string |
What scope should Zapier request? |
autoRefresh |
no | boolean |
Should Zapier invoke refreshAccessToken when we receive an error for a 401 response? |
enablePkce |
no | boolean |
Should Zapier use PKCE for OAuth2? |
-
{ authorizeUrl: { require: 'some/path/to/file.js' }, getAccessToken: { require: 'some/path/to/file2.js' } }
-
{ authorizeUrl: { require: 'some/path/to/file.js' }, getAccessToken: { require: 'some/path/to/file2.js' }, refreshAccessToken: { require: 'some/path/to/file3.js' }, codeParam: 'unique_code', scope: 'read/write', autoRefresh: true, enablePkce: true }
{ authorizeUrl: { require: 'some/path/to/file.js' } }
- Missing required key getAccessToken.
Represents authentication schemes.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
type |
yes | string in ('basic' , 'custom' , 'digest' , 'oauth1' , 'oauth2' , 'session' ) |
Choose which scheme you want to use. |
test |
yes | oneOf(/RequestSchema, /FunctionSchema) | A function or request that confirms the authentication is working. |
fields |
no | /FieldsSchema | Fields you can request from the user before they connect your app to Zapier. |
connectionLabel |
no | anyOf(/RequestSchema, /FunctionSchema, string ) |
A string with variables, function, or request that returns the connection label for the authenticated user. |
basicConfig |
no | /AuthenticationBasicConfigSchema | No description given. |
customConfig |
no | /AuthenticationCustomConfigSchema | No description given. |
digestConfig |
no | /AuthenticationDigestConfigSchema | No description given. |
oauth1Config |
no | /AuthenticationOAuth1ConfigSchema | No description given. |
oauth2Config |
no | /AuthenticationOAuth2ConfigSchema | No description given. |
sessionConfig |
no | /AuthenticationSessionConfigSchema | No description given. |
{ type: 'basic', test: '$func$2$f$' }
{ type: 'custom', test: '$func$2$f$', fields: [ { key: 'abc' } ] }
{ type: 'custom', test: '$func$2$f$', connectionLabel: '{{bundle.inputData.abc}}' }
{ type: 'custom', test: '$func$2$f$', connectionLabel: '$func$2$f$' }
{ type: 'custom', test: '$func$2$f$', connectionLabel: { url: 'abc' } }
{}
- Missing required keys: type and test'$func$2$f$'
- Must be object{ type: 'unknown', test: '$func$2$f$' }
- Invalid value for key: type{ type: 'custom', test: '$func$2$f$', fields: '$func$2$f$' }
- Invalid value for key: fields
Config for session authentication.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
perform |
yes | oneOf(/RequestSchema, /FunctionSchema) | Define how Zapier fetches the additional authData needed to make API calls. |
{ perform: { require: 'some/path/to/file.js' } }
{}
- Missing required key: perform
Represents the fundamental mechanics of a search/create.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
resource |
no | /KeySchema | Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results. |
perform |
yes | oneOf(/RequestSchema, /FunctionSchema) | How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'} . |
performResume |
no | /FunctionSchema | A function that parses data from a perform (which uses z.generateCallbackUrl()) and callback request to resume this action. |
performGet |
no | oneOf(/RequestSchema, /FunctionSchema) | How will Zapier get a single record? If you find yourself reaching for this - consider resources and their built-in get methods. |
inputFields |
no | /DynamicFieldsSchema | What should the form a user sees and configures look like? |
outputFields |
no | /DynamicFieldsSchema | What fields of data will this return? Will use resource outputFields if missing, will also use sample if available. |
sample |
yes (with exceptions, see description) | object |
What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample |
lock |
no | /LockObjectSchema | INTERNAL USE ONLY. Zapier uses this configuration for internal operation locking. |
throttle |
no | /ThrottleObjectSchema | Zapier uses this configuration to apply throttling when the limit for the window is exceeded. |
{ perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }
{ perform: { require: 'some/path/to/file.js' } }
- Missing required key: sample. Note - This is only invalid ifdisplay
is not explicitly set to true and if it does not belong to a resource that has a sample.
Represents the fundamental mechanics of a create.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
resource |
no | /KeySchema | Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results. |
perform |
no (with exceptions, see description) | oneOf(/RequestSchema, /FunctionSchema) | How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'} . Exactly one of perform or performBuffer must be defined. If you choose to define buffer and performBuffer , you must omit perform . |
performResume |
no | /FunctionSchema | A function that parses data from a perform (which uses z.generateCallbackUrl()) and callback request to resume this action. |
performGet |
no | oneOf(/RequestSchema, /FunctionSchema) | How will Zapier get a single record? If you find yourself reaching for this - consider resources and their built-in get methods. |
inputFields |
no | /DynamicFieldsSchema | What should the form a user sees and configures look like? |
outputFields |
no | /DynamicFieldsSchema | What fields of data will this return? Will use resource outputFields if missing, will also use sample if available. |
sample |
yes (with exceptions, see description) | object |
What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample |
lock |
no | /LockObjectSchema | INTERNAL USE ONLY. Zapier uses this configuration for internal operation locking. |
throttle |
no | /ThrottleObjectSchema | Zapier uses this configuration to apply throttling when the limit for the window is exceeded. |
shouldLock |
no | boolean |
Should this action be performed one at a time (avoid concurrency)? |
buffer |
no (with exceptions, see description) | /BufferConfigSchema | Currently an internal-only feature. Zapier uses this configuration for creating objects in bulk with performBuffer . |
performBuffer |
no (with exceptions, see description) | /FunctionSchema | Currently an internal-only feature. A function to create objects in bulk with. buffer and performBuffer must either both be defined or neither. Additionally, only one of perform or performBuffer can be defined. If you choose to define perform , you must omit buffer and performBuffer . |
{ perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }
{ perform: { require: 'some/path/to/file.js' } }
- Missing required key: sample. Note - This is only invalid ifdisplay
is not explicitly set to true and if it does not belong to a resource that has a sample.
Represents user information for a trigger, search, or create.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
label |
yes (with exceptions, see description) | string |
A short label like "New Record" or "Create Record in Project". Optional if hidden is true. |
description |
yes (with exceptions, see description) | string |
A description of what this trigger, search, or create does. Optional if hidden is true. |
directions |
no | string |
A short blurb that can explain how to get this working. EG: how and where to copy-paste a static hook URL into your application. Only evaluated for static webhooks. |
hidden |
no | boolean |
Should this operation be unselectable by users? |
{ hidden: true }
{ label: 'New Thing', description: 'Gets a new thing for you.' }
-
{ label: 'New Thing', description: 'Gets a new thing for you.', directions: 'This is how you use the thing.', hidden: false }
{ label: 'New Thing', hidden: false }
- Missing required key: description{ description: 'Gets a new thing for you.', hidden: false }
- Missing required key: label
Represents the inbound mechanics of hooks with optional subscribe/unsubscribe. Defers to list for fields.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
type |
yes (with exceptions, see description) | string in ('hook' ) |
Must be explicitly set to "hook" unless this hook is defined as part of a resource, in which case it's optional. |
resource |
no | /KeySchema | Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results. |
perform |
yes | /FunctionSchema | A function that processes the inbound webhook request. |
performList |
yes (with exceptions, see description) | oneOf(/RequestSchema, /FunctionSchema) | Fetch a list of items on demand during testing instead of waiting for a hook. You can also consider resources and their built-in hook/list methods. Note: this is required for public apps to ensure the best UX for the end-user. For private apps, this is strongly recommended for testing REST Hooks. Otherwise, you can ignore warnings about this property with the --without-style flag during zapier push . |
canPaginate |
no | boolean |
Does this endpoint support pagination via temporary cursor storage? |
performSubscribe |
yes (with exceptions, see description) | oneOf(/RequestSchema, /FunctionSchema) | Takes a URL and any necessary data from the user and subscribes. Note: this is required for public apps to ensure the best UX for the end-user. For private apps, this is strongly recommended for testing REST Hooks. Otherwise, you can ignore warnings about this property with the --without-style flag during zapier push . |
performUnsubscribe |
yes (with exceptions, see description) | oneOf(/RequestSchema, /FunctionSchema) | Takes a URL and data from a previous subscribe call and unsubscribes. Note: this is required for public apps to ensure the best UX for the end-user. For private apps, this is strongly recommended for testing REST Hooks. Otherwise, you can ignore warnings about this property with the --without-style flag during zapier push . |
inputFields |
no | /DynamicFieldsSchema | What should the form a user sees and configures look like? |
outputFields |
no | /DynamicFieldsSchema | What fields of data will this return? Will use resource outputFields if missing, will also use sample if available. |
sample |
yes (with exceptions, see description) | object |
What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample |
-
{ type: 'hook', perform: { require: 'some/path/to/file.js' }, performList: { require: 'some/path/to/file2.js' }, performSubscribe: { require: 'some/path/to/file3.js' }, performUnsubscribe: { require: 'some/path/to/file4.js' }, sample: { id: 42, name: 'Hooli' } }
-
Missing required key: sample. Note - This is only invalid if
{ type: 'hook', perform: { require: 'some/path/to/file.js' }, performList: { require: 'some/path/to/file2.js' }, performSubscribe: { require: 'some/path/to/file3.js' }, performUnsubscribe: { require: 'some/path/to/file4.js' } }
display
is not explicitly set to true and if it does not belong to a resource that has a sample.
Represents the fundamental mechanics of triggers, searches, or creates.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
resource |
no | /KeySchema | Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results. |
perform |
yes | oneOf(/RequestSchema, /FunctionSchema) | How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'} . |
inputFields |
no | /DynamicFieldsSchema | What should the form a user sees and configures look like? |
outputFields |
no | /DynamicFieldsSchema | What fields of data will this return? Will use resource outputFields if missing, will also use sample if available. |
sample |
yes (with exceptions, see description) | object |
What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample |
lock |
no | /LockObjectSchema | INTERNAL USE ONLY. Zapier uses this configuration for internal operation locking. |
throttle |
no | /ThrottleObjectSchema | Zapier uses this configuration to apply throttling when the limit for the window is exceeded. |
{ perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }
{ perform: { require: 'some/path/to/file.js' } }
- Missing required key: sample. Note - This is only invalid ifdisplay
is not explicitly set to true and if it does not belong to a resource that has a sample.
Represents the fundamental mechanics of a trigger.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
type |
no | string in ('polling' ) |
Clarify how this operation works (polling == pull or hook == push). |
resource |
no | /KeySchema | Optionally reference and extends a resource. Allows Zapier to automatically tie together samples, lists and hooks, greatly improving the UX. EG: if you had another trigger reusing a resource but filtering the results. |
perform |
yes | oneOf(/RequestSchema, /FunctionSchema) | How will Zapier get the data? This can be a function like (z) => [{id: 123}] or a request like {url: 'http...'} . |
canPaginate |
no | boolean |
Does this endpoint support pagination via temporary cursor storage? |
inputFields |
no | /DynamicFieldsSchema | What should the form a user sees and configures look like? |
outputFields |
no | /DynamicFieldsSchema | What fields of data will this return? Will use resource outputFields if missing, will also use sample if available. |
sample |
yes (with exceptions, see description) | object |
What does a sample of data look like? Will use resource sample if missing. Requirement waived if display.hidden is true or if this belongs to a resource that has a top-level sample |
throttle |
no | /ThrottleObjectSchema | Zapier uses this configuration to apply throttling when the limit for the window is exceeded. |
{ perform: { require: 'some/path/to/file.js' }, sample: { id: 42, name: 'Hooli' } }
{ perform: { require: 'some/path/to/file.js' } }
- Missing required key: sample. Note - This is only invalid ifdisplay
is not explicitly set to true and if it does not belong to a resource that has a sample.
Currently an internal-only feature. Zapier uses this configuration for creating objects in bulk.
- Type -
object
- Source Code
Key | Required | Type | Description |
---|---|---|---|
groupedBy |
yes | array |
The list of keys of input fields to group bulk-create with. The actual user data provided for the fields will be used during execution. Note that a required input field should be referenced to get user data always. |
limit |
yes | integer |
The maximum number of items to call performBuffer with. Note that it is capped by the platform to prevent exceeding the AWS Lambda's request/response payload size quota of 6 MB. Also, the execution is time-bound; we recommend reducing it upon consistent timeout. |
{ groupedBy: [ 'workspace', 'sheet' ], limit: 100 }
{ groupedBy: [], limit: 100 }
- Empty groupedBy list provided:[]
.{ groupedBy: [ 'workspace' ] }
- Missing required key:limit
.{ limit: 1 }
- Missing required key:groupedBy
.
How will Zapier fetch resources from your application?
- Type -
object
- Source Code