---
title: "Preview a zone-file import"
method: POST
path: "/v1/dns-zones/{zoneID}/import/preview"
tags: ["public", "dns"]
---

# Preview a zone-file import

`POST /v1/dns-zones/{zoneID}/import/preview`

## Request

- Base URL: `https://api.vozora.io`
- URL: `https://api.vozora.io/v1/dns-zones/{zoneID}/import/preview`
- Auth: API key in header `Authorization`

Describes the full replacement without applying it. The preview is bound to this key, this zone and the zone's version.

## Path parameters

- `zoneID` string, required

## Response `200`

OK

- ZonesImportPreview
  - `base_version` integer
  - `changes` ZonesChange[]
    - `after` ZonesRRset
      - `owner` string
      - `records` string[]
      - `ttl` integer
      - `type` string
      - `updated_at` string
      - `zone_id` string
    - `before` ZonesRRset
      - `owner` string
      - `records` string[]
      - `ttl` integer
      - `type` string
      - `updated_at` string
      - `zone_id` string
    - `display_type` string: Display is the customer-facing type name ("Apex alias" for ALIAS).
    - `kind` 'add' | 'update' | 'unchanged' | 'remove'
    - `notes` string[]
    - `owner` string
    - `type` string
  - `expires_at` string
  - `id` string
  - `summary` ZonesImportSummary
    - `added` integer
    - `destructive` boolean: Destructive is true when anything would be removed or changed: an import is a full replacement, so this is the line the UI must make impossible to miss.
    - `removed` integer
    - `unchanged` integer
    - `updated` integer
    - `warnings` string[]
  - `zone_id` string

## Other responses

- `403`: the key lacks one of dns_records:read, :write, :delete
- `413`: the zone file is too large

---

[API](https://skmtc.dev/vozora/apis/vozora-api.md) · [All operations](https://skmtc.dev/vozora/apis/vozora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vozora/apis/vozora-api/revisions/56f15734fc5a?raw)
