Deal ID List API
Deal ID lists can be created, edited and viewed using the API. When you have created a Deal ID list, you can use that list in the Programmatic Supply section on a Demand Tag.
This feature is available for ClearLine account types.
- 1 SDK Object Dictionary
- 2 Creating a Deal ID List
- 3 Get a Deal ID List
- 4 Add Deal IDs
- 5 Add Deal IDs from a File
- 5.1 REST API
- 6 Replace Entire Deal ID List
- 7 Replace Entire Deal ID List with a File
- 7.1 REST API
- 8 Get Deal IDs in Deal ID List
- 9 Remove Deal IDs
- 10 Remove Deal IDs Using a File
- 10.1 REST API
- 11 Target Deal IDs on a Demand Tag
SDK Object Dictionary
Object: response from springserve.deal_id_lists.get(<id>)
Name | Attribute/Method | Arguments | Description |
|---|---|---|---|
account_id | attribute |
| SpringServe Account ID for object |
active | attribute |
| Is Deal ID List active |
bulk_create | method | list[str] | Add up to 10,000 values to a list |
bulk_delete | method | list[str] | Remove up to 10,000 values to a list |
bulk_replace | method | list[str] | Replace up to 10,000 values to a list |
created_at | attribute |
| When object was created |
deleted_at | attribute |
| When object was deleted |
description | attribute |
| Optional description |
duplicate | method | name: str | Copies original object, returns new object. Specify name as argument to provide a name to the new list |
get_list | method | None | Returns object array of Deal ID Names |
id | attribute |
| ID of Deal ID List Object |
ids_count | attribute |
| Number of IDs stored |
name | attribute |
| Name of Deal ID List |
ok | attribute |
| Checks data types and values of object. If not ok, returns False. |
pending_ids_count | attribute |
| Number of Deal IDs in processing queue to be added to list |
processed_ids_count | attribute |
| Number of Deal IDs processed and added to list |
raw | attribute |
| Returns Dictionary of object |
save | method | None | Makes POST request to save object |
status | attribute |
| Status of Pending/Processed IDs |
updated_at | attribute |
| When object was last updated |
Creating a Deal ID List
SDK
Use tab completion with SDK to auto-complete function names or show field options.
import springserve as ss
deal_id_list = ss.deal_id_lists.new({"name": "New Deal ID List"})
print(deal_id_list.ok, deal_id_list.id)
True 348REST API
Method: POST
Endpoint: /api/v0/deal_id_lists
Fields:
Field | Data Type | Required | Notes |
|---|---|---|---|
name | string | True | List title |
description | string | False | Add your own description |
active | bool | False | Default = true |
Headers
Content-Type application/json
Authorization "yourAuthToken"Body (example)
{
"name": "New Deal ID List"
}Response: Status code 200
{
"id": 348,
"name": "New Deal ID List",
"description": null,
"account_id": 1,
"active": true,
"status": "completed",
"ids_count": 0,
"pending_ids_count": 0,
"processed_ids_count": 0,
"created_at": "2023-10-02T21:24:08.989Z",
"updated_at": "2023-10-02T21:25:12.713Z",
"deleted_at": null
}
Get a Deal ID List
SDK
import springserve as ss
deal_id_list = ss.deal_id_lists.get(348)
print(deal_id_list.name)
# Output
"New Deal ID List"REST API
Method: GET
Endpoint: /api/v0/deal_id_lists/<id>
Headers:
Content-Type application/json
Authorization "yourAuthToken"Response: Status code 200
{
"id": 348,
"name": "New Deal ID List",
"description": null,
"account_id": 1,
"active": true,
"status": "completed",
"ids_count": 0,
"pending_ids_count": 0,
"processed_ids_count": 0,
"created_at": "2023-10-02T21:24:08.989Z",
"updated_at": "2023-10-02T21:25:12.713Z",
"deleted_at": null
}Add Deal IDs
SDK
import springserve as ss
deal_id_list = ss.deal_id_lists.get(348)
response = deal_id_list.bulk_create(['deal_id_1', 'deal_id_2'])
print(response.ok)
TrueREST API
Method: POST
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids/bulk_create
Headers
Content-Type application/json
Authorization "yourAuthToken"
Body (example)
{
"deal_ids": ["deal_id_1", "deal_id_2"]
}
Response: Status code 200
{"created": True}Add Deal IDs from a File
Appends Deal IDs in the csv file to the list
REST API
Method: POST
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids/file_bulk_create
curl --location --request POST 'https://console.springserve.com/api/v0/deal_id_lists/<id>/deal_ids/file_bulk_create' \
--header 'Content-Type: application/json' \
--header 'Authorization: <yourAuthToken>' \
--form 'csv_file=@"/<filepath>/appending_deal_id_list.csv"'Response: Status code 201
{"created": True}
Replace Entire Deal ID List
SDK
import springserve as ss
deal_id_list = ss.deal_id_lists.get(348)
response = deal_id_list.bulk_replace(['new_deal_1', 'new_deal_2'])
print(response.ok)
# Output
TrueREST API
Method: POST
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids/bulk_replace
Headers
Content-Type application/json
Authorization "yourAuthToken"Body (example)
{
"deal_ids": ["new_deal_1", "new_deal_2"]
}Response: Status code 201
{"created": True}
Replace Entire Deal ID List with a File
Replaces Deal ID list with the Deal IDs in the csv file
REST API
Method: POST
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids/file_bulk_replace
curl --location --request POST 'https://console.springserve.com/api/v0/deal_id_lists/<id>/deal_ids/file_bulk_replace' \
--header 'Content-Type: application/json' \
--header 'Authorization: <yourAuthToken>' \
--form 'csv_file=@"/<filepath>/replacement_deal_id_list.csv"'Response: Status code 201
{"created": True}Get Deal IDs in Deal ID List
SDK
import springserve as ss
did_list = ss.deal_id_lists.get(348)
list_values = did_list.get_list()
for i in list_values:
print(i["deal_id"])
# Output
deal_id_1
deal_id_2
deal_id_3REST API
Method: GET
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids
Headers
Content-Type application/json
Authorization "yourAuthToken"Response: Status code 200 (note: you need to paginate)
[
{"deal_id": "deal_id_1"},
{"deal_id": "deal_id_2"}
]Remove Deal IDs
SDK
import springserve as ss
deal_id_list = ss.deal_id_lists.get(348)
response = deal_id_list.remove_names(['deal_id_2'])
print(response.ok)
# Output
True
print(response.deleted)
# Output
TrueREST API
Method: DELETE
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids/bulk_delete
Headers
Content-Type application/json
Authorization "yourAuthToken"Body (example)
{
"deal_ids": ["deal_id_2"]
}Response: Status code 200 (note you need to paginate)
{"deleted": True}Remove Deal IDs Using a File
Removes Deal IDs in the csv file from the list
REST API
Method: POST
Endpoint: /api/v0/deal_id_lists/<id>/deal_ids/file_bulk_delete
curl --location --request POST 'https://console.springserve.com/api/v0/deal_id_lists/<id>/deal_ids/file_bulk_delete' \
--header 'Content-Type: application/json' \
--header 'Authorization: <yourAuthToken>' \
--form 'csv_file=@"/<filepath>/delete_these_deal_ids.csv"'Response: Status code 200
{"deleted": True}
Target Deal IDs on a Demand Tag
To attach a Deal ID List to a demand tag, you must populate the "inventory_groups" object array.
SDK
import springserve as ss
tag = ss.demand_tags.get(1)
targeting_group = {
"group": "1",
"list_type": "white_list",
"source_type": "list",
"inventory_object": "DealIdList",
"deal_id_list_ids": [348]
}
tag.inventory_groups.append(targeting_group)
print(tag.save().ok)
# Output
True
REST API
See documentation on the Supply and Demand Tag APIs