Player endpoints
| Method | Path | Action |
|---|---|---|
| GET | /api/v1/players | Paginated players across your accessible instances |
| POST | /api/v1/players | Add a player to an instance you own |
| GET | /api/v1/players/{sid} | Read an accessible player record |
| PUT | /api/v1/players/{sid} | Replace editable details on a player in an instance you own |
| DELETE | /api/v1/players/{sid} | Remove a player from an instance you own |
List requests accept page and per_page. Add instance to filter by a server’s public SID. search matches the custom name, last observed name, Steam ID or DayZ UID, and is limited to 100 characters.
curl --get "https://dzloggy.com/api/v1/players" \
--header "Authorization: Bearer YOUR_TOKEN" \
--header "Accept: application/json" \
--data-urlencode "instance=INSTANCE_SID" \
--data-urlencode "search=Ranger" \
--data-urlencode "per_page=25"
A player SID identifies their record within one instance. The same Steam ID can have different player SIDs, notes and tags on different instances.
Add a player
| Field | Rules |
|---|---|
instance | Required on POST: the public SID of an instance you own. Must be omitted on PUT. |
steam_id | Required on POST: a 17-digit string beginning with 7656119. Must be omitted on PUT. |
custom_name | Optional string up to 100 characters; null clears the custom name. |
notes | Optional string up to 1,000 characters; null clears the notes. |
tags | Optional array of up to 10 distinct, non-empty strings, each up to 32 characters. |
curl --request POST "https://dzloggy.com/api/v1/players" \
--header "Authorization: Bearer YOUR_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"instance":"INSTANCE_SID","steam_id":"76561198412934791","custom_name":"Ranger","notes":"Community moderator","tags":["staff"]}'
The response includes a Location header for the player’s API URL. Adding a Steam ID already present in that instance updates its editable details and reuses its SID; a previously removed player is restored.
Player response
{
"data": {
"sid": "01K7S8T9V0W1X2Y3Z4A5B6C7D9",
"instance": "01K7S8T9V0W1X2Y3Z4A5B6C7D8",
"steam_id": "76561198412934791",
"steam_name": null,
"dayz_uid": null,
"observed_name": null,
"custom_name": "Ranger",
"notes": "Community moderator",
"tags": ["staff"],
"first_seen_at": null,
"last_seen_at": null,
"is_online": false,
"event_count": 0,
"playtime_milliseconds": 0,
"player_kills": 0,
"deaths": 0,
"created_at": "2026-10-15 00:00:00.000",
"updated_at": "2026-10-15 00:00:00.000"
}
}
A newly added player can have no observed name, DayZ UID or seen timestamps until their activity appears in processed logs. Activity counters and online status are read-only. Keep Steam IDs as strings.
Replace player details
PUT replaces custom_name, notes and tags. Send all values you want to retain: omitted names and notes become null, and omitted or null tags become an empty array. The Steam ID and instance cannot be changed.
curl --request PUT "https://dzloggy.com/api/v1/players/PLAYER_SID" \
--header "Authorization: Bearer YOUR_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"custom_name":"Ranger","notes":"Reviewed by the moderation team","tags":["staff","reviewed"]}'
The response contains the updated player record. Both writes and removals require instance ownership, even for shared-instance admin members.
Remove a player
curl --request DELETE "https://dzloggy.com/api/v1/players/PLAYER_SID" \
--header "Authorization: Bearer YOUR_TOKEN" \
--header "Accept: application/json"
Removal archives the instance’s player record and clears its custom name, notes and tags. It leaves the shared Steam identity and processed evidence intact. Subsequent requests for the removed player return 404.