REST API v1

API Documentation

Programmatically manage DayZ server configuration data with authenticated JSON endpoints.

24
Resources
99
Endpoints
17
Writable

Quick start

Send JSON requests with a bearer token from a plan that includes API access.

Bearer token
  1. 1 Generate an API key from your profile page.
  2. 2 Pass it as an Authorization: Bearer header.
  3. 3 Use resource sid values in route parameters.
curl -X GET 'https://beta.dzconfig.com/api/v1/instances?per_page=10' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

Response format

Data wrapper
Resources are returned as JSON under a data key.
Pagination
List endpoints include links and meta objects.
Scoping
Instance resources are scoped to instances owned by the authenticated user.

Authentication

All endpoints except the public health probe require a personal API token.

Bearer token
Get a token
Visit your profile page, scroll to the API token section, and click Generate token. Save it somewhere safe — it's shown only once.
Rotate or revoke
Generating a new token immediately invalidates the previous one. There is one active token per user.
Plan requirement
API access is a Platinum-plan feature. Free-plan tokens authenticate but every request returns 403 Forbidden.
Statelessness
Token requests don't write a session cookie or row. Every call is independent.

Header format

Authorization: Bearer YOUR_API_TOKEN
Accept: application/json

401 response

{
  "message": "Unauthenticated."
}

Rate limits

Throttles are enforced per route group. Hitting the limit returns a 429 with a Retry-After header.

Endpoint group Limit Keyed by
GET /api/v1/health 60 requests/minute Client IP
All other /api/v1/* 60 requests/minute Authenticated user ID (falls back to IP)

Response headers (429)

HTTP/2 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0

Response body (429)

{
  "message": "Too Many Attempts."
}

The per_page query parameter on list endpoints is silently clamped to a maximum of 100. Non-numeric values are stripped and the default of 15 is used. Body-parameter per_page values are clamped the same way.

Errors

Every error is returned as JSON regardless of the Accept header thanks to the ForceJsonResponse middleware.

404 — Not found

{
  "message": "Not Found."
}

403 — Forbidden

{
  "message": "This action is unauthorized."
}

422 — Validation

{
  "message": "The name field is required.",
  "errors": {
    "name": ["The name field is required."],
    "value": ["The value must be at least 0."]
  }
}

413 — Storage limit

{
  "message": "You have reached your plan limit of 10 stored uploads...",
  "limit_type": "stored_uploads",
  "current": 10,
  "limit": 10
}

429 — Rate limited

{
  "message": "Too Many Attempts."
}

500 — Server error

{
  "message": "Server Error"
}

The limit_type on a 413 is one of stored_uploads, stored_generates, or total_storage. The numeric current and limit values are bytes for total_storage and a count otherwise.

Versioning

The current API is v1. Every endpoint lives under /api/v1/.

Additive changes
New fields, new optional query parameters, and new endpoints can ship at any time within v1. Clients should ignore unknown fields.
Breaking changes
Removing or renaming a field, changing a status code, or tightening validation will only happen in a future /api/v2/ namespace. v1 will keep running alongside v2 for a deprecation window.
Deprecations
Endpoints scheduled for removal will surface a Deprecation response header with the cutoff date and a Link header pointing to the replacement.
No version negotiation
The version is in the URL, not the Accept header. Don't send application/vnd.dzc.v1+json.

Operational

1 resource

Core

1 resource

Reference Data

8 resources

Instance Resources

14 resources
Instance Classnames

Classnames scoped to a specific instance.

R/W
/api/v1/instances/{instance}/classnames
GET POST PUT DELETE 5
Types

Loot economy type definitions for an instance.

R/W
/api/v1/instances/{instance}/types
GET POST PUT DELETE 5
Type Presets

Reusable type value presets that can be applied in bulk.

R/W
/api/v1/instances/{instance}/presets
GET POST PUT DELETE 6
Events

Central economy event definitions.

R/W
/api/v1/instances/{instance}/events
GET POST PUT DELETE 5
Event Spawns

Event spawn point configurations.

R/W
/api/v1/instances/{instance}/event-spawns
GET POST PUT DELETE 5
Spawnable Types

Spawnable type configurations with child attachments.

R/W
/api/v1/instances/{instance}/spawnable-types
GET POST PUT DELETE 5
Random Presets

Random cargo preset configurations.

R/W
/api/v1/instances/{instance}/random-presets
GET POST PUT DELETE 5
Trader Sellers

Trader NPC seller definitions.

R/W
/api/v1/instances/{instance}/trader-sellers
GET POST PUT DELETE 5
Trader Items

Items available for trade with buy/sell prices.

R/W
/api/v1/instances/{instance}/trader-items
GET POST PUT DELETE 5
Trader Currencies

Currency classnames and their values for the trader system.

R/W
/api/v1/instances/{instance}/trader-currencies
GET POST PUT DELETE 5
Player Lists

Ban and whitelist entries.

R/W
/api/v1/instances/{instance}/player-lists
GET POST PUT DELETE 5
Player Spawns

Player spawn point coordinates.

R/W
/api/v1/instances/{instance}/player-spawns
GET POST PUT DELETE 5
Effect Areas

Map effect area zones (contamination, etc.).

R/W
/api/v1/instances/{instance}/effect-areas
GET POST PUT DELETE 5
Messages

Server broadcast messages.

R/W
/api/v1/instances/{instance}/messages
GET POST PUT DELETE 5