Guide to Wanderer’s Systems and Connections API
Introduction
This guide covers Wanderer’s dedicated API endpoints for managing systems and connections on your maps. These endpoints provide fine-grained control over individual systems and connections, as well as batch operations for efficient updates.
With these APIs, you can:
- Create, update, and delete individual systems
- Create, update, and delete individual connections
- Perform batch operations on systems and connections
- Query system and connection details
Authentication
All endpoints require a Map API Token, which you can generate in your map settings. Pass the token in the Authorization header:
Authorization: Bearer <YOUR_MAP_TOKEN>
Systems Endpoints
1. List Systems
GET /api/maps/:map_identifier/systems
- Description: Retrieves all systems and their connections for the specified map.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/systems"
Example Response
{
"data": {
"systems": [
{
"id": "<SYSTEM_UUID>",
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"position_x": 100.5,
"position_y": 200.3,
"status": "clear",
"visible": true,
"description": "Trade hub",
"tag": "TRADE",
"locked": false,
"labels": ["market", "highsec"],
"map_id": "<MAP_UUID>"
}
],
"connections": [
{
"id": "<CONNECTION_UUID>",
"solar_system_source": 30000142,
"solar_system_target": 30000144,
"type": 0,
"mass_status": 0,
"time_status": 0,
"ship_size_type": 1,
"wormhole_type": "K162",
"count_of_passage": 0,
"locked": false,
"custom_info": "Fresh hole"
}
]
}
}
2. Show Single System
GET /api/maps/:map_identifier/systems/:id
- Description: Retrieves details for a specific system.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the system’s solar_system_id.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/systems/30000142"
Example Response
{
"data": {
"id": "<SYSTEM_UUID>",
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"position_x": 100.5,
"position_y": 200.3,
"status": "clear",
"visible": true,
"description": "Trade hub",
"tag": "TRADE",
"locked": false,
"labels": ["market", "highsec"],
"map_id": "<MAP_UUID>"
}
}
3. Create/Update System
POST /api/maps/:map_identifier/systems
PUT /api/maps/:map_identifier/systems/:id
- Description: Creates a new system or updates an existing one.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required for PUT) — the system’s solar_system_id.
-
Example Create Request
curl -X POST \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"position_x": 100.5,
"position_y": 200.3,
"status": "clear",
"visible": true,
"description": "Trade hub",
"tag": "TRADE",
"locked": false,
"labels": ["market", "highsec"]
}' \
"https://wanderer.example.com/api/maps/your-map-slug/systems"
Example Update Request
curl -X PUT \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"status": "hostile",
"description": "Hostiles reported",
"tag": "DANGER"
}' \
"https://wanderer.example.com/api/maps/your-map-slug/systems/30000142"
4. Delete System
DELETE /api/maps/:map_identifier/systems/:id
- Description: Deletes a specific system and its associated connections.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the system’s solar_system_id.
-
Example Request
curl -X DELETE \
-H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/systems/30000142"
5. Batch Delete Systems
DELETE /api/maps/:map_identifier/systems
- Description: Deletes multiple systems and their connections in a single operation.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -X DELETE \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"system_ids": [30000142, 30000144, 30000145]
}' \
"https://wanderer.example.com/api/maps/your-map-slug/systems"
Connections Endpoints
1. List Connections
GET /api/maps/:map_identifier/connections
- Description: Retrieves all connections for the specified map.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/connections"
Example Response
{
"data": [
{
"id": "<CONNECTION_UUID>",
"solar_system_source": 30000142,
"solar_system_target": 30000144,
"type": 0,
"mass_status": 0,
"time_status": 0,
"ship_size_type": 1,
"wormhole_type": "K162",
"count_of_passage": 0,
"locked": false,
}
]
}
2. Create Connection
POST /api/maps/:map_identifier/connections
- Description: Creates a new connection between two systems.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -X POST \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"solar_system_source": 30000142,
"solar_system_target": 30000144,
"type": 0,
"mass_status": 0,
"time_status": 0,
"ship_size_type": 1,
"locked": false,
}' \
"https://wanderer.example.com/api/maps/your-map-slug/connections"
3. Update Connection
PATCH /api/maps/:map_identifier/connections
- Description: Updates an existing connection’s properties.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
Query parameters:
-
solar_system_source(required) — source system ID -
solar_system_target(required) — target system ID
-
-
Example Request
curl -X PATCH \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"mass_status": 1,
"time_status": 1,
}' \
"https://wanderer.example.com/api/maps/your-map-slug/connections?solar_system_source=30000142&solar_system_target=30000144"
4. Delete Connection
DELETE /api/maps/:map_identifier/connections
- Description: Deletes a connection between two systems.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
Query parameters:
-
solar_system_source(required) — source system ID -
solar_system_target(required) — target system ID
-
-
Example Request
curl -X DELETE \
-H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/connections?solar_system_source=30000142&solar_system_target=30000144"
Batch Operations
1. Batch Upsert Systems and Connections
POST /api/maps/:map_identifier/systems
- Description: Creates or updates multiple systems and connections in a single operation.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -X POST \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"systems": [
{
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"position_x": 100.5,
"position_y": 200.3,
"status": "clear"
},
{
"solar_system_id": 30000144,
"solar_system_name": "Perimeter",
"position_x": 150.5,
"position_y": 250.3,
"status": "clear"
}
],
"connections": [
{
"solar_system_source": 30000142,
"solar_system_target": 30000144,
"type": 0,
"mass_status": 0,
"ship_size_type": 1
}
]
}' \
"https://wanderer.example.com/api/maps/your-map-slug/systems"
Example Response
{
"data": {
"systems": {
"created": 2,
"updated": 0
},
"connections": {
"created": 1,
"updated": 0,
"deleted": 0
}
}
}
The response includes counts for:
- Systems created and updated
- Connections created, updated, and deleted (if any)
Note: The deleted count in connections will be 0 for batch operations as deletion is handled through separate endpoints.
Practical Examples
Backup and Restore Map State
We provide a utility script that demonstrates how to use these endpoints to backup and restore your map state:
#!/bin/bash
# backup_restore_test.sh
# 1. Backup current state
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/systems" \
> map_backup.json
# 2. Delete everything (after confirmation)
read -p "Delete all systems? (y/N) " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
# Get system IDs
systems=$(cat map_backup.json | jq -r '.data.systems[].solar_system_id')
# Create deletion payload
payload=$(jq -n --argjson ids "$(echo "$systems" | jq -R . | jq -s .)" \
'{system_ids: $ids}')
# Delete all systems
curl -X DELETE \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d "$payload" \
"https://wanderer.example.com/api/maps/your-map-slug/systems"
fi
# 3. Restore from backup (after confirmation)
read -p "Restore from backup? (y/N) " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
# Extract systems and connections
backup_data=$(cat map_backup.json)
systems=$(echo "$backup_data" | jq '.data.systems')
connections=$(echo "$backup_data" | jq '.data.connections')
# Create restore payload
payload="{\"systems\": $systems, \"connections\": $connections}"
# Restore everything
curl -X POST \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d "$payload" \
"https://wanderer.example.com/api/maps/your-map-slug/systems"
fi
This script demonstrates a practical application of the batch operations endpoints for backing up and restoring map data.
Structures Endpoints
1. List Structures
GET /api/maps/:map_identifier/structures
- Description: Retrieves all structures for the specified map.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/structures"
Example Response
{
"data": [
{
"id": "<STRUCTURE_UUID>",
"system_id": "<SYSTEM_UUID>",
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"structure_type_id": "35832",
"structure_type": "Astrahus",
"character_eve_id": "123456789",
"name": "Jita Trade Hub",
"notes": "Main market structure",
"owner_name": "Wanderer Corp",
"owner_ticker": "WANDR",
"owner_id": "corp-uuid-1",
"status": "anchoring",
"end_time": "2025-05-01T12:00:00Z",
"inserted_at": "2025-04-30T10:00:00Z",
"updated_at": "2025-04-30T10:00:00Z"
}
]
}
2. Show Structure
GET /api/maps/:map_identifier/structures/:id
- Description: Retrieves details for a specific structure.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the structure’s UUID.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/structures/<STRUCTURE_UUID>"
Example Response
{
"data": {
"id": "<STRUCTURE_UUID>",
"system_id": "<SYSTEM_UUID>",
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"structure_type_id": "35832",
"structure_type": "Astrahus",
"character_eve_id": "123456789",
"name": "Jita Trade Hub",
"notes": "Main market structure",
"owner_name": "Wanderer Corp",
"owner_ticker": "WANDR",
"owner_id": "corp-uuid-1",
"status": "anchoring",
"end_time": "2025-05-01T12:00:00Z",
"inserted_at": "2025-04-30T10:00:00Z",
"updated_at": "2025-04-30T10:00:00Z"
}
}
3. Create Structure
POST /api/maps/:map_identifier/structures
- Description: Creates a new structure.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -X POST \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"structure_type_id": "35832",
"structure_type": "Astrahus",
"character_eve_id": "123456789",
"name": "Jita Trade Hub",
"notes": "Main market structure",
"owner_name": "Wanderer Corp",
"owner_ticker": "WANDR",
"owner_id": "corp-uuid-1",
"status": "anchoring",
"end_time": "2025-05-01T12:00:00Z"
}' \
"https://wanderer.example.com/api/maps/your-map-slug/structures"
Example Response
{
"data": {
"id": "<STRUCTURE_UUID>",
"system_id": "<SYSTEM_UUID>",
"solar_system_id": 30000142,
"solar_system_name": "Jita",
"structure_type_id": "35832",
"structure_type": "Astrahus",
"character_eve_id": "123456789",
"name": "Jita Trade Hub",
"notes": "Main market structure",
"owner_name": "Wanderer Corp",
"owner_ticker": "WANDR",
"owner_id": "corp-uuid-1",
"status": "anchoring",
"end_time": "2025-05-01T12:00:00Z",
"inserted_at": "2025-04-30T10:00:00Z",
"updated_at": "2025-04-30T10:00:00Z"
}
}
4. Update Structure
PUT /api/maps/:map_identifier/structures/:id
- Description: Updates an existing structure.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the structure’s UUID.
-
Example Request
curl -X PUT \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"status": "anchored",
"notes": "Updated via API"
}' \
"https://wanderer.example.com/api/maps/your-map-slug/structures/<STRUCTURE_UUID>"
Example Response
{
"data": {
"id": "<STRUCTURE_UUID>",
"status": "anchored",
"notes": "Updated via API"
// ... other fields ...
}
}
5. Delete Structure
DELETE /api/maps/:map_identifier/structures/:id
- Description: Deletes a specific structure.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the structure’s UUID.
-
Example Request
curl -X DELETE \
-H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/structures/<STRUCTURE_UUID>"
Signatures Endpoints
1. List Signatures
GET /api/maps/:map_identifier/signatures
- Description: Retrieves all signatures for the specified map.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/signatures"
Example Response
{
"data": [
{
"id": "<SIGNATURE_UUID>",
"system_id": "<SYSTEM_UUID>",
"eve_id": "ABC-123",
"name": "Wormhole K162",
"description": "Leads to unknown space",
"type": "Wormhole",
"linked_system_id": 30000144,
"kind": "cosmic_signature",
"group": "wormhole",
"custom_info": "Fresh",
"solar_system_id": 31001394,
"solar_system_name": "J214811",
"character_eve_id": "123456789",
"inserted_at": "2025-04-30T10:00:00Z",
"updated_at": "2025-04-30T10:00:00Z"
}
]
}
2. Show Signature
GET /api/maps/:map_identifier/signatures/:id
- Description: Retrieves details for a specific signature.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the signature’s UUID.
-
Example Request
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/signatures/<SIGNATURE_UUID>"
Example Response
{
"data": {
"id": "<SIGNATURE_UUID>",
"system_id": "<SYSTEM_UUID>",
"eve_id": "ABC-123",
"name": "Wormhole K162",
"description": "Leads to unknown space",
"type": "Wormhole",
"linked_system_id": 30000144,
"kind": "cosmic_signature",
"group": "wormhole",
"custom_info": "Fresh",
"solar_system_id": 31001394,
"solar_system_name": "J214811",
"character_eve_id": "123456789",
"inserted_at": "2025-04-30T10:00:00Z",
"updated_at": "2025-04-30T10:00:00Z"
}
}
3. Create Signature
POST /api/maps/:map_identifier/signatures
- Description: Creates a new signature.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID.
-
Example Request
curl -X POST \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"eve_id": "ABC-123",
"name": "Wormhole K162",
"description": "Leads to unknown space",
"type": "Wormhole",
"linked_system_id": 30000144,
"kind": "cosmic_signature",
"group": "wormhole",
"custom_info": "Fresh",
"solar_system_id": 31001394,
"solar_system_name": "J214811"
}' \
"https://wanderer.example.com/api/maps/your-map-slug/signatures"
Example Response
{
"data": {
"id": "<SIGNATURE_UUID>",
"eve_id": "ABC-123",
"name": "Wormhole K162",
"description": "Leads to unknown space",
"type": "Wormhole",
"linked_system_id": 30000144,
"kind": "cosmic_signature",
"group": "wormhole",
"custom_info": "Fresh",
"solar_system_id": 31001394,
"solar_system_name": "J214811",
"character_eve_id": "123456789",
"inserted_at": "2025-04-30T10:00:00Z",
"updated_at": "2025-04-30T10:00:00Z"
}
}
4. Update Signature
PUT /api/maps/:map_identifier/signatures/:id
- Description: Updates an existing signature.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the signature’s UUID.
-
Example Request
curl -X PUT \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated via API",
"custom_info": "Updated info"
}' \
"https://wanderer.example.com/api/maps/your-map-slug/signatures/<SIGNATURE_UUID>"
Example Response
{
"data": {
"id": "<SIGNATURE_UUID>",
"description": "Updated via API",
"custom_info": "Updated info"
// ... other fields ...
}
}
5. Delete Signature
DELETE /api/maps/:map_identifier/signatures/:id
- Description: Deletes a specific signature.
- Authentication: Requires Map API Token.
-
Parameters:
-
map_identifier(required) — the map’s slug or UUID. -
id(required) — the signature’s UUID.
-
Example Request
curl -X DELETE \
-H "Authorization: Bearer <YOUR_TOKEN>" \
"https://wanderer.example.com/api/maps/your-map-slug/signatures/<SIGNATURE_UUID>"
Conclusion
These endpoints provide powerful tools for managing your map’s systems and connections programmatically. Key features include:
- Individual system and connection management
- Efficient batch operations
- Flexible update options
- Robust error handling
- Consistent response formats
For the most up-to-date and interactive documentation, remember to check the Swagger UI at /swaggerui.
If you have questions about these endpoints or need assistance, please reach out to the Wanderer Team.
Fly safe, The Wanderer Team