Compose-ready workspace: packages/zappier (rate card, portal, Stripe), packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier (CLI app), vendor/zapier-platform, and research/zapier vendor corpus. Gate 0 structure checks pass. Product code and research are not yet wired.
2131 lines
76 KiB
YAML
2131 lines
76 KiB
YAML
openapi: 3.1.0
|
||
info:
|
||
title: Actions API
|
||
description: Public access to Zapier Stored Actions and the runs that execute them
|
||
— create, list, retrieve, update, and delete stored actions; trigger runs and
|
||
fetch run results.
|
||
version: v1
|
||
contact:
|
||
url: https://docs.zapier.com
|
||
servers:
|
||
- url: https://api.zapier.com
|
||
description: Production
|
||
tags:
|
||
- name: Stored Actions
|
||
description: Operations related to a Stored Action
|
||
security:
|
||
- OAuth: []
|
||
paths:
|
||
/actions/v1/stored-actions:
|
||
get:
|
||
operationId: listStoredActions
|
||
description: 'Stored Actions endpoints handle the creation, execution, updates,
|
||
and deletions
|
||
|
||
of single created actions.'
|
||
summary: List stored actions
|
||
tags:
|
||
- Stored Actions
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'200':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionRecordListResponse'
|
||
examples:
|
||
Success:
|
||
value:
|
||
results:
|
||
- type: stored_action
|
||
id: 01932123-02ea-01fc-3fbd-4d66d944064d
|
||
connection_id: 019320ab-0000-7000-8000-abcdef012345
|
||
selected_api: SplitwiseCLIAPI@1.0.0
|
||
action_key: new_contact
|
||
action_type: read
|
||
inputs:
|
||
first_name: John
|
||
last_name: Doe
|
||
meta:
|
||
limit: 1
|
||
offset: 0
|
||
count: 1
|
||
links:
|
||
next: null
|
||
description: 'Success: Includes all the Stored Actions for the caller. This
|
||
could be an empty list.'
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Indicates an error executing the request to list Stored Actions.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
post:
|
||
operationId: createStoredAction
|
||
description: 'Create Stored Action
|
||
|
||
|
||
Creates a new stored action entry that can then be executed from a simpler
|
||
call to
|
||
|
||
/stored-actions with just the stored action `id`.
|
||
|
||
|
||
This will not execute a StoredAction.
|
||
|
||
|
||
This is an async process and will only respond with the id of the stored action
|
||
and other meta data,
|
||
|
||
and it is the callers responsibility to poll
|
||
|
||
GET /stored-actions/{stored_action_id}/runs/{run_id} with the run id returned
|
||
from
|
||
|
||
POST /stored-actions/{stored_action_id}/run to fetch the results after executing
|
||
a stored action.
|
||
|
||
|
||
The triple (selected_api, action_type, action_key) is required to create a
|
||
stored action.
|
||
|
||
Only core actions are supported; external and custom (App Extension) actions
|
||
cannot be
|
||
|
||
created as stored actions via this endpoint.
|
||
|
||
|
||
**Note on `connection_id`:** Other Zapier APIs may expose the same
|
||
|
||
identifier under the field name `authentication_id`. The value is the
|
||
|
||
same UUID — pass it here under the `connection_id` key.'
|
||
summary: Create a stored action
|
||
tags:
|
||
- Stored Actions
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionsCreateRequest'
|
||
examples:
|
||
ExamplePOSTRequest:
|
||
value:
|
||
data:
|
||
connection_id: 019320ab-0000-7000-8000-abcdef012345
|
||
selected_api: SplitwiseCLIAPI@1.0.0
|
||
action_key: new_contact
|
||
action_type: read
|
||
inputs:
|
||
first_name: John
|
||
last_name: Doe
|
||
summary: Example POST Request
|
||
required: true
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'200':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionsCreateResponse'
|
||
examples:
|
||
Success:
|
||
value:
|
||
type: stored_action
|
||
id: 123e4567-e89b-12d3-a456-426614174000
|
||
description: A StoredAction record was successfully created.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Indicates an error creating a StoredAction record.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
/actions/v1/stored-actions/{stored_action_id}:
|
||
get:
|
||
operationId: getStoredAction
|
||
description: 'Stored Actions endpoints handle the creation, execution, updates,
|
||
and deletions
|
||
|
||
of single created actions.'
|
||
summary: Get a stored action
|
||
parameters:
|
||
- in: path
|
||
name: stored_action_id
|
||
schema:
|
||
type: string
|
||
format: uuid
|
||
required: true
|
||
tags:
|
||
- Stored Actions
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'200':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionRecord'
|
||
examples:
|
||
Success:
|
||
value:
|
||
type: stored_action
|
||
id: 01932123-02ea-01fc-3fbd-4d66d944064d
|
||
connection_id: 019320ab-0000-7000-8000-abcdef012345
|
||
selected_api: SplitwiseCLIAPI@1.0.0
|
||
action_key: new_contact
|
||
action_type: read
|
||
inputs:
|
||
first_name: John
|
||
last_name: Doe
|
||
description: 'Success: Includes data for the requested Stored Action.'
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Imporoperly formatted or incomplete request.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'404':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
Error:
|
||
value:
|
||
errors:
|
||
- status: 404
|
||
code: not_found
|
||
title: Resource not found.
|
||
detail: Here's a more readable explanation of what happened.
|
||
source:
|
||
pointer: /path/to/field
|
||
meta: {}
|
||
description: No results found for this Stored Action id.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
patch:
|
||
operationId: updateStoredAction
|
||
description: 'Stored Actions endpoints handle the creation, execution, updates,
|
||
and deletions
|
||
|
||
of single created actions.'
|
||
summary: Update a stored action
|
||
parameters:
|
||
- in: path
|
||
name: stored_action_id
|
||
schema:
|
||
type: string
|
||
format: uuid
|
||
required: true
|
||
tags:
|
||
- Stored Actions
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PatchedStoredActionsUpdateRequest'
|
||
examples:
|
||
ExamplePATCHRequest:
|
||
value:
|
||
data:
|
||
connection_id: 019320ab-0000-7000-8000-abcdef012345
|
||
selected_api: SplitwiseCLIAPI@1.0.0
|
||
action_key: new_contact
|
||
action_type: read
|
||
inputs:
|
||
first_name: John
|
||
last_name: Doe
|
||
summary: Example PATCH Request
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'200':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionRecord'
|
||
examples:
|
||
Success:
|
||
value:
|
||
type: stored_action
|
||
id: 01932123-02ea-01fc-3fbd-4d66d944064d
|
||
connection_id: 019320ab-0000-7000-8000-abcdef012345
|
||
selected_api: SplitwiseCLIAPI@1.0.0
|
||
action_key: new_contact
|
||
action_type: read
|
||
inputs:
|
||
first_name: John
|
||
last_name: Doe
|
||
description: A StoredAction record was successfully updated.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Indicates an error updating a StoredAction record.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
delete:
|
||
operationId: deleteStoredAction
|
||
description: 'Stored Actions endpoints handle the creation, execution, updates,
|
||
and deletions
|
||
|
||
of single created actions.'
|
||
summary: Delete a stored action
|
||
parameters:
|
||
- in: path
|
||
name: stored_action_id
|
||
schema:
|
||
type: string
|
||
format: uuid
|
||
required: true
|
||
tags:
|
||
- Stored Actions
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'204':
|
||
description: A StoredAction record was successfully deleted.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Indicates an error deleting a StoredAction record.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
/actions/v1/stored-actions/{stored_action_id}/run:
|
||
post:
|
||
operationId: createStoredActionRun
|
||
description: "Execute Stored Action\n\nExecutes an action on behalf of a user,\
|
||
\ this is an async process.\n\nRequires the id from a stored action\n\nResponds\
|
||
\ with the unique id for this run of the stored action. In order to fetch\
|
||
\ results\nyou will need to poll the GET /stored-actions/{stored_action_id}/runs/{run_id}\
|
||
\ endpoint\nwith that run id.\n\n**Billing**\n\nThe Actions API offers support\
|
||
\ for directly billing users for Stored Action\nRuns, and this functionality\
|
||
\ is currently _opt-in_. To do this, you\nmust provide a `billing` claim on\
|
||
\ the JWT used to authenticate. This\nclaim must be a JSON string, and any\
|
||
\ values provided will override the\ndefault configuration shown below. The\
|
||
\ simplest approach is therefore\nto set `is_billable` to true, and successful\
|
||
\ Stored Action Runs will be\ncharged to a user at a rate of one task.\n\n\
|
||
```json\nbilling: {\n \"is_billable\": false,\n \"origin\": \"actions_api\"\
|
||
,\n \"usage_type\": \"action_run\",\n \"description\": \"an action was\
|
||
\ run via Actions API\",\n \"exemption_reason\": null,\n \"exemption_details\"\
|
||
: null\n}\n```\n\n**Rate Limits**\n\nRate limiting is applied when Gargoyle\
|
||
\ flag `edge_actions_api_rate_limiting_global`\nis active. Requests are rate\
|
||
\ limited by default unless the JWT explicitly sets\n`rate_limit.exempt` to\
|
||
\ true.\n\n```json\nrate_limit: {\n \"exempt\": true\n}\n```\n\nNon-exempted\
|
||
\ requests are limited to 200 per 5 minutes by default. To set a custom\n\
|
||
limit, include `limit_override` (1–1000 requests per 5 minutes):\n\n```json\n\
|
||
rate_limit: {\n \"exempt\": false,\n \"limit_override\": 500\n}\n```"
|
||
summary: Run a stored action
|
||
parameters:
|
||
- in: path
|
||
name: stored_action_id
|
||
schema:
|
||
type: string
|
||
format: uuid
|
||
required: true
|
||
tags:
|
||
- Stored Actions
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionsRunRequest'
|
||
examples:
|
||
ExamplePOSTRequest:
|
||
value:
|
||
data:
|
||
inputs:
|
||
message: Hello World!
|
||
page: '0'
|
||
summary: Example POST Request
|
||
required: true
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'202':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionsRunResponse'
|
||
examples:
|
||
Accepted:
|
||
value:
|
||
data:
|
||
type: run
|
||
id: 123e4567-e89b-12d3-a456-426614174000
|
||
description: Acknowledges the request to execute a StoredAction
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Indicates an error executing the request to run a StoredAction.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'402':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PaymentRequired:
|
||
value:
|
||
errors:
|
||
- status: 402
|
||
code: payment_required
|
||
title: Payment Required
|
||
detail: Insufficient tasks on account
|
||
summary: Payment Required
|
||
description: Payment Required - insufficient tasks on account
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'424':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PartnerAPITemporarilyUnavailable:
|
||
value:
|
||
errors:
|
||
- status: 424
|
||
code: partner_api_unhealthy
|
||
title: Partner API Temporarily Unavailable
|
||
detail: The app's API is currently unhealthy. Retry the request
|
||
later.
|
||
summary: Partner API Temporarily Unavailable
|
||
description: Failed Dependency - the partner API is temporarily unhealthy
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
200. Maximum via limit_override: 1000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
/actions/v1/stored-actions/{stored_action_id}/runs/{run_id}:
|
||
get:
|
||
operationId: getStoredActionRun
|
||
description: 'Fetch Stored Action Run
|
||
|
||
|
||
Requires the id returned from a call to /stored-actions/{stored_action_id}/run
|
||
|
||
to execute the stored action.
|
||
|
||
|
||
The status code returned by this call does NOT denote the status of the action
|
||
|
||
in an external system, but the status of the action processing from Zapier.
|
||
|
||
|
||
Results are stored for seven days after the action was initially executed.'
|
||
summary: Get stored action run results
|
||
parameters:
|
||
- in: path
|
||
name: run_id
|
||
schema:
|
||
type: string
|
||
format: uuid
|
||
required: true
|
||
- in: path
|
||
name: stored_action_id
|
||
schema:
|
||
type: string
|
||
format: uuid
|
||
required: true
|
||
tags:
|
||
- Stored Actions
|
||
security:
|
||
- OAuth:
|
||
- external
|
||
responses:
|
||
'200':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/StoredActionResult'
|
||
examples:
|
||
Success:
|
||
value:
|
||
type: run
|
||
status: success
|
||
results:
|
||
- key: value
|
||
next_page: '0'
|
||
errors: []
|
||
description: 'Success: Includes the results of the task run.'
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'202':
|
||
description: The request is still processing, try fetching results again
|
||
later.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'400':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
BadRequest:
|
||
value:
|
||
errors:
|
||
- status: 400
|
||
code: bad_request
|
||
title: Bad Request
|
||
detail: Improperly formatted or incompleted request
|
||
source: null
|
||
meta: {}
|
||
summary: Bad Request
|
||
description: Imporoperly formatted or incomplete request.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'404':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
Error:
|
||
value:
|
||
errors:
|
||
- status: 404
|
||
code: not_found
|
||
title: Resource not found.
|
||
detail: Here's a more readable explanation of what happened.
|
||
source:
|
||
pointer: /path/to/field
|
||
meta: {}
|
||
description: No results found for this run.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'403':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
PermissionDenied:
|
||
value:
|
||
errors:
|
||
- status: 403
|
||
code: permission_denied
|
||
detail: User does not have enough permissions to perform action
|
||
summary: Permission Denied
|
||
description: Permission denied. Unauthorized request.
|
||
'429':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
TooManyRequests:
|
||
value:
|
||
errors:
|
||
- status: 429
|
||
code: too_many_requests
|
||
detail: Rate limit exceeded. Too many requests.
|
||
summary: Too Many Requests
|
||
description: Too many requests.
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
'500':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
UnhandledOrExternalServiceError:
|
||
value:
|
||
errors:
|
||
- status: 500
|
||
code: external_service_error
|
||
detail: An error occurred with an external service.
|
||
summary: Unhandled or External Service Error
|
||
description: Internal Server Error
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
'503':
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionsErrorResponse'
|
||
examples:
|
||
ServiceUnavailableError:
|
||
value:
|
||
errors:
|
||
- status: 503
|
||
code: service_unavaiable
|
||
detail: Service is temporarily unavailable
|
||
summary: Service Unavailable Error
|
||
description: Service Unavailable
|
||
headers:
|
||
X-RateLimit-Limit:
|
||
schema:
|
||
type: integer
|
||
description: 'Effective request cap per 300-second window. Default:
|
||
600. Maximum via limit_override: 3000.'
|
||
X-RateLimit-Remaining:
|
||
schema:
|
||
type: integer
|
||
description: Requests remaining in the current window.
|
||
X-RateLimit-Reset:
|
||
schema:
|
||
type: string
|
||
format: date-time
|
||
description: Unix timestamp when the current 300-second window resets.
|
||
Retry-After:
|
||
schema:
|
||
type: integer
|
||
description: Seconds to wait before retrying.
|
||
required: true
|
||
components:
|
||
schemas:
|
||
ActionTypeEnum:
|
||
enum:
|
||
- read
|
||
- read_bulk
|
||
- write
|
||
- run
|
||
- search
|
||
- search_or_write
|
||
- search_and_write
|
||
- filter
|
||
- tool
|
||
type: string
|
||
description: '* `read` - Read
|
||
|
||
* `read_bulk` - Read Bulk
|
||
|
||
* `write` - Write
|
||
|
||
* `run` - Run
|
||
|
||
* `search` - Search
|
||
|
||
* `search_or_write` - Search Or Write
|
||
|
||
* `search_and_write` - Search And Write
|
||
|
||
* `filter` - Filter
|
||
|
||
* `tool` - Tool'
|
||
ActionsError:
|
||
type: object
|
||
description: Base Error definition
|
||
properties:
|
||
status:
|
||
type: integer
|
||
description: The HTTP status code applicable to this problem.
|
||
code:
|
||
type: string
|
||
description: A unique identifier for this particular occurrence of the problem.
|
||
title:
|
||
type: string
|
||
description: A short summary of the problem.
|
||
detail:
|
||
type: string
|
||
description: A human-readable explanation specific to this occurrence of
|
||
the problem.
|
||
source:
|
||
oneOf:
|
||
- $ref: '#/components/schemas/ActionsErrorSource'
|
||
- type: 'null'
|
||
description: An object containing references to the primary source of the
|
||
error.
|
||
meta:
|
||
type:
|
||
- object
|
||
- 'null'
|
||
additionalProperties: {}
|
||
description: Any additional metadata about the error.
|
||
ActionsErrorResponse:
|
||
type: object
|
||
properties:
|
||
errors:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ActionsError'
|
||
description: An array of error objects.
|
||
required:
|
||
- errors
|
||
ActionsErrorSource:
|
||
type: object
|
||
description: Populates the `source` object inside our error responses.
|
||
properties:
|
||
pointer:
|
||
type: string
|
||
description: Pointer to the value in the request document that caused the
|
||
error e.g. `/actions`.
|
||
parameter:
|
||
type: string
|
||
description: A string indicating which URI query parameter caused the error.
|
||
header:
|
||
type: string
|
||
description: A string indicating the name of a single request header which
|
||
caused the error.
|
||
ActionsFetchError:
|
||
type: object
|
||
description: The error information returned from a third party when running
|
||
an action.
|
||
properties:
|
||
code:
|
||
allOf:
|
||
- $ref: '#/components/schemas/CodeEnum'
|
||
description: 'Error type of the result object.
|
||
|
||
|
||
* `user` - user
|
||
|
||
* `authentication` - authentication
|
||
|
||
* `partner` - partner
|
||
|
||
* `system` - system
|
||
|
||
* `throttled` - throttled
|
||
|
||
* `system_throttled` - system_throttled
|
||
|
||
* `hydration` - hydration
|
||
|
||
* `authentication_access` - authentication_access'
|
||
title:
|
||
type: string
|
||
description: A short summary of the problem.
|
||
detail:
|
||
type: string
|
||
description: A human-readable explanation specific to this occurrence of
|
||
the problem.
|
||
delay:
|
||
type: integer
|
||
description: When a partner throttled the execution call (error_type = throttled),
|
||
this value will hold the number of seconds to wait before retrying.
|
||
meta:
|
||
type:
|
||
- object
|
||
- 'null'
|
||
additionalProperties: {}
|
||
description: Any additional error information returned from the partner.
|
||
CodeEnum:
|
||
enum:
|
||
- user
|
||
- authentication
|
||
- partner
|
||
- system
|
||
- throttled
|
||
- system_throttled
|
||
- hydration
|
||
- authentication_access
|
||
type: string
|
||
description: '* `user` - user
|
||
|
||
* `authentication` - authentication
|
||
|
||
* `partner` - partner
|
||
|
||
* `system` - system
|
||
|
||
* `throttled` - throttled
|
||
|
||
* `system_throttled` - system_throttled
|
||
|
||
* `hydration` - hydration
|
||
|
||
* `authentication_access` - authentication_access'
|
||
PatchedStoredActionsUpdateRequest:
|
||
type: object
|
||
properties:
|
||
data:
|
||
$ref: '#/components/schemas/StoredActionUpdateRequestParams'
|
||
StatusA45Enum:
|
||
enum:
|
||
- error
|
||
- success
|
||
- waiting
|
||
type: string
|
||
description: '* `error` - error
|
||
|
||
* `success` - success
|
||
|
||
* `waiting` - waiting'
|
||
StoredActionRecord:
|
||
type: object
|
||
description: The shape of a payload representing a stored action record.
|
||
properties:
|
||
connection_id:
|
||
type: string
|
||
format: uuid
|
||
description: UUID identifying the connection to use when executing a Stored
|
||
Action.
|
||
selected_api:
|
||
type: string
|
||
description: Something like `SlackAPI` (for Python apps) or `SplitwiseCLIAPI@1.0.0`
|
||
(for CLI apps). Non-public apps are fine as long as the authed user can
|
||
access them. If a version is included we attempt to use that version of
|
||
the integration. If no version is provided we attempt to use the latest
|
||
version of the integration
|
||
action_key:
|
||
type: string
|
||
description: Name of the action in the integration. Such as `new_contact`.
|
||
action_type:
|
||
allOf:
|
||
- $ref: '#/components/schemas/ActionTypeEnum'
|
||
description: 'Specifies the type of action in the integration since some
|
||
integrations could have similarly named actions with different actions
|
||
types
|
||
|
||
|
||
* `read` - Read
|
||
|
||
* `read_bulk` - Read Bulk
|
||
|
||
* `write` - Write
|
||
|
||
* `run` - Run
|
||
|
||
* `search` - Search
|
||
|
||
* `search_or_write` - Search Or Write
|
||
|
||
* `search_and_write` - Search And Write
|
||
|
||
* `filter` - Filter
|
||
|
||
* `tool` - Tool'
|
||
inputs:
|
||
default: {}
|
||
description: 'Key/value pairs that the action needs to execute. In the example
|
||
of SlackAPI this could be something like `{"channel": "ABC", "text": "my
|
||
message"}`'
|
||
id:
|
||
type: string
|
||
format: uuid
|
||
description: The UUID id that identifies this stored action and can be used
|
||
to execute the stored procedure by calling the POST /stored-actions/{stored_action_id}/run
|
||
endpoint.
|
||
type:
|
||
type: string
|
||
default: stored_action
|
||
description: Specifies the resource type, as required by the JSON:API specification.
|
||
required:
|
||
- id
|
||
StoredActionRecordListLinks:
|
||
type: object
|
||
description: Pagination navigation links for a Stored Action list response.
|
||
properties:
|
||
next:
|
||
type:
|
||
- string
|
||
- 'null'
|
||
format: uri
|
||
description: Link to the next page of results; null when on the last page.
|
||
required:
|
||
- next
|
||
StoredActionRecordListMeta:
|
||
type: object
|
||
description: Limit-offset pagination metadata for a Stored Action list response.
|
||
properties:
|
||
limit:
|
||
type: integer
|
||
description: Number of results returned in this response.
|
||
offset:
|
||
type: integer
|
||
description: Starting index for this page of results.
|
||
count:
|
||
type: integer
|
||
description: Total number of results across all pages.
|
||
required:
|
||
- count
|
||
- limit
|
||
- offset
|
||
StoredActionRecordListResponse:
|
||
type: object
|
||
properties:
|
||
results:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/StoredActionRecord'
|
||
description: Stored actions belonging to the caller.
|
||
meta:
|
||
$ref: '#/components/schemas/StoredActionRecordListMeta'
|
||
links:
|
||
$ref: '#/components/schemas/StoredActionRecordListLinks'
|
||
required:
|
||
- links
|
||
- meta
|
||
- results
|
||
StoredActionResult:
|
||
type: object
|
||
description: The flat response payload for fetching a stored action run.
|
||
properties:
|
||
type:
|
||
type: string
|
||
default: run
|
||
description: Specifies the resource type, as required by the JSON:API specification.
|
||
id:
|
||
type: string
|
||
format: uuid
|
||
description: The id returned by the initial call to run an action.
|
||
status:
|
||
allOf:
|
||
- $ref: '#/components/schemas/StatusA45Enum'
|
||
description: 'The result of the action call itself from the partner. You
|
||
could have a success=True (Zapier succeeded) and status=error (the partner
|
||
raise an error).
|
||
|
||
|
||
* `error` - error
|
||
|
||
* `success` - success
|
||
|
||
* `waiting` - waiting'
|
||
results:
|
||
type: array
|
||
items:
|
||
type: object
|
||
additionalProperties: {}
|
||
description: Could be empty, even if the action was successfully run.
|
||
next_page:
|
||
type: string
|
||
description: When using bulk read action types, this denotes the state of
|
||
the paging utilities. Pass it back as `page` on the next POST /stored-actions/{stored_action_id}/run
|
||
call.
|
||
errors:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ActionsFetchError'
|
||
description: Any errors returned by the partner when running this action.
|
||
required:
|
||
- errors
|
||
StoredActionUpdateRequestParams:
|
||
type: object
|
||
description: 'The shape of the payload representing the fields available to
|
||
update
|
||
|
||
a StoredAction.
|
||
|
||
|
||
You should delete your existing StoredAction and create a new record
|
||
|
||
if you need to change either the connection_id or the selected_api.'
|
||
properties:
|
||
action_key:
|
||
type: string
|
||
description: Name of the action in the integration. Such as `new_contact`.
|
||
action_type:
|
||
allOf:
|
||
- $ref: '#/components/schemas/ActionTypeEnum'
|
||
description: 'Specifies the type of action in the integration since some
|
||
integrations could have similarly named actions with different actions
|
||
types
|
||
|
||
|
||
* `read` - Read
|
||
|
||
* `read_bulk` - Read Bulk
|
||
|
||
* `write` - Write
|
||
|
||
* `run` - Run
|
||
|
||
* `search` - Search
|
||
|
||
* `search_or_write` - Search Or Write
|
||
|
||
* `search_and_write` - Search And Write
|
||
|
||
* `filter` - Filter
|
||
|
||
* `tool` - Tool'
|
||
inputs:
|
||
default: {}
|
||
description: Object that matches the input the action would normally get.
|
||
Has all the same keys/types as the `input` of the action. (Formerly known
|
||
as "needs" in some documentation)
|
||
StoredActionsCreateRequest:
|
||
type: object
|
||
properties:
|
||
data:
|
||
$ref: '#/components/schemas/StoredActionsCreateRequestParams'
|
||
required:
|
||
- data
|
||
StoredActionsCreateRequestParams:
|
||
type: object
|
||
description: 'The shape of the payload that must be sent to create a Stored
|
||
Action.
|
||
|
||
|
||
Only the triple (selected_api, action_type, action_key) is accepted —
|
||
|
||
`action_id` is intentionally not exposed on this endpoint.'
|
||
properties:
|
||
connection_id:
|
||
type: string
|
||
format: uuid
|
||
description: UUID of the connection to use when executing the Stored Action.
|
||
Can be any connection visible to the user (including shared).
|
||
selected_api:
|
||
type: string
|
||
description: Something like `SlackAPI` (for Python apps) or `SplitwiseCLIAPI@1.0.0`
|
||
(for CLI apps). Non-public apps are fine as long as the authed user can
|
||
access them. If a version is included we attempt to use that version of
|
||
the integration. If no version is provided we attempt to use the latest
|
||
version of the integration
|
||
action_key:
|
||
type: string
|
||
description: Name of the action in the integration. Such as `new_contact`.
|
||
action_type:
|
||
allOf:
|
||
- $ref: '#/components/schemas/ActionTypeEnum'
|
||
description: 'Specifies the type of action in the integration since some
|
||
integrations could have similarly named actions with different actions
|
||
types
|
||
|
||
|
||
* `read` - Read
|
||
|
||
* `read_bulk` - Read Bulk
|
||
|
||
* `write` - Write
|
||
|
||
* `run` - Run
|
||
|
||
* `search` - Search
|
||
|
||
* `search_or_write` - Search Or Write
|
||
|
||
* `search_and_write` - Search And Write
|
||
|
||
* `filter` - Filter
|
||
|
||
* `tool` - Tool'
|
||
inputs:
|
||
default: {}
|
||
description: Object that matches the input the action would normally get.
|
||
Has all the same keys/types as the `input` of the action. (Formerly known
|
||
as "needs" in some documentation)
|
||
required:
|
||
- action_key
|
||
- action_type
|
||
- selected_api
|
||
StoredActionsCreateResponse:
|
||
type: object
|
||
description: The response returned from creating a Stored Action record.
|
||
properties:
|
||
type:
|
||
type: string
|
||
default: stored_action
|
||
description: Specifies the resource type, as required by the JSON:API specification.
|
||
id:
|
||
type: string
|
||
format: uuid
|
||
description: The UUID id that identifies this stored action and can be used
|
||
to execute the stored procedure by calling the POST /stored-actions/{stored_action_id}/run
|
||
endpoint.
|
||
required:
|
||
- id
|
||
StoredActionsRunRequest:
|
||
type: object
|
||
properties:
|
||
data:
|
||
$ref: '#/components/schemas/StoredActionsRunRequestInput'
|
||
required:
|
||
- data
|
||
StoredActionsRunRequestInput:
|
||
type: object
|
||
description: The shape of a request payload accepted when running a stored action.
|
||
properties:
|
||
callback_url:
|
||
type: string
|
||
format: uri
|
||
description: An optional URL that Zapier will POST the results to when the
|
||
action completes. The POST body will match the same format as the GET
|
||
/stored-actions/{stored_action_id}/runs/{run_id} response.
|
||
maxLength: 2048
|
||
idempotency_id:
|
||
type: string
|
||
format: uuid
|
||
description: A client-provided UUID that identifies this specific request.
|
||
If the same idempotency_id is used within 72 hours, the second request
|
||
will be ignored and the original response returned.
|
||
inputs:
|
||
default: {}
|
||
description: Object that matches the input the action would normally get.
|
||
Has all the same keys/types as the `input` of the action. (Formerly known
|
||
as "needs" in some documentation) Specifically includes more "dynamic"
|
||
information to execute such as a specific message when triggering an action
|
||
that sends a Slack DM, for example.
|
||
page:
|
||
type: string
|
||
description: 'When using bulk read action types, this denotes the state
|
||
of the paging utilities. Pass it back into the stored-actions endpoint. '
|
||
StoredActionsRunResponse:
|
||
type: object
|
||
properties:
|
||
data:
|
||
$ref: '#/components/schemas/StoredActionsRunResponseParams'
|
||
required:
|
||
- data
|
||
StoredActionsRunResponseParams:
|
||
type: object
|
||
description: The data returned after running a stored action
|
||
properties:
|
||
type:
|
||
type: string
|
||
default: run
|
||
description: Specifies the resource type, as required by the JSON:API specification.
|
||
id:
|
||
type: string
|
||
format: uuid
|
||
description: The UUID id that identifies this run of the execution and can
|
||
be used to retrieve the results by polling the GET /stored-actions/{stored_action_id}/runs/{run_id}
|
||
endpoint.
|
||
securitySchemes:
|
||
OAuth:
|
||
type: oauth2
|
||
description: OAuth 2.0 authentication.
|
||
flows:
|
||
authorizationCode:
|
||
authorizationUrl: https://zapier.com/oauth/authorize
|
||
tokenUrl: https://zapier.com/oauth/token
|
||
scopes:
|
||
external: Scope that gives access to all Public APIs
|
||
clientCredentials:
|
||
tokenUrl: https://zapier.com/oauth/token
|
||
scopes:
|
||
external: Scope that gives access to all Public APIs
|