---
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 — If present represents the zone record this record relates to. The parent record is the master record, when the parent is updated or deleted the related record is also updated or deleted. An example of child record is the TXT descriptive record created for an ALIAS record.
      - `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 — If present represents the zone record this record relates to. The parent record is the master record, when the parent is updated or deleted the related record is also updated or deleted. An example of child record is the TXT descriptive record created for an ALIAS record.
      - `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.

---

[API](https://skmtc.net/dnsimple/apis/dnsimple-api.md) · [All operations](https://skmtc.net/dnsimple/apis/dnsimple-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dnsimple/dnsimple-api/versions/270bb4f6f532/schema)
