curl --request GET \
--url https://api.extole.io/v1/components \
--header 'Authorization: <api-key>'import requests
url = "https://api.extole.io/v1/components"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.extole.io/v1/components', 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.extole.io/v1/components",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$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.extole.io/v1/components"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v1/components")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v1/components")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"assets": [
{
"description": "<string>",
"filename": "<string>",
"id": "<string>",
"name": "<string>",
"tags": [
"<string>"
]
}
],
"campaign_id": "<string>",
"campaign_state": "<string>",
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"created_date": "2025-10-24T02:00:00-07:00",
"description": "<string>",
"display_name": "<string>",
"facets": [
{
"name": "<string>",
"value": "<string>"
}
],
"id": "<string>",
"install": {},
"installed_into_socket": "<string>",
"name": "<string>",
"origin": {
"client_id": "<string>",
"component_id": "<string>",
"component_version": 123
},
"owner": "CLIENT",
"source_client_id": "<string>",
"tags": [
"<string>"
],
"type": "<string>",
"types": [
"<string>"
],
"updated_date": "2025-10-24T02:00:00-07:00",
"upload_version": "<string>",
"variables": [
{
"description": "<string>",
"display_name": "<string>",
"name": "<string>",
"priority": "10",
"tags": [
"<string>"
],
"type": "ADMIN_ICON",
"source": "INHERITED",
"values": {
"default": {},
"en": {}
}
}
],
"version": 123
}
]List components
Returns all components visible to the current client. Components are the reusable building blocks that campaigns assemble — creatives, content blocks, and sub-experiences.
curl --request GET \
--url https://api.extole.io/v1/components \
--header 'Authorization: <api-key>'import requests
url = "https://api.extole.io/v1/components"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.extole.io/v1/components', 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.extole.io/v1/components",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$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.extole.io/v1/components"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
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.extole.io/v1/components")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v1/components")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"assets": [
{
"description": "<string>",
"filename": "<string>",
"id": "<string>",
"name": "<string>",
"tags": [
"<string>"
]
}
],
"campaign_id": "<string>",
"campaign_state": "<string>",
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"created_date": "2025-10-24T02:00:00-07:00",
"description": "<string>",
"display_name": "<string>",
"facets": [
{
"name": "<string>",
"value": "<string>"
}
],
"id": "<string>",
"install": {},
"installed_into_socket": "<string>",
"name": "<string>",
"origin": {
"client_id": "<string>",
"component_id": "<string>",
"component_version": 123
},
"owner": "CLIENT",
"source_client_id": "<string>",
"tags": [
"<string>"
],
"type": "<string>",
"types": [
"<string>"
],
"updated_date": "2025-10-24T02:00:00-07:00",
"upload_version": "<string>",
"variables": [
{
"description": "<string>",
"display_name": "<string>",
"name": "<string>",
"priority": "10",
"tags": [
"<string>"
],
"type": "ADMIN_ICON",
"source": "INHERITED",
"values": {
"default": {},
"en": {}
}
}
],
"version": 123
}
]Authorizations
Query Parameters
The name of the component to filter by.
The owner of the component to filter by. (CLIENT, EXTOLE, EXTOLE_BETA)
The state of the components campaign to filter by. (LIVE, PAUSED, ENDED,...)
The version state PUBLISHED or LATEST(default)
LATEST, PUBLISHED A comma-separated list of components campaign IDs to filter by.
A comma-separated list of tags; the component must have at least one of these tags.
A comma-separated list of tags; the component must have all of these tags.
A comma-separated list of tags; the component having any of these tags is excluded.
A comma-separated list of tags; the component having all of these tags is excluded.
A comma-separated list of component types; the component must have at least one of these types.
A comma-separated list of component types; the component must have all of these types.
A comma-separated list of setting name:value pairs. Backslash escapes the next character (e.g. , : \). The component must have at least one.
A comma-separated list of setting name:value pairs. Backslash escapes the next character (e.g. , : \). The component must have all of them.
The ID of the target component to filter by. Only compatible components will be returned.
The name of the target setting (socket or component_setting_lookup) to filter by. Only compatible components will be returned.
The REST-visible property name on the target setting whose value provides the compatibility filter collection. When provided explicitly, it requires target_component_id and target_setting_name. Defaults to filters when omitted. Only REST-visible properties whose values are supported filter collections are accepted. Only compatible components will be returned.
The ID of a component whose descendants to return, within that component's campaign. A child is a component that references this component. The component itself is not returned. Descendants are returned in the same order as any other listing, not grouped by level; each result's component_ids and installed_into_socket identify its parent and socket.
The name of a socket on parent_component_id. Only children installed into this socket are returned at the first level; deeper levels include children in any socket. Requires parent_component_id.
How many levels below parent_component_id to return: a number of 1 or greater, or all for the whole subtree. 1 (default) returns direct children only, 2 adds their children, and so on. Requires parent_component_id.
An external element as type:id, for example AUDIENCE:<audience_id>. Returns only components whose built configuration uses it. The only supported type is AUDIENCE, which matches an audience_id or audience_id_list setting holding the audience, a membership action, membership trigger or event targeting trigger that belongs to the component and names it, one of the audience's own components, or a component_id, component_reference or component_reference_list setting pointing at one of the audience's own components. version_state selects which built campaign version is checked.
showAll applies only for components from EXTOLE & EXTOLE_BETA ownersfalse (default) shows components from LIVE, integration and campaign-components program-types.true returns all components regardless of their program-type or state of the campaign.
includeGranted includes components from granted clients (not subscribed). false (default) excludes granted-only components. true also includes components from granted-only clients.
includeSubscribed includes components from subscribed clients. true (default) includes subscribed components. false excludes subscribed components, showing only owned.
Response
Successful response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
The display name as configured: a literal value, or an expression (type:string) when defined dynamically. Buildtime expressions use CampaignBuildtimeContext.
Show child attributes
Show child attributes
The install as configured: a literal value, or an expression (type:string) when defined dynamically. Installtime expressions use ComponentInstalltimeContext.
Show child attributes
Show child attributes
CLIENT, EXTOLE, EXTOLE_BETA RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
Show child attributes
Show child attributes
Was this page helpful?
