openapi: 3.2.0 info: title: TTD Data Third Party API version: v0.1 tags: - name: Third Party paths: /data/thirdparty: post: tags: - Third Party summary: Upload third-party data for the specified data provider for use in audience… 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' '401': description: Unauthorized - Invalid or missing authentication token content: application/json: schema: type: string '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: ThirdPartyDataRequest: required: - DataProviderId type: object properties: DataProviderId: type: string Items: type: - array - 'null' items: $ref: '#/components/schemas/ThirdPartyDataItem' DataLoadTraceId: type: - string - 'null' IsUserIdAlreadyHashed: type: boolean default: false additionalProperties: false ThirdPartyDataServerResponseLine: type: object properties: DataProviderUserId: type: - string - 'null' TDID: type: - string - 'null' format: uuid DataName: type: - string - 'null' ErrorCode: $ref: '#/components/schemas/ThirdPartyDataResponseErrorCode' Message: type: - string - 'null' ItemNumber: type: - string - 'null' DataNumber: type: - string - 'null' additionalProperties: false ThirdPartyDataServerResponse: type: object properties: FailedLines: type: - array - 'null' items: $ref: '#/components/schemas/ThirdPartyDataServerResponseLine' additionalProperties: false ThirdPartyDataResponseErrorCode: enum: - Unknown - MissingUserId - UserNotMapped - DataNameTooLong - UnauthorisedThirdPartyDataWithBaseBidCPM - InvalidTtlInMinutes - InvalidDataOwnerId - InvalidParameterFormat - TargetingDataCreationLimitExceeded - TargetingDataCountLimitExceeded - TenantRestrictionsExternalData - TargetingDataDisabled - ItemDeserializationError type: string ThirdPartyDataItem: required: - Data type: object properties: DataProviderUserId: type: - string - 'null' TDID: type: - string - 'null' DAID: type: - string - 'null' UID2: type: - string - 'null' UID2Token: type: - string - 'null' RampID: type: - string - 'null' CoreID: type: - string - 'null' EUID: type: - string - 'null' EUIDToken: type: - string - 'null' ID5: type: - string - 'null' NetID: type: - string - 'null' FirstID: type: - string - 'null' UtiqID: type: - string - 'null' MerkuryID: type: - string - 'null' RealID: type: - string - 'null' IqviaPPID: type: - string - 'null' Data: type: array items: $ref: '#/components/schemas/ThirdPartyData' CookieMappingPartnerId: type: - string - 'null' additionalProperties: false ThirdPartyData: required: - Name type: object properties: Name: type: string TimestampUtc: type: - string - 'null' format: date-time TtlInMinutes: type: - integer - 'null' format: int32 additionalProperties: false