Create and manage line items
Overview
This article explains how to create and manage line items, and how to retrieve all line items associated with a specified campaign.
Main endpoints
All line item endpoints are available in the Kamino platform API V2 under line-items.
| Method | Endpoint | Description | Reference |
|---|---|---|---|
| GET | https://api.kaminoretail.dev/v2/campaigns/{campaign_id}/line-items |
Retrieve all line items associated with the specified campaign. |
|
| GET | https://api.kaminoretail.dev/v2/line-items/{line_item_id} |
Retrieve details of a single line item. |
|
| POST | https://api.kaminoretail.dev/v2/campaigns/{campaign_id}/line-items |
Create a line item. |
|
| PUT | https://api.kaminoretail.dev/v2/line-items/{line_item_id} |
Update details of a specific line item by its Id. |
|
Line item attributes
The following table defines key attributes for line items. For the complete list of attributes, see references in “Main endpoints”, earlier in this document.
| Attribute | Data type | Description | Example |
|---|---|---|---|
budget |
integer | The specific spend cap of the line item. Accepted value: equals/greater than zero |
500 |
categories |
array[string] | The list of targeted category Ids. The Ids must match the retailer_product_category_id field from the Product Catalog Feed. |
["category_id1", "category-id2"] |
dates.lower |
array[string<date-time>] | The line item start date, using ISO 8601 UTC timestamp. | 2025-09-01T14:15:22Z |
dates.upper |
array[string<date-time>] | The line item end date, using ISO 8601 UTC timestamp. | 2025-09-15T14:15:22Z |
lineItemCreativesType |
string | The creative delivery model applied to a line item, defining how and under which commercial logic creatives are served. Accepted values : Sponsored, SponsoredProduct
|
SponsoredProduct |
lineItemType |
string | The line item type based on the ad creative format being used. Accepted values: video, display, native.
|
native |
name |
string | The name of the line item. | My line item name |
pageType |
array[string] | The list of targeted page types. Accepted values: home, category, product, universe, search, confirmation. |
["home","category"] |
priority |
string |
The priority. Accepted value: |
default |
products |
array[string] | The list of product Ids from promoted products in the campaign. The Ids must match the retailer_product_id field from the Product Catalog Feed. |
["1234", "4536-abc, "EFGH"] |
rules |
array[object] | The list of rules to apply to the line item. Rules are objects composed of ruleType (string) and settings (object).For more information about available values, see “Delivery rules”, later in this document. |
{"ruleType": "Pacing", "settings":"asap"} |
status |
string | The line item status. Accepted values: programming, review, approved, rejected, running, paused, ended, deleted. |
programming |
Delivery rules
Delivery rules consist of configurations that affect how the Kamino delivery engine serves a line item.
Capping
Capping limits how many times a user can see a line item within a specified time frequency.
-
timeframe: Set toHour,Day,Week,Month, orLifetime. -
timelapse: You must always set this value to0. -
frequency: The maximum number of impressions allowed per timeframe.
Example
{
"ruleType": "Capping",
"settings": {
"timeframe": "day",
"timelapse": "0",
"frequency": "5"
}
}Keywords
Keywords restrict ad delivery to specific search contexts.
The settings object contains a single keywords key, which accepts a list of keywords, separated by semicolons (;). You must replace spaces with underscores (_).
Example
{
"ruleType": "Keywords",
"settings": {
"keywords": "keyword_1;keyword_2"
}
}Opt-in
The opt-in rule ensures that the platform only delivers line items to opt-in users. This rule requires no additional settings parameters.
Example:
{
"ruleType": "OptIn",
"settings": {}
}Enabling this option significantly reduces your native reach.
Pacing
Pacing controls the rate at which a line item consumes its predefined impressions or budget during its scheduled run time.
The pacing_type field is case-insensitive—for example Daily, DAILY, or daily are valid. The platform normalizes all inputs to lowercase for storage and delivery.
-
Daily: Limits the number of impressions per day, using Kamino's data to allocate a maximum number of impressions per hour, based on the line item's remaining budget. -
Asap: Delivers the budget as quickly as possible without restrictions. -
Adaptive: Dynamically adjusts pacing based on delivery performance. -
Custom: Follows a manual delivery rate value specified in thepacing_valuefield.
Example - Asap
{
"ruleType": "Pacing",
"settings": {
"pacing_type": "asap"
}
}Example - Custom
{
"ruleType": "Pacing",
"settings": {
"pacing_type": "custom",
"pacing_value": 1000
}
}