Place Lists

Upload Updated Place List

Update a place list from a CSV file.

If file is present, the CSV is treated as the desired full set of places: omitted places are deleted, matching places are updated in place, and new places are inserted. Metadata fields are optional. The upload is atomic: if any row is invalid, the API returns 400 with validation errors and no changes are persisted. If the uploaded CSV changes geographic Place content by adding a place, removing a place, or changing an existing place's latitude, longitude, or radius_meters, sensitive_location_attestation is required and must be "true". Matched-place name and external_id edits are metadata edits that persist without requiring or recording attestation. A no-op CSV resubmission of unchanged Place content does not require or record a new attestation. The CSV header must be exactly name,latitude,longitude,radius_meters,external_id.

When changing Place List locations through the API, accepting sensitive_location_attestation: "true" confirms the following attestation on behalf of the API user for this request:

I represent and warrant that these locations are not being used to
target or identify individuals at sensitive locations, and that I have
the rights and consents necessary for this targeting, including consent
to share with third parties where required.

For guidance on what qualifies as a sensitive location, see Places attestation guidelines.

Geographic-content-changing uploads submitted without sensitive_location_attestation, or with it set to any value other than "true", are rejected with a 400 invalid-request error on /sensitive_location_attestation. Metadata-only matched-place edits and no-op resubmissions of unchanged Place content do not require or record a new attestation. This is a per-request acknowledgment for actual geographic content changes, not a one-time account-level setting.

The attestation language may be updated over time.

post/place_lists/{place_list_id}/upload

Request

Path parameters

place_list_idinteger required

Numeric ID of the place list to update

Request body multipart/form-data

filestring binary

CSV file with header name,latitude,longitude,radius_meters,external_id.

namestring

Optional updated place list name.

descriptionstring

Optional updated place list description.

versionstring

Optional optimistic-lock version. It is a string because this is a form upload.

sensitive_location_attestationstring

Optional for metadata-only updates and no-op CSV resubmissions. If the uploaded CSV changes geographic Place content by adding a place, removing a place, or changing an existing place's latitude, longitude, or radius_meters, this field must be "true". Matched-place name and external_id edits do not require or record attestation.

Example request

{
  "name": "Starbucks Stores - New York"
}

Response

Place list response

Example response

{
  "data": {
    "id": 126,
    "entity_type": "place_list",
    "version": 2,
    "organization_id": 100048,
    "name": "Starbucks Stores - New York",
    "description": "NYC flagship + competitor zones",
    "filename": "starbucks_new_york.csv",
    "places_count": 42,
    "places": [
      {
        "id": 5001,
        "name": "Times Square",
        "external_id": "STORE-001",
        "geometry_type": "circle",
        "latitude": 40.7589,
        "longitude": -73.9851,
        "radius_meters": 1000
      }
    ]
  },
  "meta": {
    "status": "success"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.