Create endeavor deals
An endeavor deal is an agreement that grants a buying party access to inventory from one or more publishers. It can optionally include inventory composition, pricing, seeking differentiation in terms of value and availability. These deals don't have hard commitments to reach pacing goals, but you can add a media spend goal. Choosing to have a media spend goal in the endeavor deal changes how the deal is monitored throughout the platform.
IMPORTANT: To create an endeavor deal, you must complete the steps in Initiate and negotiate deals.
Here's what you need to know about endeavor deal creation:
- Endeavor deals have unique financial terms that cannot set pacing thresholds or minimum avails.
- Media spend goals are optional targets that aren't strictly enforced.
- Endeavor deals without spend goals can be added as contributing deals to other deals with spend goals. For details, see Contributing deals.
TIP: When creating an endeavor deal, you should emphasize adding inventory composition terms for better inventory access.
The following sections focus on endeavor-specific terms. For a list of all core deal terms, see Draft deal terms.
Endeavor financial terms
Financial terms define the payment expectations for the buying party. The endeavor financial terms describe the type of auction and payment details. These terms don't include thresholds or minimums values, such as minimum avails or bid rate.
| Field | Required? | Data Type | Description |
|---|---|---|---|
currencyCode |
Required | String | The denomination of the currency. For example, the US dollar is USD. |
floorPrice |
Optional | Decimal | The lowest CPM bid allowed for the inventory in this deal. |
auctionType |
Optional | String enum | The type of auction specified as an enum value. For details, see Auction type enumeration values. |
mediaSpendGoal |
Optional | Decimal | The amount that you suggest that the buying party spends. IMPORTANT: Once set, this value cannot be removed. NOTE: Create a commitment deal if you need monitoring features or pacing. |
Endeavor deal with a media spend goal
Endeavor deals with a media spend goal include the mediaSpendGoal field. This enables it to track media spend made through the deal, but it doesn't monitor the pacing of the deal.
The following example dealCreate mutation shows the structure of the financial terms for an endeavor deal created using the dealCreate mutation. For details, see EndeavorFinancialTerms object.
mutation {
dealCreate(
input: {
# DEAL NAME AND PARTICIPANT DETAILS GO HERE!
terms: {
endeavorTerms: {
financialTerms: {
auctionType: FIXED_PRICE_AUCTION
currencyCode: "USD"
floorPrice: 9.00
mediaSpendGoal: 1000000.00
}
}
}
}
)
}
IMPORTANT: To create an endeavor deal with a fixed price auction, you must also include a floor price.
Endeavor deal without a media spend goal
Endeavor deals without a media spend goal must contain, at minimum, the currency code. An endeavor deal without a spend goal grants participants access to bid for the inventory listed. In addition, this deal can contribute spend toward other deals with media spend goals.
The following example dealCreate mutation shows the structure of the financial terms for an endeavor deal created using the dealCreate mutation. For details, see EndeavorFinancialTerms object.
mutation {
dealCreate(
input: {
# DEAL NAME AND PARTICIPANT DETAILS GO HERE!
terms: {
endeavorTerms: {
financialTerms: {
currencyCode: "USD"
}
}
}
}
)
}
To create an endeavor deal, you must complete the steps in Initiate and negotiate deals.
Complete endeavor deal creation mutation example
To create a deal, use the dealCreate mutation to send a request to the buying party. Here's the information you need to create a deal:
- The KAID of all deal participants.
- The deal type (commitment or endeavor).
- The financial terms and inventory composition of the deal.
- For deals that originate from outside The Trade Desk, their external deal IDs.
For a complete list of additional properties and descriptions, see Deal objects.
The following example dealCreate mutation shows how to create an endeavor deal without a media spend goal in a single request. For a list of all core deal terms, see Deal creation differences.
NOTE: To run the example, update the
PLACEHOLDERvalues with valid IDs.
mutation {
dealCreate(
input: {
accountId: "ACCOUNT_ID_PLACEHOLDER"
displayName: "DEAL_UI_PLACEHOLDER"
name: "DEAL_NAME_PLACEHOLDER"
sellingParty: {
id: "SELLING_PARTY_KNOWN_AGENT_ID_PLACEHOLDER"
contact: {
name: "Alex Smith"
email: "alexsmith@example.com"
}
}
buyingParty: {
id: "BUYING_PARTY_KNOWN_AGENT_ID_PLACEHOLDER"
contact: {
name: "John Smith"
email: "johnsmith@example.com"
}
}
createdBy: {
name: "John Smith"
email: "johnsmith@example.com"
}
terms: {
endeavorTerms: {
financialTerms: { currencyCode: "USD" }
flight: { endAt: "2026-01-30", startAt: "2025-11-30", timeZone: "UTC" }
inventoryComposition: {
inventoryChannelComposition: {
ctvChannel: {
adEnvironments: {
base: {
excluded: [MOBILE_OPTIMIZED_WEB]
included: [IN_APP, WEB]
}
}
ctv: {
liveStream: {
base: true
}
startDelay: {
base: {
excluded: [MID_ROLL]
included: [POST_ROLL,PRE_ROLL]
}
}
podSeq: {
base: {
excluded: [ANY]
included: [FIRST, LAST]
}
}
slotInPod: {
base: {
excluded: [ANY]
included: [FIRST_OR_LAST]
}
}
}
deviceTypes: {
base: {
excluded: [OTHER, OUT_OF_HOME]
included: [MOBILE, TABLET]
}
}
channels: {
base: {
excluded: ["CHANNEL_NAME_PLACEHOLDER_1"]
included: ["CHANNEL_NAME_PLACEHOLDER_2", "CHANNEL_NAME_PLACEHOLDER_3"]
}
}
networks: {
base: {
excluded: ["NETWORK_NAME_PLACEHOLDER_1"]
included: ["NETWORK_NAME_PLACEHOLDER_2"]
}
}
}
}
}
}
}
}
) {
data {
id
dealStatus
isPausedBySellingParty
externallyManaged
dealType
}
errors {
... on MutationError {
__typename
field
message
}
}
}
}
TIP: To return errors in a mutation response, include an
errorsfield at the end of your mutation and pass theMutationErrorobject. For details, see Mutation errors in our GraphQL API Resource Hub.
FAQs
The following are commonly asked questions about endeavor deal creation.
How do I add an endeavor deal as a contributing deal?
Provide the deal ID of an endeavor deal without a media spend goal to a commitment deal. For examples, see Contributing deals.
Do endeavors support forecasting?
No. Endeavor deals aren't strictly enforced, so The Trade Desk doesn't monitor the deal for measurement metrics. To view metrics, create a commitment deal.
Can an endeavor deal be cancelled?
You cannot cancel an endeavor deal, but you can pause it by using the dealPause mutation. For details, see Pause and resume endeavors.
If the buying party rejects the endeavor deal, it's set to the CANCELED status.
Can I add my endeavor deal to an upfront?
Only endeavor deals with media spend goals can be added to an upfront. For details, see Group deals with upfronts.