POST /api/v3/campaigns¶
Summary¶
POST campaigns
Description¶
Create a new campaign See Campaign for details on the campaign object
🔒 Required Permissions¶
At least one of the following permissions is required to access this endpoint:
account.createCampaignsagency.updateDeleteAllAgencyAccounts
Tags: campaigns
Parameters¶
Header Parameters¶
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
Authorization |
string |
✓ Yes | Bearer {AuthToken} |
|
Content-Type |
string |
✓ Yes | application/json |
|
Accept |
string |
✓ Yes | application/json |
|
AppIdV3 |
string |
✓ Yes | LCUID-LAP-********-****-****-****-************ |
Request Body¶
Required: Yes
Content Type: application/json¶
Schema¶
Type: object
Required fields: account_lcuid, digital_board_lcuids
Properties:
name(string)account_lcuid(string) (required): lcuid of the account this campaign will belong to.digital_board_lcuids(object) (required): An array of digital board lcuids to associate with this campaign.
Responses¶
Response: 200¶
Description: Sample Response
Content Type: application/json¶
Schema¶
Type: object
Properties:
success(boolean)campaign(object) Type:object
Properties:
name(string)lcuid(string)active(boolean)created_at(string)campaign_state(integer)hash_id(string)campaign_class(string)campaign_class_description(string)-
agencies(array)- Array items:
objectType:object
Properties:
name(string)description(string)software_provider(string)website(string)status(integer)agency_class(string)-
options(object) Type:objectProperties:
primary_image_public_url(string)support_text(string)proof_legal_text(string)
-
lcuid(string) slug(string)created_at(string)updated_at(string)agency_class_description(string)
- Array items:
-
options(object) Type:objectProperties:
unique_board_sizes(array)- Array items:
string unique_board_formats(array)- Array items:
string
-
schedule(string) build_status(integer)
Example Response¶
{
"success": true,
"campaign": {
"name": "My First Campaign",
"lcuid": "LCUID-LE-f56125b6-d378-468e-a031-66435b5e4a8a",
"active": true,
"created_at": "2026-01-07T00:13:48.000000Z",
"campaign_state": 6,
"hash_id": "lch-4CPq",
"campaign_class": "App\\LuCore\\Campaigns\\OperatorContractCampaignClass",
"campaign_class_description": "Media Owner Contract",
"agencies": [
{
"name": "Breezy Billboards",
"description": "Here is a new unit test agency description",
"software_provider": null,
"website": null,
"status": 0,
"agency_class": "App\\LuCore\\Agencies\\OperatorAgencyClass",
"options": {
"primary_image_public_url": null,
"support_text": null,
"proof_legal_text": null
},
"lcuid": "LCUID-LY-3d46daf8-1531-40b2-acfd-a4fb3734482c",
"slug": "TestAgencyUnitTest647qy",
"created_at": "2026-01-07T00:13:47.000000Z",
"updated_at": "2026-01-07T00:13:47.000000Z",
"agency_class_description": "Operator"
}
],
"options": {
"unique_board_sizes": [
"1024x768"
],
"unique_board_formats": [
"oddblock"
]
},
"schedule": "0 * * * *",
"build_status": 7
}
}
Example Implementations¶
Bash (cURL)¶
curl --request POST \
"https://api.lucit.app/api/v3/campaigns" \
--header "Authorization: Bearer {AuthToken}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "AppIdV3: LCUID-LAP-********-****-****-****-************" \
--data "{
\"name\": \"My New Campaign\",
\"account_lcuid\": \"LCUID-LA-506fc585-77be-11ec-acb9-c2cdb617d190\",
\"digital_board_lcuids\": []
}"
JavaScript (Fetch API)¶
const url = new URL(
"https://api.lucit.app/api/v3/campaigns"
);
const headers = {
"Authorization": "Bearer {AuthToken}",
"Content-Type": "application/json",
"Accept": "application/json",
"AppIdV3": "LCUID-LAP-********-****-****-****-************",
};
let body = {
"name": "My New Campaign",
"account_lcuid": "LCUID-LA-506fc585-77be-11ec-acb9-c2cdb617d190",
"digital_board_lcuids": []
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
PHP (Guzzle)¶
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.lucit.app/api/v3/campaigns',
[
'headers' => [
'Authorization' => 'Bearer {AuthToken}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'AppIdV3' => 'LCUID-LAP-********-****-****-****-************',
],
'json' => [
'name' => 'My New Campaign',
'account_lcuid' => 'LCUID-LA-506fc585-77be-11ec-acb9-c2cdb617d190',
'digital_board_lcuids' => [],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Python (Requests)¶
import requests
import json
url = 'https://api.lucit.app/api/v3/campaigns'
payload = {
"name": "My New Campaign",
"account_lcuid": "LCUID-LA-506fc585-77be-11ec-acb9-c2cdb617d190",
"digital_board_lcuids": []
}
headers = {
'Authorization': 'Bearer {AuthToken}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'AppIdV3': 'LCUID-LAP-********-****-****-****-************'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example Responses¶
200 Response¶
{
"success": true,
"campaign": {
"name": "My First Campaign",
"lcuid": "LCUID-LE-f56125b6-d378-468e-a031-66435b5e4a8a",
"active": true,
"created_at": "2026-01-07T00:13:48.000000Z",
"campaign_state": 6,
"hash_id": "lch-4CPq",
"campaign_class": "App\\LuCore\\Campaigns\\OperatorContractCampaignClass",
"campaign_class_description": "Media Owner Contract",
"agencies": [
{
"name": "Breezy Billboards",
"description": "Here is a new unit test agency description",
"software_provider": null,
"website": null,
"status": 0,
"agency_class": "App\\LuCore\\Agencies\\OperatorAgencyClass",
"options": {
"primary_image_public_url": null,
"support_text": null,
"proof_legal_text": null
},
"lcuid": "LCUID-LY-3d46daf8-1531-40b2-acfd-a4fb3734482c",
"slug": "TestAgencyUnitTest647qy",
"created_at": "2026-01-07T00:13:47.000000Z",
"updated_at": "2026-01-07T00:13:47.000000Z",
"agency_class_description": "Operator"
}
],
"options": {
"unique_board_sizes": [
"1024x768"
],
"unique_board_formats": [
"oddblock"
]
},
"schedule": "0 * * * *",
"build_status": 7
}
}