Upcoming API changes for advertisers
This page outlines the timeline for upcoming changes to The Trade Desk APIs for advertisers and offers support guidelines to help you upgrade to new features or adapt to API updates that require code changes on your part. For details on how The Trade Desk introduces and manages changes to the API, see API changes.
TIP: For any past upgrades and guidelines, see the Archived API changes for advertisers page.
The following sections summarize the upcoming updates by quarter.
October-December 2026
| Effective Date | Product/Feature | Update Type | Details |
|---|---|---|---|
| Oct 17, 2026 | GraphQL: AdGroupBidFactorWorkflowInput | Enum value deprecation | AdGroupBidFactorWorkflowInput GraphQL type: enum value deprecation |
| Oct 20, 2026 | GraphQL: City | Field deprecation | City GraphQL type: field deprecation |
| Oct 20, 2026 | GraphQL: GeoSegmentType | Enum value deprecation | GeoSegmentType GraphQL type: enum value deprecation |
| Oct 20, 2026 | GraphQL: AdGroupFlightForecast | Field deprecation | AdGroupFlightForecast GraphQL type: field deprecation |
| Oct 20, 2026 | GraphQL: AdvertiserDataRate and ProviderDataRate | Field deprecation | AdvertiserDataRate and ProviderDataRate GraphQL types: field deprecation |
| Oct 20, 2026 | GraphQL: CampaignFlightForecast | Field deprecation | CampaignFlightForecast GraphQL type: field deprecation |
| Oct 20, 2026 | GraphQL: Creative types | Field deprecation | Creative GraphQL types: field deprecation |
| Oct 20, 2026 | GraphQL: FrequencyDistributionMetrics | Field deprecation | FrequencyDistributionMetrics GraphQL type: field deprecation |
| Oct 20, 2026 | GraphQL: GeoReportingMetro | Field deprecation | GeoReportingMetro GraphQL type: field deprecation |
| Oct 20, 2026 | GraphQL: GeoTarget | Field deprecation | GeoTarget GraphQL type: field deprecation |
| Oct 20, 2026 | GraphQL: CreativeAdGroupAssociatePayload | Field deprecation | CreativeAdGroupAssociatePayload GraphQL type: field deprecation |
| Oct 30, 2026 | Timestamps in UTC | New timestamp validation | Timestamp validation |
| Oct 30, 2026 | GraphQL: TargetingDataSegment | Field deprecation | TargetingDataSegment GraphQL type: field deprecation |
| Nov 9, 2026 | GraphQL: Product Catalog itemset inputs | Field deprecation | Product Catalog itemset input types: field deprecation |
| Nov 15, 2026 | GraphQL: GeneralReportingMetrics | Field deprecation | GeneralReportingMetrics GraphQL type: field deprecation |
| Dec 1, 2026 | GraphQL: Query | Endpoint deprecation | Query GraphQL type: endpoint deprecation |
| Dec 1, 2026 | GraphQL: AdGroup | Field deprecation | AdGroup GraphQL type: field deprecation |
| Dec 11, 2026 | GraphQL: AdGroupUpdateInput | Field deprecation | AdGroupUpdateInput GraphQL type: field deprecation |
| Dec 16, 2026 | GraphQL: Marketplace | Field deprecation | Marketplace GraphQL type: field deprecation |
| Dec 31, 2026 | GraphQL: PharmaHcpFrequencyWindowInput | Enum value deprecation | PharmaHcpFrequencyWindowInput GraphQL type: enum value deprecation |
| Dec 31, 2026 | GraphQL: MyReportsReportSchedule | Field deprecation | MyReportsReportSchedule GraphQL type: field deprecation |
AdGroupBidFactorWorkflowInput GraphQL type: enum value deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 17, 2026, the |
| Action required |
Update any code that references the |
The following are example deprecated and new mutations that show the update.
NOTE: Only the
mutationNamestep value changes; the mutation shape itself is identical.
This mutation is deprecated—it sets the mutationName step to AD_GROUP_UPDATE_INTEGRAL_VIEWABILITY:
mutation AdGroupBidFactorWorkflowExampleDeprecated($input: AdGroupBidFactorWorkflowInput!) {
adGroupBidFactorWorkflow(input: $input) {
data {
id
name
}
errors {
... on AdGroupBidFactorWorkflowError {
message
field
failedMutationName
succeededMutationNames
}
... on AdGroupWorkflowAuthError {
message
field
}
}
}
}
{
"input": {
"adGroupId": "abujmf1",
"steps": [
{
"mutationName": "AD_GROUP_UPDATE_INTEGRAL_VIEWABILITY",
"mutationVariables": {
"input": {
"id": "abujmf1",
"isQualityAllianceSuiteEnabled": true
}
}
}
]
}
}
Use this new mutation instead, with the mutationName step set to AD_GROUP_UPDATE:
mutation AdGroupBidFactorWorkflowExampleNew($input: AdGroupBidFactorWorkflowInput!) {
adGroupBidFactorWorkflow(input: $input) {
data {
id
name
}
errors {
... on AdGroupBidFactorWorkflowError {
message
field
failedMutationName
succeededMutationNames
}
... on AdGroupWorkflowAuthError {
message
field
}
}
}
}
{
"input": {
"adGroupId": "abujmf1",
"steps": [
{
"mutationName": "AD_GROUP_UPDATE",
"mutationVariables": {
"input": {
"id": "abujmf1",
"isQualityAllianceSuiteEnabled": true
}
}
}
]
}
}
City GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the |
| Action required |
Update any code that references the |
GeoSegmentType GraphQL type: enum value deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the |
| Action required |
Update any code that references the |
AdGroupFlightForecast GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the following five fields on the
|
| Action required |
Update any code that references the five fields on the |
AdvertiserDataRate and ProviderDataRate GraphQL types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the |
| Action required |
Update any code that references the |
CampaignFlightForecast GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the following eight fields on the
|
| Action required |
Update any code that references the eight fields on the |
Creative GraphQL types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the following 5 fields on all Creative-related GraphQL types (
|
| Action required |
Update any code that references the five fields on the Creative types listed above by October 20, 2026. See the replacement properties listed above. |
FrequencyDistributionMetrics GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the |
| Action required |
Update any code that references the |
GeoReportingMetro GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the following four fields on the
|
| Action required |
Update any code that references the four fields on the |
GeoTarget GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the |
| Action required |
Update any code that references the |
CreativeAdGroupAssociatePayload GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 20, 2026, the |
| Action required |
Update any code that references the |
Timestamp validation
| What you need to know and do | |
|---|---|
| Change summary | Effective October 30, 2026, data submitted to the /data/advertiser and /data/thirdparty endpoints with an invalid TimestampUtc value will be rejected and returned as a failed line under a new error code, InvalidTimestampUtc.Data is considered invalid when it is either:
|
| Action required | To avoid dropped records, make sure the timestamp in UTC on submitted data reflects a current, non-expired value before October 30, 2026. For details, see Timestamp in UTC |
TargetingDataSegment GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective October 30, 2026, the |
| Action required |
Update any code that references the |
The following are example deprecated and new queries that show the update.
This query is deprecated—it queries targetingDataCounts and daysUntilLargeExpiration directly on the TargetingDataSegment type:
query GetAdvertiserTargetingDataExampleDeprecated($advertiserId: ID!, $targetingDataFilterInput: TargetingDataFilterInput!) {
advertiser(id: $advertiserId) {
targetingDataSegments(where: $targetingDataFilterInput) {
nodes {
targetingDataCounts {
activeCounts
receivedCounts
lastUpdatedAtUTC
}
daysUntilLargeExpiration
}
}
}
}
Use this new query instead, scoped through targetingDataInsights.
NOTE: The
daysUntilLargeExpirationfield now lives inside thetargetingDataInsightsobject rather than at theTargetingDataSegmentlevel.
query GetAdvertiserTargetingDataExampleNew($advertiserId: ID!, $targetingDataFilterInput: TargetingDataFilterInput!) {
advertiser(id: $advertiserId) {
targetingDataSegments(where: $targetingDataFilterInput) {
nodes {
targetingDataInsights {
activeCounts {
devices
}
receivedCounts {
totalUserIdCount
}
lastUpdatedAtUTC
daysUntilLargeExpiration
}
}
}
}
}
Product Catalog itemset input types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective November 9, 2026, the following GraphQL input fields will be deprecated:
*Filter) field takes precedence.
|
| Action required |
Update any code that references the fields listed above by November 9, 2026. See the replacement properties listed above. |
GeneralReportingMetrics GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective November 15, 2026, the following 2 fields on the
|
| Action required |
Update any code that references the two fields on the |
Query GraphQL type: endpoint deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective December 1, 2026, the following 2 fields on the
|
| Action required |
Update any code that references the two fields on the |
AdGroup GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective December 1, 2026, the following four fields on the
|
| Action required |
Update any code that references the four fields on the |
AdGroupUpdateInput GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective December 11, 2026, the |
| Action required |
Update any code that references the |
Marketplace GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective December 16, 2026, the following three fields on the
|
| Action required |
Update any code that references the three fields on the |
PharmaHcpFrequencyWindowInput GraphQL type: enum value deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective December 31, 2026, the |
| Action required |
Update any code that references the |
MyReportsReportSchedule GraphQL type: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective December 31, 2026, the This deprecation applies only to |
| Action required |
Update any code that references |
January-March 2027
| Effective Date | Product/Feature | Update Type | Details |
|---|---|---|---|
| Jan 1, 2027 | GraphQL: TradingMode types | Field deprecation | TradingMode GraphQL types: field deprecation |
| Jan 2, 2027 | GraphQL: Query (audiences) | Field deprecation | Query GraphQL type: root-level audiences field deprecation |
| Jan 2, 2027 | GraphQL: TargetingData and TargetingDataSegment | Field deprecation | TargetingData and TargetingDataSegment GraphQL types: field deprecation |
| Jan 11, 2027 | Contextual targeting | New requirement (breaking change) | Contextual targeting for new campaigns and ad groups: contextual entities required |
| Jan 28, 2027 | GraphQL: Ad group targeting disallowed reasons | Field deprecation | Deal targeting disallowed reason GraphQL types: field deprecation |
| Feb 1, 2027 | GraphQL: valueAddedProviders | Field deprecation | Value-added provider fields deprecation: GraphQL fields |
| Feb 1, 2027 | Rest API: iptargetinglist | Behavioral change | IP targeting list REST API: unique name required for new segments |
| Feb 8, 2027 | GraphQL: BidLine and BidListDimension | Field deprecation | Contextual bid list deprecation: GraphQL fields |
| Feb 8, 2027 | Bid lists REST API | Property deprecation | Contextual bid list deprecation: REST properties |
TradingMode GraphQL types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective January 1, 2027, as part of the Trading Modes closed beta sunset, the
Both the deprecated and new fields will be exposed during the transition period; requests that submit an invalid combination of old and new field values will return an error. |
| Action required |
Update any code that references the |
Query GraphQL type: root-level audiences field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective January 2, 2027, the root-level |
| Action required |
Update any code that queries |
The following are example deprecated and new queries that show the updates.
This query is deprecated—it queries the audiences type at the root level:
query GetAudiencesExampleDeprecated($advertiserId: String) {
audiences(where: {advertiserId: {eq: $advertiserId}}) {
nodes {
audienceId: id
audienceName: name
}
}
}
Use this new query instead, scoped through the advertiser type:
query GetAudiencesForAdvertiserExampleNew($advertiserId: ID!) {
advertiser(id: $advertiserId) {
audiences {
nodes {
audienceId: id
audienceName: name
}
}
}
}
To query audiences at the partner level, use this new query instead, scoped through the partner type:
query GetAudiencesForPartnerExampleNew($partnerId: ID!) {
partner(id: $partnerId) {
audiences {
nodes {
audienceId: id
audienceName: name
}
}
}
}
TargetingData and TargetingDataSegment GraphQL types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective January 2, 2027, the |
| Action required |
Update any code that references |
Contextual targeting on new campaigns and ad groups: contextual entities required
| What you need to know and do | |
|---|---|
| Change summary |
Effective January 11, 2027, contextual entities become the default experience for contextual targeting for new campaigns and ad groups.
|
| Action required |
If you use the Platform REST API to create contextual bid lists on new campaigns or ad groups, migrate to using contextual entities via GraphQL before January 11, 2027. No action is required for existing campaigns or ad groups. |
Deal targeting disallowed reason GraphQL types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
As part of a broader effort to improve the performance of ad group targetable inventory queries, effective January 28, 2027, the
Here's what you need to know:
|
| Action required |
Update any code that references the |
The following are example deprecated and new queries that show the update.
NOTE: The same change applies to the
targetableCommitmentsandtargetableEndeavorsdeprecated fields.
This query is deprecated—it queries the three per-level fields directly on the reason value:
query AdGroupTargetableDealsExampleDeprecated($adGroupId: ID!) {
adGroup(id: $adGroupId) {
targetableDeals {
edges {
isTargetingChangeAllowed {
isAllowed
reason {
targetedAtPartnerLevel
targetedAtAdvertiserLevel
targetedAtCampaignLevel
}
}
}
}
}
}
Use this new query instead, with the single targetedAtHigherLevel field:
query AdGroupTargetableDealsExampleNew($adGroupId: ID!) {
adGroup(id: $adGroupId) {
targetableDeals {
edges {
isTargetingChangeAllowed {
isAllowed
reason {
targetedAtHigherLevel
}
}
}
}
}
}
Value-added provider fields deprecation: GraphQL fields
| What you need to know and do | |
|---|---|
| Change summary |
The following GraphQL value-added provider fields are deprecated. Their replacements identify providers by ID instead of enum value, consistent with the REST API change. Deprecated endpoints will be removed on February 1, 2027.
|
| Action required |
Update your campaign and ad group queries to use the |
IP targeting list REST API: unique name required for new segments
| What you need to know and do | |
|---|---|
| Change summary |
Effective February 1, 2027, the POST /iptargetinglist endpoint requires a unique IP targeting data name. Previously, clients could call the endpoint repeatedly with the same IP targeting data name; each call succeeded and was assigned the same targeting data ID but a different IP targeting data name, resulting in duplicate IP target lists in your account. Going forward, a request that reuses an existing IP targeting data name for a new segment will return an error. To edit an existing IP list, continue using the PUT /iptargetinglist endpoint. |
| Action required |
Before February 1, 2027, review any automation that calls POST /iptargetinglist. If it relies on reusing an existing IP targeting data name value to create new segments, update it to supply a unique name per new segment, or switch to the PUT /iptargetinglist endpoint if the intent is to edit an existing list. |
Contextual bid list deprecation: GraphQL fields
| What you need to know and do | |
|---|---|
| Change summary |
Effective February 8, 2027, contextual bid lists will be deprecated. To use contextual categories in your campaigns, you must first organize them into contextual groups and entities, then assign those entities to your ad groups. For details, see Contextual category configuration. The following GraphQL fields will be removed:
Requests that include these fields after this date will return an error. |
| Action required |
Update any code that references the fields listed above on the |
Contextual bid list deprecation: REST properties
| What you need to know and do | |
|---|---|
| Change summary |
Effective February 8, 2027, contextual bid lists will be deprecated. To use contextual categories in your campaigns, you must first organize them into contextual groups and entities, then assign those entities to your ad groups. For details, see Contextual category configuration. The following REST properties will be removed:
Requests that include these properties after this date will return an error. |
| Action required |
Update any code that references the properties listed above across these REST endpoints by February 8, 2027. For details, see Migrate bid lists to contextual entities. |
April-June 2027
| Effective Date | Product/Feature | Update Type | Details |
|---|---|---|---|
| Apr 1, 2027 | GraphQL: Advertiser and ConversionLiftProvider | Field deprecation | Advertiser and ConversionLiftProvider GraphQL types: field deprecation |
| Apr 1, 2027 | GraphQL: Mutation | Endpoint deprecation | Mutation GraphQL type: endpoint deprecation |
| Apr 1, 2027 | GraphQL: Query | Endpoint deprecation | Query GraphQL type: endpoint deprecation |
| Apr 1, 2027 | Reports | Download URL update | Scheduled reports: new download URL format |
Advertiser and ConversionLiftProvider GraphQL types: field deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective April 1, 2027, the |
| Action required |
Update any code that references the |
Mutation GraphQL type: endpoint deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective April 1, 2027, the |
| Action required |
Update any code that references the |
Query GraphQL type: endpoint deprecation
| What you need to know and do | |
|---|---|
| Change summary |
Effective April 1, 2027, the following two fields on the
|
| Action required |
Update any code that references the two fields on the |
Scheduled reports: new download URL format
| What you need to know and do | |
|---|---|
| Change summary |
Effective April 1, 2027, the Here's the new format, with placeholders in curly braces:
|
| Action required |
Whether action is required depends on how your integration uses the
|