---
title: "List targeting attributes"
method: GET
path: "/targeting-attributes"
tags: ["Targeting Attributes"]
---

# List targeting attributes

`GET /targeting-attributes`

## Request

- Base URL: `https://api.sovrn.com/sovrnos/v1`
- URL: `https://api.sovrn.com/sovrnos/v1/targeting-attributes`
- Auth: API key in header `x-api-key`

Every attribute a deal request may use, and which of them have an enumerable set of accepted values.

## Response `200`

The targeting attributes a deal request may use.

- TargetingAttributeList
  - `data` TargetingAttribute[], required
    - `attribute` 'device.geo.country' | 'geo.zip' | 'site.domain' | 'app.bundleId' | 'device.deviceType' | 'adUnit.size' | 'audience.segmentids' | 'device.language' | 'device.geo.region' | 'content.categorization.v3' | 'content.genre' | 'publisher.id' | 'content.categorization.v1' | 'imp.tagid', required
    - `description` string, required
    - `valueFormat` 'enumerated' | 'freeText', required
    - `valuesPath` string, nullable, required

## Other responses

- `401`: The API key was missing or not accepted. **Not JSON**: a bare `text/plain` string: `api key not provided`, `invalid api key`, or `invalid api key syntax`.
- `403`: The key is valid but not permitted. `{"message": "Insufficient scope"}`: a read-only key sent a write (`POST` or `PATCH`). It is checked before the body is validated, even with `?dryRun=true`. `{"message": "Partner not authorized for this API"}`: the account is not enabled for this API. It is checked after the request is validated, so an invalid request gets its `400` first.

---

[API](https://skmtc.dev/sovrn/apis/curation-api.md) - [All operations](https://skmtc.dev/sovrn/apis/curation-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sovrn/apis/curation-api/revisions/0ef84c7a4a94?raw)
