openapi: 3.0.4 info: title: TTD Data Advertiser ThirdParty API version: v0.1 tags: - name: ThirdParty paths: /data/thirdparty: post: tags: - ThirdParty summary: Upload third-party data for the specified data provider for use in audience targeting. operationId: IngestThirdPartyData parameters: - name: TTD-Auth in: header description: Data API token for authentication. required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ThirdPartyDataRequest' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ThirdPartyDataServerResponse' '400': description: Bad Request - Invalid JSON, missing items, data provider not configured, or policy restrictions content: application/json: schema: $ref: '#/components/schemas/ThirdPartyDataServerResponse' '403': description: Forbidden - Cannot create new targeting data for this data provider content: application/json: schema: type: string '413': description: Request Entity Too Large - Request size exceeds the allowed limit content: application/json: schema: type: string '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ThirdPartyDataServerResponse' '500': description: Internal Server Error - Unexpected server error '503': description: Service Unavailable - Handler disabled or request dropped servers: - url: https://bulk-data.adsrvr.org components: schemas: ThirdPartyDataResponseErrorCode: enum: - Unknown - MissingUserId - UserNotMapped - DataNameTooLong - UnauthorisedThirdPartyDataWithBaseBidCPM - InvalidTtlInMinutes - InvalidDataOwnerId - InvalidParameterFormat - TargetingDataCreationLimitExceeded - TargetingDataCountLimitExceeded - TenantRestrictionsExternalData - TargetingDataDisabled - ItemDeserializationError type: string ThirdPartyData: required: - Name type: object properties: Name: type: string TimestampUtc: type: string format: date-time nullable: true TtlInMinutes: type: integer format: int32 nullable: true additionalProperties: false ThirdPartyDataRequest: required: - DataProviderId type: object properties: DataProviderId: type: string Items: type: array items: $ref: '#/components/schemas/ThirdPartyDataItem' nullable: true DataLoadTraceId: type: string nullable: true IsUserIdAlreadyHashed: type: boolean default: false additionalProperties: false ThirdPartyDataItem: required: - Data type: object properties: DataProviderUserId: type: string nullable: true TDID: type: string nullable: true DAID: type: string nullable: true UID2: type: string nullable: true UID2Token: type: string nullable: true RampID: type: string nullable: true CoreID: type: string nullable: true EUID: type: string nullable: true EUIDToken: type: string nullable: true ID5: type: string nullable: true NetID: type: string nullable: true FirstID: type: string nullable: true UtiqID: type: string nullable: true MerkuryID: type: string nullable: true IqviaPPID: type: string nullable: true Data: type: array items: $ref: '#/components/schemas/ThirdPartyData' CookieMappingPartnerId: type: string nullable: true additionalProperties: false ThirdPartyDataServerResponse: type: object properties: FailedLines: type: array items: $ref: '#/components/schemas/ThirdPartyDataServerResponseLine' nullable: true additionalProperties: false ThirdPartyDataServerResponseLine: type: object properties: DataProviderUserId: type: string nullable: true TDID: type: string format: uuid nullable: true DataName: type: string nullable: true ErrorCode: $ref: '#/components/schemas/ThirdPartyDataResponseErrorCode' Message: type: string nullable: true ItemNumber: type: string nullable: true additionalProperties: false