Automations
List Automations
Retrieves workflow automations for the project, with optional filtering by status and tags.
GET
/
automations
curl --request GET \
--url 'https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20' \
--header 'Authorization: Bearer AS_your-project-api-key'
import requests
url = "https://api.autosend.com/v1/automations"
headers = {
"Authorization": "Bearer AS_your-project-api-key"
}
params = {"status": "active", "tags": "onboarding", "page": 1, "limit": 20}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({
status: 'active',
tags: 'onboarding',
page: '1',
limit: '20'
});
fetch(`https://api.autosend.com/v1/automations?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer AS_your-project-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer AS_your-project-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer AS_your-project-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListWorkflows {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/automations?status=active&page=1&limit=20");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer AS_your-project-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
uri = URI('https://api.autosend.com/v1/automations')
uri.query = URI.encode_www_form(status: 'active', tags: 'onboarding', page: 1, limit: 20)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer AS_your-project-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"workflowAutomations": [
{
"id": "60d5ec49f1b2c72d9c8b9abc",
"name": "Welcome Series",
"status": "active",
"entryCriteria": { "type": "contact_created" },
"exitCriteria": { "type": "workflow_complete" },
"steps": [],
"tags": ["onboarding"],
"trackingOpen": true,
"trackingClick": true,
"createdBy": {
"id": "60d5ec49f1b2c72d9c8b3333",
"firstName": "Jane",
"lastName": "Doe"
},
"analytics": {
"totalEntered": 1250,
"totalCompleted": 980,
"totalExited": 40,
"totalActive": 230,
"sent": 2100,
"delivered": 2050,
"opened": 1320,
"clicked": 410,
"bounced": 12
},
"activeAt": "2026-05-08T10:00:00.000Z",
"createdAt": "2026-05-01T08:00:00.000Z",
"updatedAt": "2026-05-08T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"pages": 1
}
}
}
Returns a paginated list of workflow automations for the project, with optional filtering by
status and comma-separated tags.curl --request GET \
--url 'https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20' \
--header 'Authorization: Bearer AS_your-project-api-key'
import requests
url = "https://api.autosend.com/v1/automations"
headers = {
"Authorization": "Bearer AS_your-project-api-key"
}
params = {"status": "active", "tags": "onboarding", "page": 1, "limit": 20}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({
status: 'active',
tags: 'onboarding',
page: '1',
limit: '20'
});
fetch(`https://api.autosend.com/v1/automations?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer AS_your-project-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer AS_your-project-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer AS_your-project-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListWorkflows {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/automations?status=active&page=1&limit=20");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer AS_your-project-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
uri = URI('https://api.autosend.com/v1/automations')
uri.query = URI.encode_www_form(status: 'active', tags: 'onboarding', page: 1, limit: 20)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer AS_your-project-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"workflowAutomations": [
{
"id": "60d5ec49f1b2c72d9c8b9abc",
"name": "Welcome Series",
"status": "active",
"entryCriteria": { "type": "contact_created" },
"exitCriteria": { "type": "workflow_complete" },
"steps": [],
"tags": ["onboarding"],
"trackingOpen": true,
"trackingClick": true,
"createdBy": {
"id": "60d5ec49f1b2c72d9c8b3333",
"firstName": "Jane",
"lastName": "Doe"
},
"analytics": {
"totalEntered": 1250,
"totalCompleted": 980,
"totalExited": 40,
"totalActive": 230,
"sent": 2100,
"delivered": 2050,
"opened": 1320,
"clicked": 410,
"bounced": 12
},
"activeAt": "2026-05-08T10:00:00.000Z",
"createdAt": "2026-05-01T08:00:00.000Z",
"updatedAt": "2026-05-08T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"pages": 1
}
}
}
Authorizations
string | header
required
Project API key header of the form Bearer
AS_<key>.Query Parameters
string
Filter by workflow status. One of
draft, active, paused, or archived.string
Comma-separated list of tags to filter by.Example:
"onboarding,trial"integer
Page number (1-indexed). Default
1.integer
Page size. Default
50, maximum 100.Response
Workflow automations retrieved successfullyboolean
Example:
trueobject
Show child attributes
Show child attributes
object[]
Array of workflow automations. Each entry includes the resolved
createdBy user and live analytics for active workflows.Show automation attributes
Show automation attributes
string
Unique workflow identifier.
string
Display name of the workflow.
string
Current status:
draft, active, paused, or archived.object
Conditions that determine which contacts enter the workflow.
object
Conditions that cause contacts to exit the workflow early.
object[]
Ordered step definitions.
string[]
Tags for filtering and organization.
boolean
Whether open tracking is enabled.
boolean
Whether click tracking is enabled.
object
User who created the workflow (
id, firstName, lastName).object
Live send and engagement metrics (
totalEntered, totalCompleted, totalExited, totalActive, sent, delivered, opened, clicked, bounced).string
ISO 8601 timestamp when the workflow was last activated.
string
ISO 8601 creation timestamp.
string
ISO 8601 last-updated timestamp.
Was this page helpful?
⌘I
curl --request GET \
--url 'https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20' \
--header 'Authorization: Bearer AS_your-project-api-key'
import requests
url = "https://api.autosend.com/v1/automations"
headers = {
"Authorization": "Bearer AS_your-project-api-key"
}
params = {"status": "active", "tags": "onboarding", "page": 1, "limit": 20}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({
status: 'active',
tags: 'onboarding',
page: '1',
limit: '20'
});
fetch(`https://api.autosend.com/v1/automations?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer AS_your-project-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer AS_your-project-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/automations?status=active&tags=onboarding&page=1&limit=20"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer AS_your-project-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListWorkflows {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/automations?status=active&page=1&limit=20");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer AS_your-project-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
uri = URI('https://api.autosend.com/v1/automations')
uri.query = URI.encode_www_form(status: 'active', tags: 'onboarding', page: 1, limit: 20)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer AS_your-project-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"workflowAutomations": [
{
"id": "60d5ec49f1b2c72d9c8b9abc",
"name": "Welcome Series",
"status": "active",
"entryCriteria": { "type": "contact_created" },
"exitCriteria": { "type": "workflow_complete" },
"steps": [],
"tags": ["onboarding"],
"trackingOpen": true,
"trackingClick": true,
"createdBy": {
"id": "60d5ec49f1b2c72d9c8b3333",
"firstName": "Jane",
"lastName": "Doe"
},
"analytics": {
"totalEntered": 1250,
"totalCompleted": 980,
"totalExited": 40,
"totalActive": 230,
"sent": 2100,
"delivered": 2050,
"opened": 1320,
"clicked": 410,
"bounced": 12
},
"activeAt": "2026-05-08T10:00:00.000Z",
"createdAt": "2026-05-01T08:00:00.000Z",
"updatedAt": "2026-05-08T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"pages": 1
}
}
}