Skip to content

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.createCampaigns
  • agency.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: object Type: object

    Properties:

    • name (string)
    • description (string)
    • software_provider (string)
    • website (string)
    • status (integer)
    • agency_class (string)
    • options (object) Type: object

      Properties:

      • 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)
  • options (object) Type: object

    Properties:

    • 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
    }
}

← Back to campaigns index | Back to main index