POST /v3/bidlist → bidListCreate

Overview

Property Value
REST endpoint POST /v3/bidlist
GraphQL operation bidListCreate
Input type BidListCreateInput
Output type PayloadWithErrorsOfIBidList (data: IBidList, userErrors: [UserError!]!)

Input field mapping

Input type: BidListCreateInput

REST field GraphQL field GraphQL type Required Notes
BidListId N/A N/A Optional InvalidOnCreate; omit on create
Name name String! Required Max 512 chars
BidListSource source BidListSource! Required REST marks InvalidOnCreate; GraphQL requires source on create—pass USER for API-created lists
BidListAdjustmentType adjustmentType BidListAdjustmentType! Required Immutable after creation
ResolutionType resolutionType MultipleMatchResolutionType! Required Required in GraphQL; defaults to APPLY_MULTIPLY_ADJUSTMENT in REST
BidListOwner + BidListOwnerId owner BidListOwnerInput! Required Two flat fields become one object; see BidList domain page
IsAvailableForLibraryUse isAvailableForLibraryUse Boolean! Required Required in GraphQL; pass false if not used
BidLines bidLines [BidLineCreateInput!] Optional See BidList domain page for BidLineCreateInput nested mapping

GraphQL-only input fields (no REST equivalent)

GraphQL field GraphQL type Description
associateBehavior BidListAssociateBehavior! DO_NOT_ASSOCIATE, ASSOCIATE, ASSOCIATE_AND_ENABLE
dimensions [BidListDimension!]!

Output field mapping

Output type: IBidList (returned as data on PayloadWithErrorsOfIBidList)

REST response field GraphQL field GraphQL type Nullable Notes
BidListId id ID! Not nullable N/A
Name name String! Not nullable N/A
BidListSource source BidListSource! Not nullable Read-only on response
BidListAdjustmentType adjustmentType BidListAdjustmentType! Not nullable N/A
ResolutionType resolutionType MultipleMatchResolutionType! Not nullable N/A
BidLines bidLines [BidLine!]! Not nullable See BidList domain page for BidLine (response) nested mapping
IsAvailableForLibraryUse isAvailableForLibraryUse Boolean! Not nullable N/A
IsGlobal ownerType BidListOwnerType! Not nullable GLOBAL when REST IsGlobal is true
BidListDimensions dimensions [BidListDimension!]! Not nullable N/A
BidListType N/A N/A N/A Read-only
BidListOwner ownerType BidListOwnerType! Not nullable N/A
BidListOwnerId owner BidListOwner Nullable Nested owner entity (BidListOwner union)

Code examples

Simple bid list create with ad group owner and site/app targeting.

REST example

POST /v3/bidlist HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER

{
  "Name": "Site/App Target List",
  "BidListAdjustmentType": "Adjustment",
  "BidListOwner": "AdGroup",
  "BidListOwnerId": "ag1234567",
  "IsAvailableForLibraryUse": false,
  "BidLines": [
    {
      "BidAdjustment": 1.5,
      "DomainFragment": "example.com",
      "VolumeControlPriority": "None"
    }
  ]
}

GraphQL example

POST /graphql HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
mutation CreateSiteTargetBidList {
  bidListCreate(input: {
    name: "Site/App Target List"
    adjustmentType: OPTIMIZED
    resolutionType: APPLY_MULTIPLY_ADJUSTMENT
    source: USER
    owner: { adGroupId: "ag1234567" }
    associateBehavior: ASSOCIATE_AND_ENABLE
    dimensions: [HAS_DOMAIN_FRAGMENT_ID]
    isAvailableForLibraryUse: false
    bidLines: [
      {
        bidAdjustment: 1.5
        domainFragment: "example.com"
        volumeControlPriority: NEUTRAL
      }
    ]
  }) {
    data {
      id
      name
      adjustmentType
    }
    userErrors {
      message
      field
    }
  }
}

Create a global bid list owned at the global level.

REST example

POST /v3/bidlist HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER

{
  "Name": "Global Exclusion List",
  "BidListAdjustmentType": "Block",
  "BidListOwner": "Global",
  "IsAvailableForLibraryUse": true,
  "BidLines": [
    {
      "BidAdjustment": 0.0,
      "DomainFragment": "blockedsite.com",
      "VolumeControlPriority": "None"
    }
  ]
}

GraphQL example

POST /graphql HTTP/1.1
Content-Type: application/json
TTD-Auth: AUTH_TOKEN_PLACEHOLDER
mutation CreateGlobalBidList {
  bidListCreate(input: {
    name: "Global Exclusion List"
    adjustmentType: EXCLUSION
    resolutionType: APPLY_MULTIPLY_ADJUSTMENT
    source: USER
    owner: { isGlobal: true }
    associateBehavior: DO_NOT_ASSOCIATE
    dimensions: [HAS_DOMAIN_FRAGMENT_ID]
    isAvailableForLibraryUse: true
    bidLines: [
      {
        bidAdjustment: 0.0
        domainFragment: "blockedsite.com"
        volumeControlPriority: NEUTRAL
      }
    ]
  }) {
    data {
      id
      name
    }
    userErrors {
      message
      field
    }
  }
}