curl --request POST \
--url https://api.stardex.ai/v1/automations/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"offset": 0,
"limit": 100,
"keywords": [
"<string>"
],
"is_enabled": true,
"is_archived": false,
"sort_by": "created_at",
"sort_order": "desc"
}
'import requests
url = "https://api.stardex.ai/v1/automations/search"
payload = {
"offset": 0,
"limit": 100,
"keywords": ["<string>"],
"is_enabled": True,
"is_archived": False,
"sort_by": "created_at",
"sort_order": "desc"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offset: 0,
limit: 100,
keywords: ['<string>'],
is_enabled: true,
is_archived: false,
sort_by: 'created_at',
sort_order: 'desc'
})
};
fetch('https://api.stardex.ai/v1/automations/search', 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.stardex.ai/v1/automations/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 0,
'limit' => 100,
'keywords' => [
'<string>'
],
'is_enabled' => true,
'is_archived' => false,
'sort_by' => 'created_at',
'sort_order' => 'desc'
]),
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.stardex.ai/v1/automations/search"
payload := strings.NewReader("{\n \"offset\": 0,\n \"limit\": 100,\n \"keywords\": [\n \"<string>\"\n ],\n \"is_enabled\": true,\n \"is_archived\": false,\n \"sort_by\": \"created_at\",\n \"sort_order\": \"desc\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.stardex.ai/v1/automations/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 0,\n \"limit\": 100,\n \"keywords\": [\n \"<string>\"\n ],\n \"is_enabled\": true,\n \"is_archived\": false,\n \"sort_by\": \"created_at\",\n \"sort_order\": \"desc\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/automations/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 0,\n \"limit\": 100,\n \"keywords\": [\n \"<string>\"\n ],\n \"is_enabled\": true,\n \"is_archived\": false,\n \"sort_by\": \"created_at\",\n \"sort_order\": \"desc\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"id": "aaa11111-bbbb-cccc-dddd-eeeeeeee2222",
"name": "Email owner when a candidate is rejected",
"is_enabled": true,
"is_archived": false,
"runs_on_api_changes": false,
"trigger_type": "candidate_status_changed",
"action_count": 6,
"action_types": [
"send_email",
"delay",
"add_note",
"agent_instructions",
"create_task"
],
"created_at": "2026-08-21T10:00:00Z",
"updated_at": "2026-08-21T10:00:00Z"
}
],
"meta": {
"total": 12,
"offset": 0,
"limit": 100
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Search automations
Search saved automations with pagination and sorting.
Filters: keywords (name substring), is_enabled, is_archived (defaults to false), trigger_type.
Sorting: sort_by — created_at (default), updated_at, name. sort_order — asc or desc (default).
List rows include action counts, not the full trigger or action payloads. Use GET /v1/automations/{id} for the full recipe.
curl --request POST \
--url https://api.stardex.ai/v1/automations/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"offset": 0,
"limit": 100,
"keywords": [
"<string>"
],
"is_enabled": true,
"is_archived": false,
"sort_by": "created_at",
"sort_order": "desc"
}
'import requests
url = "https://api.stardex.ai/v1/automations/search"
payload = {
"offset": 0,
"limit": 100,
"keywords": ["<string>"],
"is_enabled": True,
"is_archived": False,
"sort_by": "created_at",
"sort_order": "desc"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offset: 0,
limit: 100,
keywords: ['<string>'],
is_enabled: true,
is_archived: false,
sort_by: 'created_at',
sort_order: 'desc'
})
};
fetch('https://api.stardex.ai/v1/automations/search', 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.stardex.ai/v1/automations/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 0,
'limit' => 100,
'keywords' => [
'<string>'
],
'is_enabled' => true,
'is_archived' => false,
'sort_by' => 'created_at',
'sort_order' => 'desc'
]),
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.stardex.ai/v1/automations/search"
payload := strings.NewReader("{\n \"offset\": 0,\n \"limit\": 100,\n \"keywords\": [\n \"<string>\"\n ],\n \"is_enabled\": true,\n \"is_archived\": false,\n \"sort_by\": \"created_at\",\n \"sort_order\": \"desc\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.stardex.ai/v1/automations/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 0,\n \"limit\": 100,\n \"keywords\": [\n \"<string>\"\n ],\n \"is_enabled\": true,\n \"is_archived\": false,\n \"sort_by\": \"created_at\",\n \"sort_order\": \"desc\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/automations/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 0,\n \"limit\": 100,\n \"keywords\": [\n \"<string>\"\n ],\n \"is_enabled\": true,\n \"is_archived\": false,\n \"sort_by\": \"created_at\",\n \"sort_order\": \"desc\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"id": "aaa11111-bbbb-cccc-dddd-eeeeeeee2222",
"name": "Email owner when a candidate is rejected",
"is_enabled": true,
"is_archived": false,
"runs_on_api_changes": false,
"trigger_type": "candidate_status_changed",
"action_count": 6,
"action_types": [
"send_email",
"delay",
"add_note",
"agent_instructions",
"create_task"
],
"created_at": "2026-08-21T10:00:00Z",
"updated_at": "2026-08-21T10:00:00Z"
}
],
"meta": {
"total": 12,
"offset": 0,
"limit": 100
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Authenticate with a Bearer token: API key, OAuth token, or session token.
Body
Records to skip for pagination. Defaults to 0.
x >= 0Max records per page (1–100). Defaults to 100.
1 <= x <= 100Case-insensitive substring match on the automation name.
Filter by whether the automation is enabled.
Filter by archive status. Defaults to false so archived automations are hidden.
Filter by trigger kind.
schedule, candidate_status_changed, job_status_changed, job_created, deal_status_changed Column to sort by. Defaults to created_at.
created_at, updated_at, name Sort direction. Defaults to desc.
asc, desc Was this page helpful?