Get a single campaign
curl --request GET \
--url https://openapi.enginy.ai/v1/campaign/{campaignId} \
--header 'x-api-key: <api-key>'import requests
url = "https://openapi.enginy.ai/v1/campaign/{campaignId}"
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://openapi.enginy.ai/v1/campaign/{campaignId}', 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://openapi.enginy.ai/v1/campaign/{campaignId}",
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://openapi.enginy.ai/v1/campaign/{campaignId}"
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://openapi.enginy.ai/v1/campaign/{campaignId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/campaign/{campaignId}")
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{
"status": "success",
"message": "<string>",
"data": {
"name": "<string>",
"steps": [
{
"type": "email",
"stepId": "<string>",
"connectionId": "<string>",
"nextConnectionId": "<string>",
"subject": "<string>",
"content": "<string>",
"delay": {
"value": 1
}
}
],
"id": 123,
"appUrl": "<string>",
"createdBy": {
"id": 123,
"name": "<string>"
},
"crmOwnerId": "<string>",
"senderIdentity": {
"id": 123,
"name": "<string>"
},
"folderId": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"identityId": 123,
"shouldAutomaticallySend": true,
"shouldSendTrackingPixel": true,
"shouldTrackEmailLinks": true,
"excludeContactedLeads": true,
"allowedEmails": [
"<string>"
]
}
}Campaigns
Get a single campaign
Retrieve a specific campaign as the public simplified sequence plus campaign settings. Use this when you need a readable campaign in the supported public step model, not the full internal editor graph.
Responses include direct Enginy app URLs when available. Responses include an appUrl that opens the campaign overview in Enginy. MCP agents should return those URLs to users whenever they are present in the response.
Required scope:
CAMPAIGNS_READRate limit: 100 requests per minute
GET
/
v1
/
campaign
/
{campaignId}
Get a single campaign
curl --request GET \
--url https://openapi.enginy.ai/v1/campaign/{campaignId} \
--header 'x-api-key: <api-key>'import requests
url = "https://openapi.enginy.ai/v1/campaign/{campaignId}"
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://openapi.enginy.ai/v1/campaign/{campaignId}', 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://openapi.enginy.ai/v1/campaign/{campaignId}",
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://openapi.enginy.ai/v1/campaign/{campaignId}"
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://openapi.enginy.ai/v1/campaign/{campaignId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/campaign/{campaignId}")
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{
"status": "success",
"message": "<string>",
"data": {
"name": "<string>",
"steps": [
{
"type": "email",
"stepId": "<string>",
"connectionId": "<string>",
"nextConnectionId": "<string>",
"subject": "<string>",
"content": "<string>",
"delay": {
"value": 1
}
}
],
"id": 123,
"appUrl": "<string>",
"createdBy": {
"id": 123,
"name": "<string>"
},
"crmOwnerId": "<string>",
"senderIdentity": {
"id": 123,
"name": "<string>"
},
"folderId": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"identityId": 123,
"shouldAutomaticallySend": true,
"shouldSendTrackingPixel": true,
"shouldTrackEmailLinks": true,
"excludeContactedLeads": true,
"allowedEmails": [
"<string>"
]
}
}⌘I