# Deidentified


The read-only output-field catalog for the `Deidentified` dataset on
[Create Audience](/api/v2/audiences#post-apiv2analysesaudiencescreate): the
signal fields the delivery can carry, in their six selectable groups.

One flat read covers every group. Each row is a `{ value, text, group,
group_text }` object: `value` is the field the create body accepts, `group` is
the key inside the create body's `fields` object to put it under, and the two
`*_text` values are the labels to show a user.

Every read here is authenticated and JSON-only (bearer token + `Accept:
application/json`) and uses the read rate bucket (120 requests/min per caller).

## Get Deidentified Fields {#get-apiv2analysesreferencedeidentifiedfields}

`GET /api/v2/analyses/reference/deidentified/fields`

The fields a `Deidentified` dataset can carry into its delivery, across all six
groups. The catalog is fixed and small, so the whole list is returned in one
flat response. Pass `group` to narrow it to a single group.

### Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string | No | Narrow the list to one group. Use a `group` value from this same read; anything else is rejected with `422`. |
| `search` | string | No | Optional free-text filter on the field label (case-insensitive contains). |

{{< tabs >}}

  {{< tab name="cURL" >}}
  ```bash
  curl "https://console.intuizi.com/api/v2/analyses/reference/deidentified/fields" \
    -H "Authorization: Bearer <YOUR_TOKEN>" \
    -H "Accept: application/json"
  ```
  {{< /tab >}}

  {{< tab name="Python" >}}
  ```python
  import requests

  res = requests.get(
      "https://console.intuizi.com/api/v2/analyses/reference/deidentified/fields",
      headers={"Authorization": "Bearer <YOUR_TOKEN>", "Accept": "application/json"},
  )
  fields = res.json()["data"]

  # Group them the way the create body expects.
  by_group = {}
  for field in fields:
      by_group.setdefault(field["group"], []).append(field["value"])
  ```
  {{< /tab >}}

  {{< tab name="JavaScript" >}}
  ```javascript
  const res = await fetch(
    "https://console.intuizi.com/api/v2/analyses/reference/deidentified/fields",
    { headers: { Authorization: "Bearer <YOUR_TOKEN>", Accept: "application/json" } }
  );
  const fields = (await res.json()).data;
  ```
  {{< /tab >}}

  {{< tab name="PHP" >}}
  ```php
  $res = Http::withToken('<YOUR_TOKEN>')->acceptJson()
      ->get('https://console.intuizi.com/api/v2/analyses/reference/deidentified/fields');
  $fields = $res->json('data');
  ```
  {{< /tab >}}

{{< /tabs >}}

### Response

```json
{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": [
    { "value": "latitude", "text": "Latitude", "group": "geoLocation", "group_text": "Geo-Location" },
    { "value": "longitude", "text": "Longitude", "group": "geoLocation", "group_text": "Geo-Location" },
    { "value": "bid", "text": "BID", "group": "advertising", "group_text": "Advertising" },
    { "value": "devicetype", "text": "Device Type", "group": "userDetails", "group_text": "User Details" },
    { "value": "ipisp", "text": "ISP/Carrier", "group": "ipDetails", "group_text": "IP Details" },
    { "value": "consentgdpr", "text": "Consent GDPR", "group": "privacy", "group_text": "Privacy" },
    { "value": "d_utc", "text": "DatetimeUTC", "group": "general", "group_text": "General" }
  ]
}
```

### Narrowing to one group

```bash
curl "https://console.intuizi.com/api/v2/analyses/reference/deidentified/fields?group=ipDetails" \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "Accept: application/json"
```

### Using the values

Put each field under the `group` the read returned it in. Fields are optional -
send only the groups you want, and omit `fields` entirely to take the default
shape. Selecting a field adds that column to the delivery; it does not filter
rows (there is no device or OS filter on the Deidentified dataset - a key such
as `deviceos` on the block is rejected with `422`):

```json
{
  "type": "Deidentified",
  "start_date": "2026-01-05",
  "end_date": "2026-01-18",
  "signal_providers": ["BID001"],
  "fields": {
    "geoLocation": ["latitude", "longitude"],
    "ipDetails": ["ipisp"],
    "general": ["d_utc"]
  },
  "location": { "countries": ["USA"] }
}
```

A field sent under a group it does not belong to is rejected with `422`, so
always take the pairing from this read rather than assuming it.
