---
title: "Upload first-party IP address data for the specified ID."
method: POST
path: "/data/firstpartyipaddress"
tags: ["IPAddress"]
---

# Upload first-party IP address data for the specified ID.

`POST /data/firstpartyipaddress`

## Headers

- `TTD-Auth` string, required

## Request body

- IPAddressDataRequest
  - `DataOwnerId` string, required
  - `Items` IPAddressDataItem[], nullable
    - `TDID` string, nullable
    - `DAID` string, nullable
    - `UID2` string, nullable
    - `UID2Token` string, nullable
    - `RampID` string, nullable
    - `CoreID` string, nullable
    - `EUID` string, nullable
    - `EUIDToken` string, nullable
    - `ID5` string, nullable
    - `NetID` string, nullable
    - `FirstID` string, nullable
    - `UtiqID` string, nullable
    - `MerkuryID` string, nullable
    - `RealID` string, nullable
    - `IqviaPPID` string, nullable
    - `Data` IPAddressData[], required
      - `Name` string, required
      - `TimestampUtc` string, date-time, nullable
      - `TtlInMinutes` integer, nullable
      - `TargetingDataMetadataId` integer, nullable
      - `IPAddresses` string[], nullable
      - `IPAddressRanges` string[], nullable
      - `ExpandedIpAddresses` ExpandedIpAddress[], nullable
        - `IPAddress` string, nullable
        - `IPAddressRange` string, nullable
        - `TargetingDataMetadataId` integer, nullable
    - `CookieMappingPartnerId` string, nullable
  - `DataLoadTraceId` string, nullable

## Response `200`

Success

- IPAddressDataServerResponse
  - `DataOwnerId` string, nullable
  - `FailedLines` IPAddressDataServerResponseLine[], nullable
    - `DataName` string, nullable
    - `ErrorCode` 'Unknown' | 'MissingDataOwnerId' | 'DataOwnerIdNotMapped' | 'InvalidIPAddress' | 'InvalidIPAddressRange' | 'EuIpTargetingNotAllowedForPartner' | 'NotTargetable'
    - `IPAddress` string, nullable
    - `Message` string, nullable
    - `ItemNumber` string, nullable
    - `DataNumber` string, nullable

## Other responses

- `400` — Bad Request - Invalid JSON, missing items, advertiser not configured, or policy restrictions
- `401` — Unauthorized - Invalid or missing authentication token
- `403` — Forbidden - Cannot upload IP address data for this advertiser
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - Unexpected server error
- `503` — Service Unavailable - Handler disabled or request dropped

## Changes

- **2026-07-21** `0c55e57f52e5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/adsrvr/apis/ttd-data-api/changes/data/firstpartyipaddress/post.md)

---

[API](https://skmtc.dev/adsrvr/apis/ttd-data-api.md) · [All operations](https://skmtc.dev/adsrvr/apis/ttd-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adsrvr/ttd-data-api/revisions/0c55e57f52e5/schema)
