Shulker Supervisor Logger API v1.0
Programmatically log and retrieve time-stamped coordinate data for designated supervisors. Perfect for tracking in-game entities, monitoring device locations, or building custom location-based services.
Introduction
📡 Simple RESTful API — Whether you're tracking in-game entities, monitoring device locations, or building a custom location-based service, this API provides a simple yet robust solution for your data logging needs.
Authentication
The API uses simple token-based authentication. Every request must include your unique supervisor_name and token as URL query parameters.
?supervisor_name=alpha_one&token=supersecret123
🔐 Security Note — These credentials identify and authorize the supervisor. Without valid credentials, the API returns a 401 Unauthorized error.
Base URL
https://shulker.in/api/shulker_supervisor_logger-v1.0/
Log Data
POSTLog a new data entry (coordinates and timestamp) for a specific supervisor.
/?action=send_data
| Parameter | Type | Description | Required |
|---|---|---|---|
| supervisor_name | String | The unique name of the supervisor | Required |
| token | String | The authentication token | Required |
| supervisor_x | String | The X coordinate or primary data value | Required |
| supervisor_y | String | The Y coordinate or secondary data value | Required |
⚠️ Constraints — Combined length of supervisor_x and supervisor_y must not exceed 40 characters. System stores max 2000 entries per supervisor — oldest automatically deleted.
curl --location --request POST \
'https://shulker.in/api/shulker_supervisor_logger-v1.0/?supervisor_name=alpha_one&token=supersecret123&action=send_data' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'supervisor_x=123.456' \
--data-urlencode 'supervisor_y=-78.910'
async function logSupervisorData(name, token, x, y) { const API_URL = 'https://shulker.in/api/shulker_supervisor_logger-v1.0/'; const params = new URLSearchParams({ supervisor_name: name, token: token, action: 'send_data' }); const body = new URLSearchParams(); body.append('supervisor_x', x); body.append('supervisor_y', y); const response = await fetch(`${API_URL}?${params}`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: body }); return await response.json(); }
import requests def log_supervisor_data(name, token, x, y): url = 'https://shulker.in/api/shulker_supervisor_logger-v1.0/' params = {'supervisor_name': name, 'token': token, 'action': 'send_data'} data = {'supervisor_x': x, 'supervisor_y': y} response = requests.post(url, params=params, data=data) return response.json()
{
"success": true,
"message": "Data logged successfully"
}
Retrieve Data
GETRetrieve the complete log history (up to 2000 entries) for a specific supervisor.
/?action=get_data
curl --location \
'https://shulker.in/api/shulker_supervisor_logger-v1.0/?supervisor_name=alpha_one&token=supersecret123&action=get_data'
async function getSupervisorLogs(name, token) { const API_URL = 'https://shulker.in/api/shulker_supervisor_logger-v1.0/'; const params = new URLSearchParams({ supervisor_name: name, token: token, action: 'get_data' }); const response = await fetch(`${API_URL}?${params}`); const data = await response.json(); if (!response.ok) throw new Error(data.error); return data.logs; }
import requests def get_supervisor_logs(name, token): url = 'https://shulker.in/api/shulker_supervisor_logger-v1.0/' params = {'supervisor_name': name, 'token': token, 'action': 'get_data'} response = requests.get(url, params=params) response.raise_for_status() return response.json()['logs']
{
"logs": [
{
"x": "123.456",
"y": "-78.910",
"timestamp": "2025-09-30 05:00:54"
},
{
"x": "123.500",
"y": "-78.950",
"timestamp": "2025-09-30 05:01:15"
}
]
}
Error Handling
| Status Code | Meaning | Example Response |
|---|---|---|
| 400 | Missing/invalid parameters | {"error": "Missing supervisor_name or token"} |
| 401 | Authentication failed | {"error": "Authentication failed"} |
| 405 | Incorrect HTTP method | {"error": "POST required for send_data"} |
| 500 | Server-side problem | {"error": "Database connection failed"} |
Log Entry Data Structure
| Key | Type | Description |
|---|---|---|
| x | String | The X coordinate or primary data value that was logged |
| y | String | The Y coordinate or secondary data value that was logged |
| timestamp | String | Server timestamp in YYYY-MM-DD HH:MM:SS format (UTC) |
{
"x": "123.456",
"y": "-78.910",
"timestamp": "2025-09-30 05:00:54"
}