Getting Started
The Endless Memories API provides read-only access to game data. All requests use HTTP GET and return JSON responses.
Base URL
https://api.endless-memories.net/
Quick Example
curl https://api.endless-memories.net/item/1
{
"id": 1,
"name": "Gold",
"type": { "id": 2, "name": "Currency" },
...
}
Authentication
No authentication is required. The API is publicly accessible for all read operations.
Rate Limiting
To ensure fair usage, the API implements rate limiting:
- 60 requests per 60 seconds per IP address
Rate Limit Headers
| Header |
Description |
X-RateLimit-Limit |
Maximum requests per window |
X-RateLimit-Remaining |
Requests remaining in current window |
X-RateLimit-Reset |
Unix timestamp when the window resets |
Endpoints
Server Information
GET
/status
Returns server status, bonuses, and staff list.
Response Fields
| Field | Type | Description |
server_online | boolean | Server availability |
server_time | string | ISO 8601 timestamp |
bonuses.double_exp_weekend_active | boolean | Double EXP status |
bonuses.player_exp_bonus | integer | Online player bonus % |
bonuses.total_exp_bonus | integer | Combined EXP bonus % |
staff | array | List of staff members |
GET
/online
Returns online player count and list.
GET
/news
Returns server news and welcome message.
GET
/download
Returns latest client download information.
Items
GET
/item/{id}
Returns detailed information about a specific item.
| Parameter | Type | Description |
id | integer | Required Item ID |
GET
/item/search
Search for items by name or filter by type.
| Parameter | Type | Description |
q | string | Optional Search query (min 3 chars) |
type | string | Optional Filter by type |
Valid Item Types
currency, heal, teleport, spell, exp_reward, stat_reward, skill_reward, weapon, shield, armor, hat, boots, gloves, accessory, belt, necklace, ring, armlet, bracer, wings, back, alcohol, effect, hairdye, curseremoval
NPCs
GET
/npc/{id}
Returns detailed information about a specific NPC.
GET
/npc/search
Search for NPCs by name or filter by type.
| Parameter | Type | Description |
q | string | Optional Search query (min 3 chars) |
type | string | Optional Filter by type |
Valid NPC Types
friendly, passive, aggressive, shop, inn, skill, quest, law, bank, barber, guild, priest, monster
Classes
GET
/class/{id}
Returns detailed class information including stats and formulas.
GET
/class/search
Search for classes by name or filter by type.
Valid Class Types
melee, paladin, magical, archer, peasant, priest
Spells
GET
/spell/{id}
Returns detailed spell information including damage, effects, and trainers.
GET
/spell/search
Search for spells by name, type, or element.
| Parameter | Type | Description |
q | string | Optional Search query (min 3 chars) |
type | string | Optional heal, damage, passive, support |
element | string | Optional light, dark, earth, wind, water, fire |
Maps
GET
/map/{id}
Returns detailed map information including NPCs, items, and warps.
GET
/map/search
Search for maps with various filters.
| Parameter | Type | Description |
q | string | Optional Search by name (min 3 chars) |
pk | boolean | Optional Filter by PK enabled |
hazard | string | Optional poison, vortex, quake1-4 |
has_npc_id | integer | Optional Maps with specific NPC |
has_item_id | integer | Optional Maps with specific item |
has_quests | boolean | Optional Maps with quest NPCs |
Leaderboards
All leaderboard endpoints return the top 100 entries.
GET
/leaderboard/level
Top 100 players sorted by experience.
GET
/leaderboard/quests
Top 100 players sorted by completed quests.
GET
/leaderboard/wealth
Top 100 players sorted by total gold.
GET
/leaderboard/playtime
Top 100 players sorted by playtime.
GET
/leaderboard/guilds
Top 100 guilds sorted by total member experience.
Leaderboard Response Fields
| Field | Description |
rank | Position on leaderboard |
name | Character/Guild name |
*_formatted | Human-readable formatted values |
Response Format
All responses are JSON. HTTP status codes indicate success (200) or failure (4xx/5xx).
Success Response (HTTP 200)
{
"id": 1,
"name": "Gold",
"type": { "id": 2, "name": "Currency" },
// ... response data at root level
}
Error Response (HTTP 4xx/5xx)
{
"error": {
"message": "Human-readable error message",
"code": "ERROR_CODE"
}
}
Error Handling
The API uses standard HTTP status codes and returns detailed error information.
HTTP Status Codes
| Code | Description |
200 | Success |
400 | Bad Request - Invalid parameters |
404 | Not Found - Resource doesn't exist |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error |
Error Codes
| Code | Description |
NOT_FOUND | Requested resource not found |
INVALID_ID | Invalid ID format |
INVALID_QUERY | Search query too short (min 3 chars) |
INVALID_TYPE | Invalid type filter value |
MISSING_PARAMS | Required parameters missing |
RATE_LIMIT_EXCEEDED | Too many requests |
INTERNAL_ERROR | Server error occurred |
Code Examples
JavaScript (Fetch)
// Get item by ID
const response = await fetch('https://api.endless-memories.net/item/1');
if (response.ok) {
const item = await response.json();
console.log(`Item: ${item.name}`);
console.log(`Type: ${item.type.name}`);
}
// Search for items
const searchResponse = await fetch(
'https://api.endless-memories.net/item/search?q=sword&type=weapon'
);
if (searchResponse.ok) {
const data = await searchResponse.json();
data.items.forEach(item => {
console.log(`${item.id}: ${item.name}`);
});
}
Python (Requests)
import requests
# Get item details
response = requests.get('https://api.endless-memories.net/item/1')
if response.ok:
item = response.json()
print(f"Item: {item['name']}")
print(f"Type: {item['type']['name']}")
# Search for items
response = requests.get(
'https://api.endless-memories.net/item/search',
params={'q': 'sword', 'type': 'weapon'}
)
if response.ok:
data = response.json()
for item in data['items']:
print(f"{item['id']}: {item['name']}")
cURL
# Get server status
curl https://api.endless-memories.net/status
# Get item by ID
curl https://api.endless-memories.net/item/1
# Search for fire spells
curl "https://api.endless-memories.net/spell/search?type=damage&element=fire"
# Get top players
curl https://api.endless-memories.net/leaderboard/level