- 56 Minutes to read
Programmatic Guaranteed Deals
- 56 Minutes to read
Create and manage Programmatic Guaranteed Deals (PGD), also known as guaranteed deals, using the agreements
endpoint in order to lock in premium supply to guarantee delivery on a specific supply pool. A deal agreement contains one or more guaranteed deals.
Endpoint
/traffic/deals/agreements
Use the following HTTP methods for managing PGD.
Use the
GET by ID
method to view all existing versions of a deal agreement.Use the
GET legal term
method to retrieve a deal agreement legal termUse the
GET calculated budget
to retrieve the total budget for an accepted deal agreementUse the
POST
method to create a new deal agreement for all exchanges except AdX.Use the
POST version
method to create a new version for an existing deal agreement for all exchanges except AdX.Use the
POST accept
method to accept a proposed deal agreement version for AdX.Use the
POST reject
method to reject a proposed deal agreement version for AdX.
Required and Supported Fields
Deal Agreement
Note
New versions of deal agreements with different payloads must be created as existing deal agreements cannot be directly updated. Refer to the POST new deal agreement version endpoint for more details.
The deal agreement object contains the following fields.
Parameter | Definition | Data Type | Create | Update |
---|---|---|---|---|
| The ID of the deal agreement. This is a read only field that is only returned when retrieving deal agreement information (GET by ID endpoint). |
| N/A | N/A |
| The name of the deal agreement. The character limit for the name is 255. |
| Required | N/A |
| The name of the exchange. The following exchanges are supported as values.
The values are case sensitive and must match. |
| Required | N/A |
| The name of the publisher. The character limit for the publisher name is 255. |
| Optional | N/A |
| The supply platform's ID for the deal agreement or proposal. The character limit for the ID is 255. |
| Optional | N/A |
| The deal agreement’s seat ID. This ID needs to be identical to the current active seat ID. |
| Required | N/A |
| An array of Deal Agreement Contact objects. Refer to the Deal Agreement Contact section for more details. |
| Optional | N/A |
| An array of Deal Agreement Version objects. Refer to the Deal Agreement Version section for more details. Only one deal agreement version should be provided when creating a new deal agreement. |
| Required | N/A |
Deal Agreement Contact
The Deal Agreement Contact object contains contact information that is attached to a deal agreement.
Note
Deal agreement contacts cannot be directly updated. Only certain fields can be updated by creating a new deal agreement version. Refer to the POST new deal agreement version endpoint for more details.
The deal agreement contactsList
array contains the following fields.
Parameter | Definition | Data Type | Create | Update |
---|---|---|---|---|
| The ID of the deal agreement contact. This is a read only field that is only returned when retrieving deal agreement information. |
| N/A | N/A |
| The email address for the contact. Must be a valid email address based on the RFC 3696 standard. The character limit is 254, per the above standard. |
| Required | N/A |
| The type of contact.
|
| Required | N/A |
Deal Agreement Version
This object contains information about the deal agreement version and fields.
Note
To update a deal agreement, a new deal agreement version needs to be created. Therefore, the update column will be marked as N/A.
The deal agreement version object contains the following fields.
Parameter | Definition | Data Type | Create | Update |
---|---|---|---|---|
| The ID of the deal agreement version. This is a read only field that is only returned when retrieving deal agreement information (GET by ID endpoint). |
| N/A | N/A |
| The status of the deal agreement version. This is a read only field that is only returned when retrieving the latest version of a deal agreement. Supported values include the following.
|
| N/A | N/A |
| The version number for the deal agreement version. This is a read only field that is only returned when retrieving the deal agreement version. |
| N/A | N/A |
| The date and time when the deal agreement has been accepted (if applicable). This is a read only field that is only returned when retrieving a version of a deal agreement. The date follows the ISO date time format. For example, 2025-12-31T00:00:00.00Z |
| N/A | N/A |
| The ID of the order (campaign) created based on the deal agreement details. Make sure to provide the order ID, as this field cannot be updated. |
| N/A during deal agreement create Required during create new deal agreement version | N/A |
| The ID of the deal agreement. This is a read only field that is only returned when retrieving the deal agreement version. |
| N/A | N/A |
| The deal agreement legal term associated with the current version of the deal agreement. Refer to the Deal Agreement Legal Term section for more details. |
| Required | N/A |
| The list of deal agreement terms. At least one deal term must be provided when creating a new deal agreement. When creating a new deal agreement version, an existing deal term can be updated or deleted, or new deal terms can be added. Refer to the Deal Term section for more details related to the structure. |
| Required | N/A |
Deal Agreement Legal Term
The deal agreement legal term is a required object that is composed of a unique ID and a body, which is the legal note.
To get a deal agreement legal term, call the GET deals/agreements/legalterms/{legalTermType} endpoint.
Both the ID and the legal term body need to be valid and match the response returned by the endpoint.
Note
Since the deal agreement legal term is a first level field in the deal agreement version and versions do not have an update endpoint, we will also mark the update column as N/A for the deal agreement legal term.
The deal agreement legal term object contains the following fields.
Parameter | Definition | Data Type | Create | Update |
---|---|---|---|---|
| The ID of the deal agreement legal term. It must match with one of the existing DSP deal agreement legal term IDs. |
| Required | N/A |
| The legal term body, which is the actual legal text associated with the term. It must match with one of the existing DSP deal agreement legal term bodies. Validity is checked by removing any leading or trailing spaces and applying a case insensitive matching. |
| Required | N/A |
Deal Term
The deal term object contains information based on which line, deal and creative requirements are created. At least one deal term must be provided when creating a new deal agreement.
When creating a new deal agreement version, existing deal terms can be updated or deleted, or new ones can be added. This is done based on the deal and line IDs passed as part of the deal term.
Parameter | Definition | Data Type | Create | Update |
---|---|---|---|---|
| The ID of the deal term. This is a read only field that is only returned when retrieving the deal term. |
| N/A | N/A |
| The name of the deal term. The maximum character limit is 255. This field is required, but it cannot be updated. When updating an existing deal term, please send this field without updating its value. |
| Required | Required |
| The deal ID in the publisher (exchange) system, also known as the external deal identifier. The character limit is 255. |
| Required | Required This field is required, but it cannot be updated. When updating an existing deal term, please send this field without updating its value. |
| The DSP deal ID. When creating a new deal agreement, both the line and the deal ID should be null. When creating a new version of a deal agreement, both the line and the deal ID should be sent as null (creating a new deal term) or both should be sent with a non null value (updating an existing deal term). |
| N/A when creating a new deal agreement or creating a new deal term on a new version of a deal agreement | Required when updating an existing term for a new version of a deal agreement |
| The DSP line ID. When creating a new deal agreement, both the line and the deal ID should be null. When creating a new version of a deal agreement, both the line and the deal ID should be sent as null (creating a new deal term) or both should be sent with a non null value (updating an existing deal term). |
| N/A when creating a new deal agreement or creating a new deal term on a new version of a deal agreement | Required when updating an existing term, for a new version of a deal agreement |
| The DSP advertiser ID. This is a required field, both when creating a new deal agreement and when creating a new version of a deal agreement. The same advertiser/account ID should be passed for all deal terms belonging to a deal agreement. All deal terms must belong to the same advertiser. The specified advertiser must belong to the agencySeatId of the deal agreement. If not, a validation error will be thrown. This field is required, but it cannot be updated. When updating an existing deal term, please send this field without updating its value. |
| Required | Required |
| The start date of the existing (new deal agreement version) or to be created (new deal agreement) line. When creating a new deal agreement, the start date must be equal to or after the current date. When creating a new version of a deal agreement, the start date cannot be updated if the previous version start date was in the past and the status is accepted. In which case, only the end date can be updated. The date is in ISO date only format. For example, 2025-12-31 |
| Required | Required |
| The end date of the existing (new deal agreement version) or to be created (new deal agreement) line. When creating a deal agreement or a new version of a deal agreement, note the following.
The date is in ISO date only format. For example, 2026-12-31 |
| Required | Required |
| The billing method applied for the deal term. This is a read only field that is only returned when retrieving the deal term. For now, this will automatically default to the only supported billing method, which is CPM_PRICE (Fixed CPM). |
| N/A | N/A |
| The currency of the deal agreement. This field should be set on each term. It cannot be updated once set, but it is required on new deal version calls as well, with the already saved value. All deal terms should have the same currency associated with them.
Keep in mind that values are case sensitive. |
| Required | Required |
| The timezone of the deal agreement. This field should be set on each term. It cannot be updated once set, but it is required on new deal version calls as well, with the already saved value. All deal terms should have the same timezone associated with them.
Keep in mind that values are case sensitive. |
| Required | Required |
| The billing price for a given deal term (CPM rate). Each deal term has its own billing price. This is a required field, both for creating a new deal agreement and when creating a new version of a deal agreement. The billing price is a positive decimal point number. |
| Required | Required |
| The media cost for a given deal term (inventory cost). Each deal term has its own media cost. This is a required field, both for creating a new deal agreement and when creating a new deal agreement version. The media cost is a positive decimal point number. |
| Required | Required |
| The impression budget, also known as the guaranteed number of impressions that the publisher has reserved for the advertiser. This is a read only field that is only returned when retrieving the deal term. Calculated based on the billing price and the media cost. It is an integer value with no decimal points. |
| N/A | N/A |
| The total deal term budget (total line budget), which is calculated based on the billing price and the media cost, plus the PGD fee. This is a read only field that is only returned when retrieving the deal term. This is a decimal value that is calculated in the API and should not be passed in the payload by users. |
| N/A | N/A |
| A boolean field that indicates whether the setup is complete for the deal term creatives. This is a read only field that is only returned when retrieving the deal term. This field can be either true or false. |
| N/A | N/A |
| Additional text information related to the setup complete process for the deal term creatives, which can be null if no information has been added. This is a read only field that is only returned when retrieving the deal term. |
| N/A | N/A |
| The deal term bot avoidance algorithm type. This is a required field, both when creating a new deal agreement and when creating a new version of a deal agreement. Supported values include the following.
Keep in mind that values are case sensitive and that for the AUDIO, DOOH_DISPLAY and DOOH_VIDEO media types, the only supported bot avoidance type is Yahoo Proprietary. This field is required, but it cannot be updated. When updating an existing deal term, please send this field without updating its value. |
| Required | Required |
| The media type for the deal term. This is a required field, both for creating a new deal agreement and when creating a new version of a deal agreement. Once set, this value cannot be updated, so we cannot update it for an existing deal term when creating a new version of a deal agreement. Note that different deal terms can have different media types within the same deal agreement version. Supported values include the following.
*The UNKNOWN media type is just a failsafe value. Keep in mind that the matching is done in a case sensitive fashion, so the provided values have to match. This field is required, but it cannot be updated. When updating an existing deal term, please send this field without updating its value. |
| Required | N/A |
| The list of deal term creative requirements. This is a required array of objects. The number of objects sent in the array is dependent on the deal term media type. For the AUDIO, VIDEO, DOOH_VIDEO, CONNECTED_TV media types, one creative requirement must be sent. For the DISPLAY and DOOH_DISPLAY media types, at least one creative requirement object must be sent in the array. Refer to the Creative Requirements List section below for more details related to the structure. |
| Required | Required |
Creative Requirements List
The Creative Requirements List object contains information about the creative requirements associated with a given deal term.
Parameter | Definition | Data Type | Create | Update |
---|---|---|---|---|
| The ID of the creative. This is a read only field that is only returned when retrieving deal agreement information (GET by ID endpoint). |
| N/A | N/A |
| The ad size.
Note that this field is case sensitive, so exact matching is required when sending the payload. Supported values per media type include the following.
|
| Required | Required |
| The API frameworks/standards to be used for the audio and video related media types. AUDIO and DOOH_VIDEO only allow VAST. VIDEO, CONNECTED_TV support the following video frameworks.
|
| N/A for DISPLAY and DOOH_DISPLAY media types Required for audio/video/ctv media types | N/A for DISPLAY and DOOH_DISPLAY media types Required for audio/video/ctv media types |
| The max duration in seconds for the audio, video or ctv ads (AUDIO, VIDEO, DOOH_VIDEO, CONNECTED_TV media types). This should not be sent for the DISPLAY and DOOH_DISPLAY media types. This is required for the media types mentioned below.
This field has a maximum allowed value of 3600. |
| N/A for display media types Required for audio/video/ctv media types | N/A for display media types Required for audio/video/ctv media types |
Accept Deal Agreement
The Accept Deal Agreement object contains information about the acceptance data for a proposed deal agreement version.
Note
There are no create or update calls, since we are passing this object when we are accepting a proposed deal agreement version.
Parameter | Definition | Data Type | Accept Call |
---|---|---|---|
| The ID of the deal agreement legal term that has been acknowledged before proceeding to accept this deal agreement version. Refer to the Retrieve legal term by type endpoint for how to obtain the legal term ID. |
| Required |
| The name of the order (campaign) to be created based on the details from the deal agreement. On the deal agreement Create flow, this defaults to the name of the deal agreement. When accepting a proposed version, make sure to provide the order (campaign) name. The character limit is 255. Keep in mind that for a deal agreement that already has an accepted version, proposing and accepting a new one will not update the already set campaign name, even if the This also applies to the line names. These can only be set when accepting a proposed deal agreement version on an agreement that does not have a previously accepted version. |
| Required |
| The number of the current version to be accepted. In order to obtain this, call the Retrieve Deal Agreement endpoint and see what are the existing versions and their version numbers (refer to the versionNumber field). In case of an invalid version number being provided, a validation error will indicate what is the current latest proposed version number. |
| Required |
| The list of names for the lines that will be created based on the deal terms. This is a required array of objects. Users must provide one entry for each deal term, specifying the deal term ID and the corresponding line name. All deal terms in the proposed version must be included. Omitting any will result in a validation error. Refer to the Agreement Line Name section for more details related to the structure. |
| Required |
Agreement Line Name
The Agreement Line Name object contains associations between each deal term and the names of the lines that will be created based on the term details.
Note
There are no create or update flows, since we are passing this object when we are accepting a proposed deal agreement version.
Parameter | Definition | Data Type | Accept Call |
---|---|---|---|
| The ID of the deal term. For each deal term that is present in the proposed version that is being accepted, there should be one entry in the list of agreement line names. There are validations ensuring that this applies, so providing deal terms that belong to other versions, deal agreements or that are invalid will lead to an error. Also, skipping deal terms or providing additional ones will cause a validation error. In order to obtain the list of all deal term IDs, call the Retrieve Deal Agreement endpoint and check what are the deal terms on the latest proposed version (current version to be accepted). |
| Required |
| The name of the line to be created based on the details from the deal term. On the deal agreement Create flow, this defaults to the name of the deal term. When accepting a proposed version, provide the line name for each deal term. The character limit is 255. |
| Required |
Reject Deal Agreement
The Reject Deal Agreement object contains information about the rejection data for a proposed deal agreement version.
Note
There are no create or update flows, since we are passing this object when we are rejecting a proposed deal agreement version.
Parameter | Definition | Data Type | Reject Call |
---|---|---|---|
| The rejection reason. This is an optional field, with a character limit of 3000. |
| Optional |
Retrieve a Deal Agreement
Get data about a specific deal agreement, identified by its ID and all prior and current versions.
GET /traffic/deals/agreements/{agreementId}
Parameters
Parameter | Parameter Type | Definition | Data Type | Required |
---|---|---|---|---|
| path | The ID of the deal agreement. |
| Y |
Note
The agreement ID must comply with the following rules.
The deal agreement with the specified ID needs to exist.
The deal agreement with the specified ID needs to belong to the current user's seat.
Sample Request URL
GET /traffic/deals/agreements/49011
Sample Response
{
"response": {
"id": 49011,
"name": "Deal Agreement Created via Traffic API",
"agencySeatId": 19,
"pubDealAgreementId": "12323123",
"publisherName": "Accuweather",
"contactsList": [
{
"id": 11168,
"email": "[email protected]",
"contactType": "PUBLISHER"
}
],
"versionsList": [
{
"id": 71728,
"status": "ACCEPTED",
"acceptedOn": "2025-06-19T08:11:46Z",
"defaultOrderId": 1678541,
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"dealTermsList": [
{
"id": 73094,
"name": "Deal Term 1",
"exchangeDealId": "123456",
"dealId": 160918,
"startDate": "2025-06-20",
"endDate": "2025-12-31",
"billingMethod": "CPM_PRICE",
"billingPrice": 10.0,
"impBudget": 2000,
"totalBudget": 20.0,
"mediaCost": 20.0,
"lineId": 3150568,
"creativeRequirementsList": [
{
"id": 73148,
"layout": "728x90"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "DISPLAY"
},
{
"id": 73095,
"name": "Deal Term 2",
"exchangeDealId": "123456",
"dealId": 160919,
"startDate": "2025-07-15",
"endDate": "2025-10-15",
"billingMethod": "CPM_PRICE",
"billingPrice": 20.0,
"impBudget": 1500,
"totalBudget": 30.0,
"mediaCost": 30.0,
"lineId": 3150569,
"creativeRequirementsList": [
{
"id": 73149,
"apiFrameworks": [
"VPAID 1.0",
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "VIDEO"
}
],
"dealAgreementId": 49011,
"versionNumber": 1
}
],
"exchange": "OpenX"
},
"errors": null,
"timeStamp": "2025-06-19T08:12:38.994Z"
}
Calculate the Total Line Budget
Returns the total budget for the deal terms associated with an accepted deal agreement.
GET /traffic/deals/agreements/{agreementId}/calculateBudget
Parameters
Parameter | Parameter Type | Definition | Data Type | Required |
---|---|---|---|---|
| path | The ID of the deal agreement. |
| Y |
Note
The agreement ID must comply with the following rules.
The deal agreement with the specified ID needs to exist.
The deal agreement with the specified ID needs to belong to the current user's seat.
Sample Request URL
GET /traffic/deals/agreements/49011/calculateBudget
Sample Response
{
"response": {
"totalDealAgreementBudgetPlusFees": 50.0,
"dealTermBudgetsPlusFees": [
{
"dealTermId": 73094,
"dealTermBudgetPlusFees": 20.0
},
{
"dealTermId": 73095,
"dealTermBudgetPlusFees": 30.0
}
]
},
"errors": null,
"timeStamp": "2025-06-19T08:18:18.312Z"
}
Retrieve a Deal Agreement Legal Term
Retrieves a deal agreement legal term based on the specified legal term type.
The accepted legal term types include the following.
PG_DEAL_TERM_EN
PG_DEAL_TERM_PT_BR
PG_RTB_DEAL_TERM_EN
PG_RTB_DEAL_TERM_PT_BR
GET /traffic/deals/agreements/legalterms/{legalTermType}
Parameters
Parameter | Parameter Type | Definition | Data Type | Required |
---|---|---|---|---|
| path | The legal term type as a case insensitive string. The accepted legal term types include the following.
|
| Y |
Sample Request URL
GET /traffic/deals/agreements/legalterms/PG_DEAL_TERM_EN
Sample Response
{
"response": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"errors": null,
"timeStamp": "2025-06-19T08:36:14.195Z"
}
Create a new Deal Agreement
Create a non-AdX deal agreement and accept it automatically in the process.
POST traffic/deals/agreements
Parameters
All fields are specified in the request body.
Sample Request URL
POST /traffic/deals/agreements
Sample Request Body
The following payload creates a new deal agreement, which will have an auto-accepted version, with one deal term.
{
"exchange": "OpenX",
"name": "Deal Agreement Created via Traffic API",
"agencySeatId": 19,
"publisherName": "Accuweather",
"pubDealAgreementId": "12323123",
"contactsList": [
{
"email": "[email protected]",
"contactType": "PUBLISHER"
}
],
"versionsList": [
{
"dealTermsList": [
{
"name": "Deal Term 1",
"exchangeDealId": "123456",
"botAvoidanceType": "Yahoo proprietary",
"billingPrice": 10,
"mediaCost": 20,
"currency": "USD",
"timezone": "America/New_York",
"creativeRequirementsList": [
{
"layout": "728x90"
}
],
"mediaType": "DISPLAY",
"startDate": "2025-06-20",
"endDate": "2025-12-31",
"advertiserId": 2211960
},
{
"name": "Deal Term 2",
"exchangeDealId": "123456",
"botAvoidanceType": "Yahoo proprietary",
"billingPrice": 20,
"mediaCost": 30,
"currency": "USD",
"timezone": "America/New_York",
"creativeRequirementsList": [
{
"layout": "400x300",
"apiFrameworks": [
"VAST",
"VPAID 1.0"
],
"maxDurationInSeconds": 30
}
],
"mediaType": "VIDEO",
"startDate": "2025-07-15",
"endDate": "2025-10-15",
"advertiserId": 2211960
}
],
"agreementLegalTerm": {
"id": "19",
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
}
}
]
}
Sample Response
{
"response": {
"id": 49011,
"name": "Deal Agreement Created via Traffic API",
"agencySeatId": 19,
"pubDealAgreementId": "12323123",
"publisherName": "Accuweather",
"contactsList": [
{
"id": 11168,
"email": "[email protected]",
"contactType": "PUBLISHER"
}
],
"versionsList": [
{
"id": 71728,
"status": "ACCEPTED",
"acceptedOn": "2025-06-19T08:11:45.711Z",
"defaultOrderId": 1678541,
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"dealTermsList": [
{
"id": 73094,
"name": "Deal Term 1",
"exchangeDealId": "123456",
"dealId": 160918,
"startDate": "2025-06-20",
"endDate": "2025-12-31",
"billingMethod": "CPM_PRICE",
"billingPrice": 10.0,
"impBudget": 2000,
"totalBudget": 20.0,
"mediaCost": 20.0,
"lineId": 3150568,
"creativeRequirementsList": [
{
"id": 73148,
"layout": "728x90"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "DISPLAY"
},
{
"id": 73095,
"name": "Deal Term 2",
"exchangeDealId": "123456",
"dealId": 160919,
"startDate": "2025-07-15",
"endDate": "2025-10-15",
"billingMethod": "CPM_PRICE",
"billingPrice": 20.0,
"impBudget": 1500,
"totalBudget": 30.0,
"mediaCost": 30.0,
"lineId": 3150569,
"creativeRequirementsList": [
{
"id": 73149,
"apiFrameworks": [
"VPAID 1.0",
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "VIDEO"
}
],
"dealAgreementId": 49011,
"versionNumber": 1
}
],
"exchange": "OpenX"
},
"errors": null,
"timeStamp": "2025-06-19T08:11:47.810Z"
}
Create a new Deal Agreement Version
Create a new version of a non-AdX deal agreement with the specified ID.
POST /traffic/deals/agreements/{agreementId}/version
Parameters
Parameter | Parameter Type | Definition | Data Type | Required |
---|---|---|---|---|
| path | The ID of the deal agreement to be used to create a new version. |
| Y |
Note
The agreement ID must comply with the following rules.
The deal agreement with the specified ID needs to exist.
The deal agreement with the specified ID needs to belong to the current user's seat.
Sample Request URL
POST /traffic/deals/agreements/49011/version
Sample Request Body
The following payload updates the first deal term, deletes the second deal term and adds a third term (will be second in the end).
Note
In order to update a deal term, provide the matching deal ID and line ID. The following fields can be updated:
billingPrice
,mediaCost
,layout
,startDate
andendDate
.In order to delete a term, exclude it from the list of deal terms.
In order to create the new deal term, a line ID and a deal ID are not provided, so it will be considered to be a new entity.
{
"dealTermsList": [
{
"name": "Deal Term 1",
"exchangeDealId": "123456",
"botAvoidanceType": "Yahoo proprietary",
"billingPrice": 10.0,
"mediaCost": 20.0,
"dealId": 160918,
"currency": "USD",
"timezone": "America/New_York",
"lineId": 3150568,
"creativeRequirementsList": [
{
"layout": "728x90"
}
],
"mediaType": "DISPLAY",
"startDate": "2025-06-20",
"endDate": "2025-12-31",
"advertiserId": 2211960
},
{
"name": "Deal Term 3",
"exchangeDealId": "123456",
"botAvoidanceType": "Yahoo proprietary",
"billingPrice": 40.0,
"mediaCost": 50.0,
"currency": "USD",
"timezone": "America/New_York",
"creativeRequirementsList": [
{
"apiFrameworks": [
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"mediaType": "DOOH_VIDEO",
"startDate": "2025-07-01",
"endDate": "2025-08-01",
"advertiserId": 2211960
}
],
"defaultOrderId": 1678541,
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
}
}
Sample Response
{
"response": {
"id": 49011,
"name": "Deal Agreement Created via Traffic API",
"agencySeatId": 19,
"pubDealAgreementId": "12323123",
"publisherName": "Accuweather",
"contactsList": [
{
"id": 11168,
"email": "[email protected]",
"contactType": "PUBLISHER"
}
],
"versionsList": [
{
"id": 71728,
"status": "REPLACED",
"acceptedOn": "2025-06-19T08:11:46Z",
"defaultOrderId": 1678541,
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"dealTermsList": [
{
"id": 73094,
"name": "Deal Term 1",
"exchangeDealId": "123456",
"dealId": 160918,
"startDate": "2025-06-20",
"endDate": "2025-12-31",
"billingMethod": "CPM_PRICE",
"billingPrice": 10.0,
"impBudget": 2000,
"totalBudget": 20.0,
"mediaCost": 20.0,
"lineId": 3150568,
"creativeRequirementsList": [
{
"id": 73148,
"layout": "728x90"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "DISPLAY"
},
{
"id": 73095,
"name": "Deal Term 2",
"exchangeDealId": "123456",
"dealId": 160919,
"startDate": "2025-07-15",
"endDate": "2025-10-15",
"billingMethod": "CPM_PRICE",
"billingPrice": 20.0,
"impBudget": 1500,
"totalBudget": 30.0,
"mediaCost": 30.0,
"lineId": 3150569,
"creativeRequirementsList": [
{
"id": 73149,
"apiFrameworks": [
"VPAID 1.0",
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "VIDEO"
}
],
"dealAgreementId": 49011,
"versionNumber": 1
},
{
"id": 71729,
"status": "ACCEPTED",
"acceptedOn": "2025-06-19T08:47:39.962Z",
"defaultOrderId": 1678541,
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"dealTermsList": [
{
"id": 73096,
"name": "Deal Term 1",
"exchangeDealId": "123456",
"dealId": 160918,
"startDate": "2025-06-20",
"endDate": "2025-12-31",
"billingMethod": "CPM_PRICE",
"billingPrice": 10.0,
"impBudget": 2000,
"totalBudget": 20.0,
"mediaCost": 20.0,
"lineId": 3150568,
"creativeRequirementsList": [
{
"id": 73150,
"layout": "728x90"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "DISPLAY"
},
{
"id": 73097,
"name": "Deal Term 3",
"exchangeDealId": "123456",
"dealId": 160920,
"startDate": "2025-07-01",
"endDate": "2025-08-01",
"billingMethod": "CPM_PRICE",
"billingPrice": 40.0,
"impBudget": 1250,
"totalBudget": 50.0,
"mediaCost": 50.0,
"lineId": 3150570,
"creativeRequirementsList": [
{
"id": 73151,
"apiFrameworks": [
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "DOOH_VIDEO"
}
],
"dealAgreementId": 49011,
"versionNumber": 2
}
],
"exchange": "OpenX"
},
"errors": null,
"timeStamp": "2025-06-19T08:47:44.682Z"
}
Accept a Deal Agreement Version
Accept the latest Adx proposed deal agreement version for the deal agreement with the specified ID.
POST /traffic/deals/agreements/{agreementId}/accept
Parameters
Parameter | Parameter Type | Definition | Data Type | Required |
---|---|---|---|---|
| path | The ID of the deal agreement. The latest proposed version that belongs to this agreement will be accepted. |
| Y |
Note
The agreement ID must comply with the following rules.
The deal agreement with the specified ID needs to exist.
The deal agreement with the specified ID needs to belong to the current user's seat.
To accept a deal agreement version from the Traffic API, the following rules must be fulfilled.
The user must be on an Advertiser seat when calling this flow from the Traffic API.
The latest deal agreement version should be in a Proposed state.
For AdX agreements, the publisher must send the latest version.
Sample Request URL
POST /traffic/deals/agreements/49012/accept
Sample Request Body
The following payload creates a new deal agreement, which will have an auto-accepted version, with one deal term.
{
"legalTermId": 19,
"orderName": "Deal Agreement To Accept via the Traffic API - updated",
"acceptedVersion": 1,
"lineNamesList": [
{
"dealTermId": 73103,
"lineName": "Deal Term 1 - updated"
}
]
}
Sample Response
{
"response": {
"id": 49012,
"name": "Deal Agreement To Accept via the Traffic API",
"agencySeatId": 19,
"pubDealAgreementId": "12323123",
"publisherName": "Accuweather",
"contactsList": [
{
"id": 11169,
"email": "[email protected]",
"contactType": "PUBLISHER"
}
],
"versionsList": [
{
"id": 71732,
"status": "ACCEPTED",
"acceptedOn": "2025-06-19T09:17:36.335Z",
"defaultOrderId": 1678543,
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"dealTermsList": [
{
"id": 73103,
"name": "Deal Term 2",
"exchangeDealId": "123456",
"dealId": 160923,
"startDate": "2025-07-15",
"endDate": "2025-10-15",
"billingMethod": "CPM_PRICE",
"billingPrice": 20.0,
"impBudget": 1500,
"totalBudget": 30.0,
"mediaCost": 30.0,
"lineId": 3150573,
"creativeRequirementsList": [
{
"id": 73157,
"apiFrameworks": [
"VPAID 1.0",
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "VIDEO"
}
],
"dealAgreementId": 49012,
"versionNumber": 1
}
],
"exchange": "OpenX"
},
"errors": null,
"timeStamp": "2025-06-19T09:17:41.560Z"
}
Reject a Deal Agreement Version
Reject the latest AdX proposed deal agreement version for the deal agreement with the specified ID.
POST /traffic/deals/agreements/{agreementId}/reject
Parameters
Parameter | Parameter Type | Definition | Data Type | Required |
---|---|---|---|---|
| path | The ID of the deal agreement. The latest proposed version that belongs to this agreement will be rejected. |
| Y |
Note
The agreement ID must comply with the following rules.
The deal agreement with the specified ID needs to exist.
The deal agreement with the specified ID needs to belong to the current user's seat.
To reject a deal agreement version from the Traffic API, the following rules must be fulfilled.
There must be a Proposed deal agreement version to be rejected.
For AdX agreements, Advertisers are allowed to decline deals proposed by Publishers.
Sample Request URL
POST /traffic/deals/agreements/49013/reject
Sample Request Body
The following payload creates a new deal agreement, which will have an auto-accepted version, with one deal term.
{
"reason": "Reason for declining"
}
Sample Response
{
"response": {
"id": 49013,
"name": "Deal Agreement To Reject via the Traffic API",
"agencySeatId": 19,
"pubDealAgreementId": "12323123",
"publisherName": "Accuweather",
"contactsList": [
{
"id": 11170,
"email": "[email protected]",
"contactType": "PUBLISHER"
}
],
"versionsList": [
{
"id": 71733,
"status": "REJECTED",
"agreementLegalTerm": {
"id": 19,
"legalTerm": "By clicking the box below, you agree that you have read, understand and accept the terms and conditions described herein, including, without limitation, the terms you have entered above (the <u><b>“Terms”</u></b>). You have the full right, power, and authority to enter into these Terms and your purchase of third party Ad inventory for the placement of programmatic guaranteed impressions (<u><b>“PG Impressions”</u></b>) shall be governed by these Terms and the terms of your agreement with Verizon Media for the use of Verizon Media Demand Side Platforms (the <u><b>“DSP Agreement”</u></b>). To the extent of any inconsistency between these Terms and the DSP Agreement, these Terms shall prevail. Capitalized terms used, but not defined herein, shall have the meanings assigned to them in the DSP Agreement.<br/><br/>Unlike other purchases via your account on our Demand Side Platforms, PG Impressions and Platform Fees will be priced according to these Terms. No makegoods will be available to you. You will only be billed for the number of PG Impressions actually delivered."
},
"dealTermsList": [
{
"id": 73104,
"name": "Deal Term 2",
"exchangeDealId": "123456",
"startDate": "2025-07-15",
"endDate": "2025-10-15",
"billingMethod": "CPM_PRICE",
"billingPrice": 20.0,
"impBudget": 1500,
"totalBudget": 30.0,
"mediaCost": 30.0,
"creativeRequirementsList": [
{
"id": 73158,
"apiFrameworks": [
"VPAID 1.0",
"VAST"
],
"maxDurationInSeconds": 30,
"layout": "400x300"
}
],
"advertiserId": 2211960,
"currency": "USD",
"timezone": "America/New_York",
"botAvoidanceType": "Yahoo proprietary",
"mediaType": "VIDEO"
}
],
"dealAgreementId": 49013,
"versionNumber": 1
}
],
"exchange": "OpenX"
},
"errors": null,
"timeStamp": "2025-06-19T09:25:15.022Z"
}
Note
There are no line, campaign or deal IDs, since this has been rejected.