Get Campaign
curl --request GET \
--url https://api.ravan.ai/api/v1/campaigns/{id} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.ravan.ai/api/v1/campaigns/{id}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.ravan.ai/api/v1/campaigns/{id}', 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.ravan.ai/api/v1/campaigns/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <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.ravan.ai/api/v1/campaigns/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<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.ravan.ai/api/v1/campaigns/{id}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/campaigns/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"id": "<string>",
"organizationId": "<string>",
"name": "<string>",
"agentId": "<string>",
"phoneNumberId": "<string>",
"fromPhoneNumber": "<string>",
"status": "<string>",
"executionStatus": "<string>",
"schedule": {
"start": "<string>",
"end": "<string>",
"windowStart": "<string>",
"windowEnd": "<string>",
"windowDays": [
123
],
"timezone": "<string>",
"maxConcurrent": 123,
"retryAttempts": 123,
"retryGapMin": 123
},
"contactStats": {
"total": 123,
"contacted": 123,
"successful": 123,
"failed": 123,
"noAnswer": 123,
"pending": 123,
"inProgress": 123
},
"startedAt": "<string>",
"completedAt": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"outboundMaxConcurrent": 123,
"outboundMaxCps": 123
}
}Campaign API
Get Campaign
Get Campaign.
GET
/
api
/
v1
/
campaigns
/
{id}
Get Campaign
curl --request GET \
--url https://api.ravan.ai/api/v1/campaigns/{id} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.ravan.ai/api/v1/campaigns/{id}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.ravan.ai/api/v1/campaigns/{id}', 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.ravan.ai/api/v1/campaigns/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <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.ravan.ai/api/v1/campaigns/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<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.ravan.ai/api/v1/campaigns/{id}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/campaigns/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"id": "<string>",
"organizationId": "<string>",
"name": "<string>",
"agentId": "<string>",
"phoneNumberId": "<string>",
"fromPhoneNumber": "<string>",
"status": "<string>",
"executionStatus": "<string>",
"schedule": {
"start": "<string>",
"end": "<string>",
"windowStart": "<string>",
"windowEnd": "<string>",
"windowDays": [
123
],
"timezone": "<string>",
"maxConcurrent": 123,
"retryAttempts": 123,
"retryGapMin": 123
},
"contactStats": {
"total": 123,
"contacted": 123,
"successful": 123,
"failed": 123,
"noAnswer": 123,
"pending": 123,
"inProgress": 123
},
"startedAt": "<string>",
"completedAt": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"outboundMaxConcurrent": 123,
"outboundMaxCps": 123
}
}Actual endpoint:
GET https://api.ravan.ai/api/v1/campaigns/{id}Authorizations
string
required
Your Agni API key used to authenticate the request. Pass it in the
X-Api-Key header. Find or rotate it from your Ravan AI account settings.Path Parameters
string
required
The unique ID of the campaign. Use the
id returned by the List or Create Campaign endpoint.Response
boolean
Whether the request succeeded.
string
Human-readable status message. Example:
Campaign fetched successfullyobject
Campaign object.
Show data
Show data
string
Campaign UUID. Example:
019ebbef-48d7-7ebc-a751-4a10362a3bbfstring
Organization UUID. Example:
95a4e479-03a7-4f1b-834d-8705756e8e59string
Campaign name. Example:
test agent harshstring
Assigned agent UUID. Example:
019e92f8-f032-7fb7-b294-508f4167618estring
Phone number UUID. Example:
019e92f4-097d-7a52-b5e5-fa7e0dd0761fstring
Caller ID in E.164 format. Example:
+918035088113string
Campaign status:
draft, active, paused, completed.string
Execution state:
draft, running, paused, completed.object
Campaign scheduling configuration.
Show schedule
Show schedule
string
Campaign start datetime.
string
Campaign end datetime.
string
Daily calling window start time. Example:
09:00string
Daily calling window end time. Example:
17:00integer[]
Active days of the week (1=Monday … 7=Sunday). Example:
[1, 2, 3, 4, 5]string
Timezone for the schedule. Example:
Asia/Kolkatainteger
Maximum concurrent calls. Example:
1integer
Number of retry attempts. Example:
2integer
Gap in minutes between retries. Example:
30object
string
Timestamp when the campaign started (ISO 8601).
string
Timestamp when the campaign completed (ISO 8601).
string
Creation timestamp. Example:
2026-06-12T13:04:41Zstring
Last updated timestamp. Example:
2026-06-12T13:18:57Zinteger
Maximum concurrent outbound calls limit. Example:
3integer
Maximum outbound calls per second. Example:
2⌘I

