---
title: "Batch create, update, and/or delete records in a zone"
method: POST
path: "/{account}/zones/{zone}/batch"
tags: ["zones"]
---

# Batch create, update, and/or delete records in a zone

`POST /{account}/zones/{zone}/batch`

Performs multiple record operations (create, update and/or delete) for a zone in a single request for atomicity and efficiency.

## Path parameters

- `account` integer, required
- `zone` string, required

## Request body

- object
  - `creates` object[] — Zone records to create
    - `name` string, required
    - `type` 'A' | 'AAAA' | 'ALIAS' | 'CAA' | 'CNAME' | 'DNSKEY' | 'DS' | 'HINFO' | 'MX' | 'NAPTR' | 'NS' | 'POOL' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'SSHFP' | 'TXT' | 'URL', required — The type of DNS record. Supported DNS record types are listed below. Note that some record types may only be available on specific plans.
    - `content` string, required
    - `ttl` integer — The Time To Live (TTL) value for the entry, in seconds.
    - `priority` integer
    - `regions` ZoneRecordRegion[]
  - `updates` object[] — Zone records to update
    - `id` integer, required — ID of the zone record to update
    - `name` string
    - `content` string
    - `ttl` integer — The Time To Live (TTL) value for the entry, in seconds.
    - `priority` integer
    - `regions` ZoneRecordRegion[]
  - `deletes` object[] — Zone record IDs to delete
    - `id` integer, required — ID of the zone record to delete

## Response `200`

Successfully processed batched zone record changes.

- object
  - `data` BatchChangeZoneRecordsResponse, required — Response from batch change of zone records
    - `creates` ZoneRecord[], required — Zone records that were created
      - `id` integer, required — The unique identifier for the record.
      - `zone_id` string, required — The unique identifier of the zone this record belongs to
      - `parent_id` integer, nullable, required — Deprecated - the value is always null.
      - `name` string, required — The name of the record (e.g., "www" for www.example.com).
      - `content` string, required — The content/value of the record (e.g., IP address for A records, hostname for CNAME records).
      - `ttl` integer, required — The Time To Live (TTL) value for the entry, in seconds.
      - `priority` integer, nullable, required — The priority value for MX and SRV records. Lower values have higher priority.
      - `type` 'A' | 'AAAA' | 'ALIAS' | 'CAA' | 'CNAME' | 'DNSKEY' | 'DS' | 'HINFO' | 'MX' | 'NAPTR' | 'NS' | 'POOL' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'SSHFP' | 'TXT' | 'URL', required — The type of DNS record. Supported DNS record types are listed below. Note that some record types may only be available on specific plans.
      - `regions` ZoneRecordRegion[], required — The regions where this record is active. If empty, the record is active in all regions.
      - `system_record` boolean, required — Returns true if a record is a system generated record and thus is not modifiable.
      - `created_at` string, date-time, required — A date-time value, representing when the entry was created, formatted as ISO 8601.
      - `updated_at` string, date-time, required — A date-time value, representing when the entry was last updated, formatted as ISO 8601.
    - `updates` ZoneRecord[], required — Zone records that were updated
      - `id` integer, required — The unique identifier for the record.
      - `zone_id` string, required — The unique identifier of the zone this record belongs to
      - `parent_id` integer, nullable, required — Deprecated - the value is always null.
      - `name` string, required — The name of the record (e.g., "www" for www.example.com).
      - `content` string, required — The content/value of the record (e.g., IP address for A records, hostname for CNAME records).
      - `ttl` integer, required — The Time To Live (TTL) value for the entry, in seconds.
      - `priority` integer, nullable, required — The priority value for MX and SRV records. Lower values have higher priority.
      - `type` 'A' | 'AAAA' | 'ALIAS' | 'CAA' | 'CNAME' | 'DNSKEY' | 'DS' | 'HINFO' | 'MX' | 'NAPTR' | 'NS' | 'POOL' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'SSHFP' | 'TXT' | 'URL', required — The type of DNS record. Supported DNS record types are listed below. Note that some record types may only be available on specific plans.
      - `regions` ZoneRecordRegion[], required — The regions where this record is active. If empty, the record is active in all regions.
      - `system_record` boolean, required — Returns true if a record is a system generated record and thus is not modifiable.
      - `created_at` string, date-time, required — A date-time value, representing when the entry was created, formatted as ISO 8601.
      - `updated_at` string, date-time, required — A date-time value, representing when the entry was last updated, formatted as ISO 8601.
    - `deletes` object[], required — Zone records that were deleted
      - `id` integer, required — ID of the deleted zone record

## Other responses

- `400` — Invalid batch change zone records request error
- `404` — The requested resource doesn't exist.

## Changes

- **2026-09-17** (v2) `faec8b49cc03` — 2 info
  - response property `data/creates/items/parent_id` deprecated
  - response property `data/updates/items/parent_id` deprecated
- **2025-09-24** (v2) `4b5540b50cd1` — 1 info
  - endpoint added
- **2023-07-18** (v2) `c8591dcf8c29` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/dnsimple/apis/dnsimple-api/changes/:account/zones/:zone/batch/post.md)

---

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