Creating a Line
Lines are created under a Campaign using: POST /rtb/lines
The Line is the level where bidding and inventory delivery are executed. Every Campaign must have at least one Line in order to deliver impressions.
In this example, we will create a Line under:
- Advertiser ID: 5943
- Campaign ID: 14901
- Seat ID: 1000
Because the example Campaign was configured to manage budgets, Creatives, Pixels, pacing/dayparts, and frequency settings, the Line inherits those applicable Campaign-level settings. However, some corresponding fields are still required in the Line creation request for validation. These fields can be populated without creating additional Line-level restrictions.
Required Fields
The following fields are required when creating a Line:
advertiserId: Parent Advertiser ID.campaignId: Parent Campaign ID.name: Line display name.status: Line status. Use1for active or0for inactive.startDate: Line start date inYYYYMMDDformat.endDate: Line end date inYYYYMMDDformat.bidPrice: CPM bid price in dollars.bidType: Bidding method. Supported values include:basic: Fixed CPM bid.bid-floor: Bid based on the applicable floor price.advanced: Supports more granular or Deal-specific bidding.
recency: Minimum number of minutes between impressions. Supported values are0,1,2,5,15,30,60, and360.dailyPacing: Line pacing type. Supported values includeeven,asap, andcustom.catchupAsap: Enables aggressive catch-up pacing when behind.dayPartTargetingMode: Determines the timezone used for dayparting. Supported values includeuserandline.
budgetType is inherited from the parent Campaign and should not be included in the Line request.
Campaign-Managed Settings
The parent Campaign in this example has Campaign-level management enabled for:
- Budget
- Creatives
- Pixels
- Pacing and dayparts
- Frequency and recency
As a result, the Line does not need to explicitly associate Creative ID 30336 or Pixel ID 18887. These associations are inherited from the parent Campaign.
Because Campaign budget management is enabled, the Line uses budgetAllocationWeight rather than setting an independent Line budget.
Some pacing and frequency fields must still be populated in the POST request to satisfy Line validation. A value of 0 is used for Line-level frequency and recency so that the Campaign-level restrictions remain controlling.
Budget Allocation
When budgetManagement is enabled on the parent Campaign, use:
budgetAllocationWeight
to assign budget weight to each Line.
In this example, there is only one Line, so a weight of 100 is used:
"budgetAllocationWeight": 100
The Line also uses:
"budgetMultiplier": 1
A multiplier of 1 means no additional daily budget multiplier is applied.
Bid Settings
This example uses Bid at Floor bidding with a maximum configured bid value of $5.11 CPM.
"bidPrice": 5.11,
"bidType": "bid-floor",
"maxBid": 5.11
The Line will use floor-based bidding while limiting the configured bid to $5.11 CPM.
Targeting Requirements
The Line endpoint requires a targets object.
At least one country must be included under:
targets.geoCountries.include
In addition, targets.dayParts.include must contain at least one eligible day and hour.
Because this example Campaign allows delivery 24 hours per day, seven days per week, the Line includes all 168 hours. This satisfies Line validation without introducing a more restrictive Line-level daypart schedule.
Frequency Validation
The Line endpoint also requires a frequencyCap value even when frequency is managed at the Campaign level.
For this example, Line-level frequency is disabled using:
"enableFrequency": false,
"enableIpFrequencyCapping": false,
"frequencyCap": 0,
"dailyIpImpsLimit": 0,
"timeFrameDays": 1,
"frequencyCapType": "ip"
The Line-level recency is also set to 0.
This leaves Line-level frequency and recency unrestricted while allowing the Campaign-level settings to remain controlling.
Example Request
curl -X 'POST' \
'https://api.pontiac.media/rtb/lines' \
-H 'accept: application/json' \
-H 'auth: YOUR_AUTH_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"advertiserId": 5943,
"campaignId": 14901,
"seatId": 1000,
"name": "API Example Line",
"status": 1,
"startDate": 20260901,
"endDate": 20260930,
"bidPrice": 5.11,
"bidType": "bid-floor",
"maxBid": 5.11,
"recency": 0,
"dailyPacing": "even",
"catchupAsap": true,
"dayPartTargetingMode": "user",
"budgetAllocationWeight": 100,
"budgetMultiplier": 1,
"inventoryType": "combined",
"enableFrequency": false,
"enableIpFrequencyCapping": false,
"frequencyCap": 0,
"dailyIpImpsLimit": 0,
"timeFrameDays": 1,
"frequencyCapType": "ip",
"targets": {
"geoCountries": {
"include": [
{
"code": "US"
}
]
},
"dayParts": {
"include": [
{"day":"monday","hour":0},
{"day":"monday","hour":1},
{"day":"monday","hour":2},
{"day":"monday","hour":3},
{"day":"monday","hour":4},
{"day":"monday","hour":5},
{"day":"monday","hour":6},
{"day":"monday","hour":7},
{"day":"monday","hour":8},
{"day":"monday","hour":9},
{"day":"monday","hour":10},
{"day":"monday","hour":11},
{"day":"monday","hour":12},
{"day":"monday","hour":13},
{"day":"monday","hour":14},
{"day":"monday","hour":15},
{"day":"monday","hour":16},
{"day":"monday","hour":17},
{"day":"monday","hour":18},
{"day":"monday","hour":19},
{"day":"monday","hour":20},
{"day":"monday","hour":21},
{"day":"monday","hour":22},
{"day":"monday","hour":23},
{"day":"tuesday","hour":0},
{"day":"tuesday","hour":1},
{"day":"tuesday","hour":2},
{"day":"tuesday","hour":3},
{"day":"tuesday","hour":4},
{"day":"tuesday","hour":5},
{"day":"tuesday","hour":6},
{"day":"tuesday","hour":7},
{"day":"tuesday","hour":8},
{"day":"tuesday","hour":9},
{"day":"tuesday","hour":10},
{"day":"tuesday","hour":11},
{"day":"tuesday","hour":12},
{"day":"tuesday","hour":13},
{"day":"tuesday","hour":14},
{"day":"tuesday","hour":15},
{"day":"tuesday","hour":16},
{"day":"tuesday","hour":17},
{"day":"tuesday","hour":18},
{"day":"tuesday","hour":19},
{"day":"tuesday","hour":20},
{"day":"tuesday","hour":21},
{"day":"tuesday","hour":22},
{"day":"tuesday","hour":23},
{"day":"wednesday","hour":0},
{"day":"wednesday","hour":1},
{"day":"wednesday","hour":2},
{"day":"wednesday","hour":3},
{"day":"wednesday","hour":4},
{"day":"wednesday","hour":5},
{"day":"wednesday","hour":6},
{"day":"wednesday","hour":7},
{"day":"wednesday","hour":8},
{"day":"wednesday","hour":9},
{"day":"wednesday","hour":10},
{"day":"wednesday","hour":11},
{"day":"wednesday","hour":12},
{"day":"wednesday","hour":13},
{"day":"wednesday","hour":14},
{"day":"wednesday","hour":15},
{"day":"wednesday","hour":16},
{"day":"wednesday","hour":17},
{"day":"wednesday","hour":18},
{"day":"wednesday","hour":19},
{"day":"wednesday","hour":20},
{"day":"wednesday","hour":21},
{"day":"wednesday","hour":22},
{"day":"wednesday","hour":23},
{"day":"thursday","hour":0},
{"day":"thursday","hour":1},
{"day":"thursday","hour":2},
{"day":"thursday","hour":3},
{"day":"thursday","hour":4},
{"day":"thursday","hour":5},
{"day":"thursday","hour":6},
{"day":"thursday","hour":7},
{"day":"thursday","hour":8},
{"day":"thursday","hour":9},
{"day":"thursday","hour":10},
{"day":"thursday","hour":11},
{"day":"thursday","hour":12},
{"day":"thursday","hour":13},
{"day":"thursday","hour":14},
{"day":"thursday","hour":15},
{"day":"thursday","hour":16},
{"day":"thursday","hour":17},
{"day":"thursday","hour":18},
{"day":"thursday","hour":19},
{"day":"thursday","hour":20},
{"day":"thursday","hour":21},
{"day":"thursday","hour":22},
{"day":"thursday","hour":23},
{"day":"friday","hour":0},
{"day":"friday","hour":1},
{"day":"friday","hour":2},
{"day":"friday","hour":3},
{"day":"friday","hour":4},
{"day":"friday","hour":5},
{"day":"friday","hour":6},
{"day":"friday","hour":7},
{"day":"friday","hour":8},
{"day":"friday","hour":9},
{"day":"friday","hour":10},
{"day":"friday","hour":11},
{"day":"friday","hour":12},
{"day":"friday","hour":13},
{"day":"friday","hour":14},
{"day":"friday","hour":15},
{"day":"friday","hour":16},
{"day":"friday","hour":17},
{"day":"friday","hour":18},
{"day":"friday","hour":19},
{"day":"friday","hour":20},
{"day":"friday","hour":21},
{"day":"friday","hour":22},
{"day":"friday","hour":23},
{"day":"saturday","hour":0},
{"day":"saturday","hour":1},
{"day":"saturday","hour":2},
{"day":"saturday","hour":3},
{"day":"saturday","hour":4},
{"day":"saturday","hour":5},
{"day":"saturday","hour":6},
{"day":"saturday","hour":7},
{"day":"saturday","hour":8},
{"day":"saturday","hour":9},
{"day":"saturday","hour":10},
{"day":"saturday","hour":11},
{"day":"saturday","hour":12},
{"day":"saturday","hour":13},
{"day":"saturday","hour":14},
{"day":"saturday","hour":15},
{"day":"saturday","hour":16},
{"day":"saturday","hour":17},
{"day":"saturday","hour":18},
{"day":"saturday","hour":19},
{"day":"saturday","hour":20},
{"day":"saturday","hour":21},
{"day":"saturday","hour":22},
{"day":"saturday","hour":23},
{"day":"sunday","hour":0},
{"day":"sunday","hour":1},
{"day":"sunday","hour":2},
{"day":"sunday","hour":3},
{"day":"sunday","hour":4},
{"day":"sunday","hour":5},
{"day":"sunday","hour":6},
{"day":"sunday","hour":7},
{"day":"sunday","hour":8},
{"day":"sunday","hour":9},
{"day":"sunday","hour":10},
{"day":"sunday","hour":11},
{"day":"sunday","hour":12},
{"day":"sunday","hour":13},
{"day":"sunday","hour":14},
{"day":"sunday","hour":15},
{"day":"sunday","hour":16},
{"day":"sunday","hour":17},
{"day":"sunday","hour":18},
{"day":"sunday","hour":19},
{"day":"sunday","hour":20},
{"day":"sunday","hour":21},
{"day":"sunday","hour":22},
{"day":"sunday","hour":23}
]
}
},
"currency": "usd"
}'
Response
A successful request returns the newly created Line and its stored configuration.
The response for this example returned:
{
"timestamp": "2026-09-01 17:47:29",
"response": {
"id": 75913,
"advertiserId": 5943,
"campaignId": 14901,
"seatId": 1000,
"name": "API Example Line",
"status": 1,
"statusInfo": [],
"startDate": 20260901,
"endDate": 20260930,
"deployDate": "2026-09-01 12:47:29",
"budgetType": "spend",
"budget": 0,
"bidPrice": 5.11,
"averageBidPrice": 5.11,
"inventoryType": "combined",
"creativeIds": [
30336
],
"pixelIds": [
18887
],
"targets": {
"geoCountries": {
"include": [
{
"code": "US",
"name": "United States"
}
]
},
"dayParts": {
"include": [
"...all 168 configured day/hour combinations..."
]
}
},
"dailyPacing": "even",
"catchupAsap": 1,
"dayPartTargetingMode": "user",
"applyPacingCurveToAllDays": 0,
"enableIpFrequencyCapping": 0,
"enableFrequency": 0,
"dailyIpImpsLimit": 0,
"frequencyCap": 0,
"timeFrameDays": 1,
"budgetMultiplier": 1,
"rtbMargin": 0,
"enableFootTraffic": 0,
"budgetAllocationWeight": 100,
"dailyBudget": 0,
"recency": 0,
"bidType": "bid-floor",
"flights": [
{
"id": 58824,
"lineId": 75913,
"campaignFlightId": 8371,
"startDate": 20260901,
"endDate": 20260930,
"budget": 0,
"budgetAllocationWeight": 100,
"budgetMultiplier": 1,
"status": 1,
"dailyBudget": 0
}
],
"currency": "usd",
"advancedBids": [],
"indexUseCuratedDeal": 0,
"xandrUseCuratedDeal": 0,
"frequencyCapType": "ip"
},
"accountStatus": 1,
"seatId": 1000
}
Save the Line id returned in the response.
Line ID: 75913
The response also confirms several Campaign inheritance behaviors.
Creative and Pixel Inheritance
Creative ID 30336 and Pixel ID 18887 were not explicitly included in the Line request but were automatically associated with the created Line because Creative and Pixel management are enabled on the parent Campaign.
Budget Inheritance
The Line inherited:
"budgetType": "spend"
from the parent Campaign.
Because Campaign budget management is enabled, the Line’s independent budget is returned as 0. Instead, the Line uses:
"budgetAllocationWeight": 100
to determine its share of the Campaign-managed budget.
Line Flight
A Line flight was also automatically created:
Line Flight ID: 58824
The Line flight is linked to:
Campaign Flight ID: 8371
and uses the same date range as the Campaign flight.
Frequency and Recency
The Line was created with:
"enableFrequency": 0,
"frequencyCap": 0,
"recency": 0
This leaves Line-level frequency and recency unrestricted while the Campaign-level frequency and recency settings remain controlling.
Targeting
The Line endpoint requires both country and daypart targeting to be populated during creation.
This example targets:
- Country: United States
- Dayparts: All 168 hours of the week
Using the complete 24/7 schedule ensures that the Line itself does not further restrict the Campaign-level daypart schedule.
Created Objects
At the end of this example, the setup includes:
- Advertiser ID:
5943 - Creative ID:
30336 - Pixel ID:
18887 - Campaign ID:
14901 - Campaign Flight ID:
8371 - Line ID:
75913 - Line Flight ID:
58824
Pontiac Bidder UI Validation
Line Creation & Setup

Targeting, Creatives, Audiences, & Pixels
