Retrieve custom action definitions
curl --request GET \
--url 'https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey='import requests
url = "https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey=', 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.hubapi.com/automation/actions/2026-03/{appId}?hapikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"results": [
{
"actionUrl": "<string>",
"functions": [
{
"functionType": "POST_ACTION_EXECUTION",
"id": "<string>"
}
],
"id": "<string>",
"inputFields": [
{
"isRequired": true,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"type": "bool",
"description": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": [
"STATIC_VALUE"
]
}
],
"labels": {},
"objectTypes": [
"<string>"
],
"published": true,
"revisionId": "<string>",
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"<string>"
]
}
],
"objectRequestOptions": {
"properties": [
"<string>"
]
},
"outputFields": [
{
"typeDefinition": {
"externalOptions": true,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": true,
"label": "<string>",
"readOnly": true,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"type": "bool",
"useChirp": true,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "ABANDONED_CART"
}
}
]
}
],
"paging": {
"next": {
"after": "<string>",
"link": "<string>"
}
}
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Definitions
Retrieve custom action definitions
Retrieve custom workflow action definitions by app ID.
GET
/
automation
/
actions
/
2026-03
/
{appId}
Retrieve custom action definitions
curl --request GET \
--url 'https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey='import requests
url = "https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey=', 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.hubapi.com/automation/actions/2026-03/{appId}?hapikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/automation/actions/2026-03/{appId}?hapikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"results": [
{
"actionUrl": "<string>",
"functions": [
{
"functionType": "POST_ACTION_EXECUTION",
"id": "<string>"
}
],
"id": "<string>",
"inputFields": [
{
"isRequired": true,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"type": "bool",
"description": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": [
"STATIC_VALUE"
]
}
],
"labels": {},
"objectTypes": [
"<string>"
],
"published": true,
"revisionId": "<string>",
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"<string>"
]
}
],
"objectRequestOptions": {
"properties": [
"<string>"
]
},
"outputFields": [
{
"typeDefinition": {
"externalOptions": true,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": true,
"label": "<string>",
"readOnly": true,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"type": "bool",
"useChirp": true,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "ABANDONED_CART"
}
}
]
}
],
"paging": {
"next": {
"after": "<string>",
"link": "<string>"
}
}
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Authorizations
Path Parameters
The unique identifier of the application to retrieve extension definitions for.
Query Parameters
The paging cursor token of the last successfully read resource will be returned as the paging.next.after JSON property of a paged response containing more results.
Whether to return only results that have been archived.
The maximum number of results to display per page.
Response
successful operation
An array of public action definitions, each represented by a PublicActionDefinition object.
Show child attributes
Show child attributes
Paging information for forward-only pagination. Contains the next page reference when more results are available; omitted or empty on the last page.
Show child attributes
Show child attributes
Last modified on September 9, 2026
Was this page helpful?