curl -X POST https://api.thinnest.ai/campaigns/{campaign_id}/launch \
-H "Authorization: Bearer $THINNESTAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}'
import requests
url = "https://api.thinnest.ai/campaigns/{campaign_id}/launch"
headers = {
"Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
"Content-Type": "application/json",
}
payload = {
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.thinnest.ai/campaigns/{campaign_id}/launch", {
method: "POST",
headers: {
"Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}),
});
const data = await response.json();
console.log(data);
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}`)
req, _ := http.NewRequest("POST", "https://api.thinnest.ai/campaigns/{campaign_id}/launch", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer YOUR_THINNESTAI_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}
Campaigns
Launch Campaign
Launch a campaign to start reaching contacts.
POST
/
campaigns
/
{campaign_id}
/
launch
curl -X POST https://api.thinnest.ai/campaigns/{campaign_id}/launch \
-H "Authorization: Bearer $THINNESTAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}'
import requests
url = "https://api.thinnest.ai/campaigns/{campaign_id}/launch"
headers = {
"Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
"Content-Type": "application/json",
}
payload = {
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.thinnest.ai/campaigns/{campaign_id}/launch", {
method: "POST",
headers: {
"Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}),
});
const data = await response.json();
console.log(data);
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}`)
req, _ := http.NewRequest("POST", "https://api.thinnest.ai/campaigns/{campaign_id}/launch", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer YOUR_THINNESTAI_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}
curl -X POST https://api.thinnest.ai/campaigns/{campaign_id}/launch \
-H "Authorization: Bearer $THINNESTAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}'
import requests
url = "https://api.thinnest.ai/campaigns/{campaign_id}/launch"
headers = {
"Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
"Content-Type": "application/json",
}
payload = {
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.thinnest.ai/campaigns/{campaign_id}/launch", {
method: "POST",
headers: {
"Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}),
});
const data = await response.json();
console.log(data);
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}`)
req, _ := http.NewRequest("POST", "https://api.thinnest.ai/campaigns/{campaign_id}/launch", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer YOUR_THINNESTAI_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
Path Parameters
Campaign ID (must be in draft status)
Response 200
{
"id": "camp_a1b2c3d4",
"status": "running",
"started_at": "2026-03-07T14:30:00Z",
"total_contacts": 150,
"message": "Campaign launched successfully"
}
Prerequisites
Before launching, ensure:- Campaign has at least one contact
- Agent exists and is properly configured
- Sufficient wallet balance for the campaign
- If voice campaign: agent has
voiceEnabled: true
Errors
| Code | Description |
|---|---|
401 | Missing or invalid authentication |
402 | Insufficient balance |
404 | Campaign not found |
409 | Campaign is not in draft status |
422 | Campaign configuration is incomplete |
⌘I

