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.

SDK Object Dictionary

Object: response from springserve.deal_id_lists.get(<id>)

NameAttribute/MethodArgumentsDescription
account_idattribute
SpringServe Account ID for object
activeattribute
Is Deal ID List active
bulk_createmethodlist[str]Add up to 10,000 values to a list
bulk_deletemethodlist[str]Remove up to 10,000 values to a list
bulk_replacemethodlist[str]Replace up to 10,000 values to a list
created_atattribute
When object was created
deleted_atattribute
When object was deleted
descriptionattribute
Optional description
duplicatemethodname: strCopies original object, returns new object. Specify name as argument to provide a name to the new list
get_listmethodNoneReturns object array of Deal ID Names
idattribute
ID of Deal ID List Object
ids_countattribute
Number of IDs stored
nameattribute
Name of Deal ID List
okattribute
Checks data types and values of object. If not ok, returns False.
pending_ids_countattribute
Number of Deal IDs in processing queue to be added to list
processed_ids_countattribute
Number of Deal IDs processed and added to list
rawattribute
Returns Dictionary of object
savemethodNoneMakes POST request to save object
statusattribute
Status of Pending/Processed IDs
updated_atattribute
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 348

REST API

Method: POST

Endpoint: /api/v0/deal_id_lists

Fields:

FieldData TypeRequiredNotes
namestringTrueList title
descriptionstringFalseAdd your own description
activeboolFalseDefault = 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)
True

REST 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
True

REST 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_3

REST 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
True

REST 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