Skip to content
DZLoggy

DEVELOPER RESOURCES

API documentation.

Connect your tools to your DZLoggy account. Create a token, make your first request, and work through paginated data.

Version
v1
Authentication
Bearer token
Page size
50 default · 100 max
Rate limit
120 requests / minute

Authenticate with a user token

START HERE

User API access requires your own active Plus or Pro plan, including when accessing shared instances. Free accounts cannot create or use API tokens. Downgrade or plan expiry blocks existing tokens immediately.

  1. Verify your account’s email address, then open Account → API access.
  2. Name the integration and choose Read only or Read and write. Add an optional expiry date in UTC and confirm your current password.
  3. Copy the new token before leaving the page. The full secret is shown once. You can revoke it from API access at any time.

Send the token in every request’s Authorization header. Use Accept: application/json for JSON responses and Content-Type: application/json when sending a JSON body. Keep tokens in your server or secret store.

Request headersHTTP
Authorization: Bearer YOUR_TOKEN
Accept: application/json

These pages cover user API tokens. Detailed Logs streaming uses a separate instance ingestion key; see server ingestion.

Make your first request

GET /api/v1/me returns the account behind the token. Replace YOUR_TOKEN in the examples with your saved token. All curl examples use Bash syntax.

Read your accountcurl · Bash
curl "https://dzloggy.com/api/v1/me" \
  --header "Authorization: Bearer YOUR_TOKEN" \
  --header "Accept: application/json"
200 OKJSON
{
  "data": {
    "name": "Server owner",
    "email": "[email protected]",
    "email_verified_at": "2026-10-15T00:00:00.000000Z",
    "created_at": "2026-10-15T00:00:00.000000Z"
  }
}
  • Instances Create servers and find their public SIDs.
  • Players Read player activity and manage notes and tags.
  • Logs & events Upload logs and page through the evidence.

Your existing permissions apply

Read-only tokens allow GET requests. POST, PUT and DELETE require a Read and write token as well as the instance permissions below. Shared instances use their owner’s plan, storage allowance and history window.

API permission requirements
ActionRequired access
Read instances, players, logs and eventsInstance owner or member, including viewers
Create an instanceYour account must have space within its instance limit
Update or archive an instanceInstance owner
Add, update or remove a playerInstance owner
Upload log filesInstance owner, editor or admin member
Update log notes or archive a logInstance owner

Use the public sid returned by instance, player and log responses in their URLs. Scope IDs, event IDs and event cursors are opaque strings: pass them back exactly as returned. Read operations return records inside data.

PUT changes the fields listed on each reference page. DELETE archives the selected record; it does not immediately erase stored evidence. There is no PATCH endpoint.

Page through your data

Instance, player, log and persistence-scope lists return data, links and meta. Follow links.next until it is null. Lists are ordered newest first: by record ID, or by generation for persistence scopes.

List query parameters
ParameterAccepted values
pageInteger from 1 to 1,000,000; default 1
per_pageInteger from 1 to 100; default 50
searchUp to 100 characters. Supported by instance, player and log lists; the fields searched are listed on their reference pages.
instanceAn instance’s public ULID. Supported by player and log lists.
List two instances at a timecurl · Bash
curl "https://dzloggy.com/api/v1/instances?page=1&per_page=2" \
  --header "Authorization: Bearer YOUR_TOKEN" \
  --header "Accept: application/json"
Pagination envelope · record fields abbreviatedJSON
{
  "data": [
    { "sid": "01K7S8T9V0W1X2Y3Z4A5B6C7D8", "name": "Chernarus EU" },
    { "sid": "01K7S8T9V0W1X2Y3Z4A5B6C7D9", "name": "Livonia EU" }
  ],
  "links": {
    "first": "https://dzloggy.com/api/v1/instances?page=1&per_page=2",
    "last": "https://dzloggy.com/api/v1/instances?page=2&per_page=2",
    "prev": null,
    "next": "https://dzloggy.com/api/v1/instances?page=2&per_page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 2,
    "path": "https://dzloggy.com/api/v1/instances",
    "per_page": 2,
    "to": 2,
    "total": 3
  }
}

Pagination links retain your search, instance and page-size filters. An empty page has an empty data array. Page-based lists can change while new records arrive; event lists instead use source-specific cursors.

Handle responses and rate limits

HTTP response codes
StatusMeaning
200Successful read or update
201Instance or player created; Location points to its API resource
202Log upload accepted for processing, or event details are still pending
204Record archived successfully; the response body is empty
401Missing, invalid, expired or revoked user token
403Unverified email, a read-only token attempting a write, insufficient instance permissions, or a plan feature restriction
404Record missing, archived, outside your access or outside the owner’s searchable log history
410The requested raw log file is no longer available
422Validation failed or a plan quota was reached; inspect the errors object
429Rate limit reached; wait for the number of seconds in Retry-After before retrying
503Raw storage is waiting for rolling cleanup. Retry the upload after the number of seconds in Retry-After. Files needed for processing or protected by a legal hold cannot be removed yet.
422 validation responseJSON
{
  "message": "The name field is required.",
  "errors": {
    "name": ["The name field is required."]
  }
}

User API requests share a limit of 120 per minute per account across all its tokens and endpoints. Token management has its own limit, so you can still revoke a busy integration. Repeated invalid tokens from one IP address are answered with 429 for up to a minute; valid tokens from that address keep working. Your account must remain email-verified to use its tokens. Server ingestion keys have separate limits, described under server ingestion.