curl --request GET \
--url https://api.instantly.ai/api/v2/campaigns \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instantly.ai/api/v2/campaigns"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instantly.ai/api/v2/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.instantly.ai/api/v2/campaigns")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/campaigns",
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: Bearer <token>"
],
]);
$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.instantly.ai/api/v2/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"id": "01a082d0-32fc-7d06-9847-4256362b9f51",
"name": "My First Campaign",
"status": 1,
"campaign_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": true,
"1": true,
"2": true,
"3": true,
"4": true,
"5": false,
"6": false
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"timestamp_created": "2026-09-08T20:57:57.756Z",
"timestamp_updated": "2026-09-08T20:57:57.756Z",
"pl_value": 100,
"is_evergreen": false,
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},<br/><br/>I hope you are doing well.",
"v_disabled": true
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
]
}
],
"email_gap": 10,
"random_wait_max": 10,
"text_only": false,
"first_email_text_only": false,
"email_list": [
"john@doe.com"
],
"daily_limit": 100,
"stop_on_reply": false,
"email_tag_list": [
"01a082d0-32fc-7d06-9847-4257cb5ddf64"
],
"link_tracking": true,
"open_tracking": true,
"stop_on_auto_reply": false,
"daily_max_leads": 100,
"prioritize_new_leads": false,
"auto_variant_select": {
"trigger": "click_rate"
},
"match_lead_esp": false,
"not_sending_status": 2,
"stop_for_company": false,
"core_variables": {},
"custom_variables": {},
"insert_unsubscribe_header": false,
"allow_risky_contacts": false,
"disable_bounce_protect": false,
"limit_emails_per_company_override": {
"mode": "custom",
"daily_limit": 3,
"scope": "per_campaign"
},
"cc_list": [
"john@doe.com"
],
"bcc_list": [
"john@doe.com"
],
"organization": "01a082d0-32fc-7d06-9847-4258ac2e1dd9",
"owned_by": "01a082d0-32fc-7d06-9847-425923a5dd28",
"ai_sdr_id": "01a082d0-32fc-7d06-9847-425a8950bd0f",
"provider_routing_rules": [
{
"action": "send",
"recipient_esp": [
"all"
],
"sender_esp": [
"all"
]
}
]
}
],
"next_starting_after": "01a082d0-837c-78b2-b931-724ef7af071f"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}List campaign
Requires one of the following scopes: campaigns:read, campaigns:all, all:read, all:all
curl --request GET \
--url https://api.instantly.ai/api/v2/campaigns \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instantly.ai/api/v2/campaigns"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instantly.ai/api/v2/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.instantly.ai/api/v2/campaigns")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/campaigns",
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: Bearer <token>"
],
]);
$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.instantly.ai/api/v2/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"id": "01a082d0-32fc-7d06-9847-4256362b9f51",
"name": "My First Campaign",
"status": 1,
"campaign_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": true,
"1": true,
"2": true,
"3": true,
"4": true,
"5": false,
"6": false
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"timestamp_created": "2026-09-08T20:57:57.756Z",
"timestamp_updated": "2026-09-08T20:57:57.756Z",
"pl_value": 100,
"is_evergreen": false,
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},<br/><br/>I hope you are doing well.",
"v_disabled": true
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
]
}
],
"email_gap": 10,
"random_wait_max": 10,
"text_only": false,
"first_email_text_only": false,
"email_list": [
"john@doe.com"
],
"daily_limit": 100,
"stop_on_reply": false,
"email_tag_list": [
"01a082d0-32fc-7d06-9847-4257cb5ddf64"
],
"link_tracking": true,
"open_tracking": true,
"stop_on_auto_reply": false,
"daily_max_leads": 100,
"prioritize_new_leads": false,
"auto_variant_select": {
"trigger": "click_rate"
},
"match_lead_esp": false,
"not_sending_status": 2,
"stop_for_company": false,
"core_variables": {},
"custom_variables": {},
"insert_unsubscribe_header": false,
"allow_risky_contacts": false,
"disable_bounce_protect": false,
"limit_emails_per_company_override": {
"mode": "custom",
"daily_limit": 3,
"scope": "per_campaign"
},
"cc_list": [
"john@doe.com"
],
"bcc_list": [
"john@doe.com"
],
"organization": "01a082d0-32fc-7d06-9847-4258ac2e1dd9",
"owned_by": "01a082d0-32fc-7d06-9847-425923a5dd28",
"ai_sdr_id": "01a082d0-32fc-7d06-9847-425a8950bd0f",
"provider_routing_rules": [
{
"action": "send",
"recipient_esp": [
"all"
],
"sender_esp": [
"all"
]
}
]
}
],
"next_starting_after": "01a082d0-837c-78b2-b931-724ef7af071f"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The number of items to return
1 <= x <= 10010
The ID of the last item in the previous page - used for pagination. You can use the value of the next_starting_after field from the previous response.
"01956fbd-0eb1-72db-a565-82977a586084"
Search by campaign name
"Summer Sale Campaign"
Filter campaigns by tag ids. Returns campaigns that have any of the specified tags assigned. You can specify multiple tag ids by separating them with a comma.
"01a082d0-837c-78b2-b931-724bfdd722ad,01a082d0-837c-78b2-b931-724c76ee3219"
Filter campaigns by AI Sales Agent ID. Returns campaigns that were created by the specified AI Sales Agent.
"01a082d0-837c-78b2-b931-724d8e3c26f7"
Filter campaigns by status using the campaign status enum value (e.g., ACTIVE, PAUSED).
-99, -1, -2, 0, 1, 2, 3, 4 1
Exclude campaigns with this status using the campaign status enum value (e.g., exclude ACTIVE to list only campaigns that are not currently active).
-99, -1, -2, 0, 1, 2, 3, 4 1
Campaigns managed by an AI Sales Agent are excluded from the results by default. Set to true to include them.
true
Response
The list of Campaign
The list of Campaign
Show child attributes
Show child attributes
The filter for getting the next items after this one, this could either be a UUID, a timestamp, on an email depending on the specific API
"01a082d0-837c-78b2-b931-724ef7af071f"
"2026-09-08T20:58:18.364Z"