# Dry-run Taxonomy Upload

Validates a CSV taxonomy file for the given targeting vendor and returns
an impact report (segment counts before/after, diff, affected strategies).
**Nothing is written to the database** — this is a dry-run only.

Endpoint: POST /targeting_segments/taxonomy_upload
Version: 3.0.1807
Security: Auth0

## Request fields (multipart/form-data):

  - `targeting_vendor` (string, required)
    Two-character alphanumeric namespace code identifying the targeting vendor (e.g. `mm`). Must match an existing record in `targeting_vendors`.
    Example: mm

  - `file` (string, required)
    CSV taxonomy file. Expected columns (header row required):
`full_path`, `code`, `uniques`, `wholesale_cpm`, `retail_cpm`,
`buyable`, `objective`. Lines beginning with `#` are ignored.

## 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 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 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)

