# Create Place List

Create a place list with inline circle places.
Only circle places are supported. API users must provide `latitude`,
`longitude`, and `radius_meters` for each place. `geometry_type` is
returned by the API and must not be supplied by users.
Before creating Place List locations through the API, API users must
accept the sensitive-location attestation by including
`sensitive_location_attestation: true` in the request body. Accepting
this field confirms the following attestation on behalf of the API
user for this request:

```text
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](https://support.infillion.com/s/article/Places).
Requests 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`. This is a
per-request acknowledgment, not a one-time account-level setting.
The attestation language may be updated over time.

Endpoint: POST /place_lists
Version: 3.0.1807
Security: Auth0

## Security:

  - `Auth0` (unknown)
    oauth2 scopes: offline_access, manage:services

## Request fields (application/json):

  - `organization_id` (integer, required)
    Example: 100048

  - `name` (string, required)
    Example: Starbucks Stores - New York

  - `description` (string)
    Example: NYC flagship + competitor zones

  - `sensitive_location_attestation` (boolean, required)
    Required and must be `true` for Place List content writes.
    Enum: "true"

  - `places` (array, required)
    Circle places to create. Within one place list, nonblank external_id values
must be unique and circle geometry (latitude, longitude, radius_meters)
must be unique after coordinate truncation to four decimal places.

  - `places.name` (string)
    Example: Times Square

  - `places.external_id` (string)
    Example: STORE-001

  - `places.latitude` (number, required)
    JSON number using standard JSON syntax; do not include leading zeroes (use `40.7589`, not `040.7589`).
    Example: 40.7589

  - `places.longitude` (number, required)
    JSON number using standard JSON syntax; do not include leading zeroes (use `-73.9851`, not `-073.9851`).
    Example: -73.9851

  - `places.radius_meters` (integer, required)
    Example: 1000

## Response 201:

  - `201` (unknown)
    Place list response

## Response 201 fields (application/json):

  - `data` (object)

  - `data.id` (integer)
    Example: 126

  - `data.entity_type` (string)
    Example: place_list

  - `data.version` (integer)
    Example: 2

  - `data.organization_id` (integer)
    Example: 100048

  - `data.name` (string)
    Example: Starbucks Stores - New York

  - `data.description` (string)
    Example: NYC flagship + competitor zones

  - `data.filename` (string)
    Example: starbucks_new_york.csv

  - `data.content_updated_on` (string)

  - `data.places_count` (integer)
    Example: 42

  - `data.strategy_count` (integer)
    Number of strategies currently assigned to this Place List through PLCS geofence targeting.

  - `data.created_on` (string)

  - `data.updated_on` (string)

  - `data.places` (array)
    Nested places — returned on create/update and single GET responses

  - `data.places.id` (integer)
    Example: 5001

  - `data.places.name` (string)
    Example: Times Square

  - `data.places.external_id` (string)
    Example: STORE-001

  - `data.places.geometry_type` (string)
    Returned by the API and must not be supplied by users
    Enum: "circle"

  - `data.places.latitude` (number)
    Example: 40.7589

  - `data.places.longitude` (number)
    Example: -73.9851

  - `data.places.radius_meters` (integer)
    Example: 1000

  - `meta` (object)

  - `meta.status` (string, required)
    Example: success

## Response 400:

  - `400` (unknown)
    Error response

## Response 400 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.sub_code` (string)
    Optional identifier that refines the generic `code` category (e.g. `html5-noscript-tag`). Present on HTML5 upload/preview validation errors; absent otherwise.

  - `errors.field` (string)
    Optional when it is a schema error

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)

## Response 401:

  - `401` (unknown)
    Error response

## Response 401 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.sub_code` (string)
    Optional identifier that refines the generic `code` category (e.g. `html5-noscript-tag`). Present on HTML5 upload/preview validation errors; absent otherwise.

  - `errors.field` (string)
    Optional when it is a schema error

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)

## Response 403:

  - `403` (unknown)
    Error response

## Response 403 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.sub_code` (string)
    Optional identifier that refines the generic `code` category (e.g. `html5-noscript-tag`). Present on HTML5 upload/preview validation errors; absent otherwise.

  - `errors.field` (string)
    Optional when it is a schema error

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)

