curl --request PATCH \
--url https://api.zapier.com/actions/v1/stored-actions/{stored_action_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"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"
}
}
}
'import requests
url = "https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}"
payload = { "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"
}
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
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'}
}
})
};
fetch('https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'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'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}"
payload := strings.NewReader("{\n \"data\": {\n \"connection_id\": \"019320ab-0000-7000-8000-abcdef012345\",\n \"selected_api\": \"SplitwiseCLIAPI@1.0.0\",\n \"action_key\": \"new_contact\",\n \"action_type\": \"read\",\n \"inputs\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"connection_id\": \"019320ab-0000-7000-8000-abcdef012345\",\n \"selected_api\": \"SplitwiseCLIAPI@1.0.0\",\n \"action_key\": \"new_contact\",\n \"action_type\": \"read\",\n \"inputs\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"connection_id\": \"019320ab-0000-7000-8000-abcdef012345\",\n \"selected_api\": \"SplitwiseCLIAPI@1.0.0\",\n \"action_key\": \"new_contact\",\n \"action_type\": \"read\",\n \"inputs\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"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"
}
}{
"errors": [
{
"status": 400,
"code": "bad_request",
"title": "Bad Request",
"detail": "Improperly formatted or incompleted request",
"source": null,
"meta": {}
}
]
}{
"errors": [
{
"status": 403,
"code": "permission_denied",
"detail": "User does not have enough permissions to perform action"
}
]
}{
"errors": [
{
"status": 429,
"code": "too_many_requests",
"detail": "Rate limit exceeded. Too many requests."
}
]
}{
"errors": [
{
"status": 500,
"code": "external_service_error",
"detail": "An error occurred with an external service."
}
]
}{
"errors": [
{
"status": 503,
"code": "service_unavaiable",
"detail": "Service is temporarily unavailable"
}
]
}Update a stored action
Stored Actions endpoints handle the creation, execution, updates, and deletions of single created actions.
curl --request PATCH \
--url https://api.zapier.com/actions/v1/stored-actions/{stored_action_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"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"
}
}
}
'import requests
url = "https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}"
payload = { "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"
}
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
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'}
}
})
};
fetch('https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'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'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}"
payload := strings.NewReader("{\n \"data\": {\n \"connection_id\": \"019320ab-0000-7000-8000-abcdef012345\",\n \"selected_api\": \"SplitwiseCLIAPI@1.0.0\",\n \"action_key\": \"new_contact\",\n \"action_type\": \"read\",\n \"inputs\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"connection_id\": \"019320ab-0000-7000-8000-abcdef012345\",\n \"selected_api\": \"SplitwiseCLIAPI@1.0.0\",\n \"action_key\": \"new_contact\",\n \"action_type\": \"read\",\n \"inputs\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapier.com/actions/v1/stored-actions/{stored_action_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"connection_id\": \"019320ab-0000-7000-8000-abcdef012345\",\n \"selected_api\": \"SplitwiseCLIAPI@1.0.0\",\n \"action_key\": \"new_contact\",\n \"action_type\": \"read\",\n \"inputs\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"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"
}
}{
"errors": [
{
"status": 400,
"code": "bad_request",
"title": "Bad Request",
"detail": "Improperly formatted or incompleted request",
"source": null,
"meta": {}
}
]
}{
"errors": [
{
"status": 403,
"code": "permission_denied",
"detail": "User does not have enough permissions to perform action"
}
]
}{
"errors": [
{
"status": 429,
"code": "too_many_requests",
"detail": "Rate limit exceeded. Too many requests."
}
]
}{
"errors": [
{
"status": 500,
"code": "external_service_error",
"detail": "An error occurred with an external service."
}
]
}{
"errors": [
{
"status": 503,
"code": "service_unavaiable",
"detail": "Service is temporarily unavailable"
}
]
}Authorizations
OAuth 2.0 authentication.
Path Parameters
Body
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.
Show child attributes
Show child attributes
Response
A StoredAction record was successfully updated.
The shape of a payload representing a stored action record.
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.
UUID identifying the connection to use when executing a Stored Action.
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
Name of the action in the integration. Such as new_contact.
Specifies the type of action in the integration since some integrations could have similarly named actions with different actions types
read- Readread_bulk- Read Bulkwrite- Writerun- Runsearch- Searchsearch_or_write- Search Or Writesearch_and_write- Search And Writefilter- Filtertool- Tool
read, read_bulk, write, run, search, search_or_write, search_and_write, filter, tool Key/value pairs that the action needs to execute. In the example of SlackAPI this could be something like {"channel": "ABC", "text": "my message"}
Specifies the resource type, as required by the JSON:API specification.
Was this page helpful?