RuneRank API
One API key supports both Community Events and Server Updates. The key identifies your server; the endpoint decides where your submission goes:
POST /api/v1/events→ the Community Event CalendarPOST /api/v1/server-updates→ Latest Updates on your server profile
This is optional — you can also submit events and post updates manually from your dashboard. Jump to Server Updates API.
1. Get a key
Open My Servers (or Manage Events), expand RuneRank API Integration and generate a key for your server. Existing keys already work for both features. The full key is shown once — store it as a secret on your server, never in a game client. Rotating or revoking a key disables the old one immediately.
2. Authentication
Authorization: Bearer YOUR_PRIVATE_API_KEY
Your server is identified from the key — you never send a server ID.
Community Events API
GET /api/v1/events— upcoming public events (no key). Optional?limit=(max 100) and?category=.GET /api/v1/events/{id}— one event (no key).POST /api/v1/events— create an event.PATCH /api/v1/events/{id}— update any fields of your event.DELETE /api/v1/events/{id}— cancel your event.
Create an event
POST https://runerank.com/api/v1/events
{
"title": "Double XP Weekend",
"category": "Skilling",
"description": "Double XP all weekend!",
"start_time": "2026-10-23T18:00:00Z",
"end_time": "2026-10-26T00:00:00Z"
}Optional fields: details (up to 3000 chars), image_url (https), recurrence (daily, weekly, monthly) with recurrence_until.
Categories: PvM, PvP, Skilling (Double XP), Giveaway, Seasonal, Launch, Community, Other.
201 Created
{ "data": { "id": "…", "slug": "double-xp-weekend-ab12cd", "status": "published",
"url": "https://runerank.com/events/double-xp-weekend-ab12cd", … } }Limits
- Up to 5 upcoming events (a repeating event counts once), scheduled at most 30 days ahead.
- Identical duplicate submissions are rejected.
- 30 event write requests per key per hour (separate from Server Updates).
Server Updates API
Publish game updates, new content, bug fixes and announcements to your server's RuneRank profile. Same key, same header. The server is always taken from your key — you can never post to another server.
GET /api/v1/server-updates?page=1— your published updates, 20 per page.POST /api/v1/server-updates— publish an update.PATCH /api/v1/server-updates/{id}— edit any field (doesn't use a daily slot).DELETE /api/v1/server-updates/{id}— delete an update.
Publish an update
POST https://runerank.com/api/v1/server-updates
Authorization: Bearer YOUR_PRIVATE_API_KEY
Content-Type: application/json
{
"title": "Theatre of Blood released",
"category": "new_content",
"description": "Raids 2 is now live with 3 new bosses and a new rewards chest.",
"published_at": "2026-10-18T18:00:00Z",
"image_url": "https://example.com/tob.png",
"changelog_url": "https://example.com/news/patch-142",
"external_id": "patch-142"
}- Required:
title(3–120 chars),description(10–2,000 chars, supports Markdown),category. - Categories:
game_update,new_content,bug_fix,event,announcement(labels like "Bug Fix" also work). - Optional:
published_at(ISO 8601, defaults to now, can't be in the future),image_urlandchangelog_url(https only, max 500 chars),external_id(up to 100 chars: letters, numbers,. _ - : /). - HTML is not supported; angle brackets and control characters are removed.
Formatting with Markdown
The description supports Markdown, both from the API and from the dashboard form. Use \n for new lines in JSON.
**bold**→ bold## Heading(or#,###) → a small section heading- itemor1. item→ bullet or numbered list[Patch notes](https://example.com/patch)→ link (http/https only, opens in a new tab)
{
"title": "Patch 142",
"category": "game_update",
"description": "## New content\n- **Raids 2** with 3 new bosses\n- New rewards chest\n\n## Fixes\n1. Fixed bank tab crash\n2. Fixed slayer task counts\n\nFull notes: [forum post](https://example.com/patch-142)"
}Raw HTML and images inside the description are not displayed — use image_url for a screenshot.
201 Created
{ "data": { "id": "6f1c…", "title": "Theatre of Blood released", "category": "new_content",
"description": "…", "published_at": "2026-10-18T18:00:00.000Z", "external_id": "patch-142",
"source": "api", "url": "https://runerank.com/server/your-server/updates" },
"duplicate": false }Preventing duplicates
Send your own stable external_id (e.g. your patch number). Re-sending the same external_id returns the existing update with 200 and "duplicate": true instead of creating a copy — safe for retries.
Edit and delete
PATCH https://runerank.com/api/v1/server-updates/6f1c…
{ "description": "Raids 2 is live. Hotfix: chest drop rates corrected." }
DELETE https://runerank.com/api/v1/server-updates/6f1c…
→ 200 { "data": { "id": "6f1c…", "deleted": true } }Limits
- 3 new updates per server per UTC day, website and API combined. Edits don't count; deleting doesn't free a slot.
- 20 Server Updates write requests per key per hour.
- Your profile shows the 3 newest; older updates stay in the paginated history.
Event vs. update — which endpoint?
Something players join at a set time (a giveaway, tournament, Double XP weekend) → /api/v1/events with start/end times. Something that changed in your game (patch notes, new content, fixes, news) → /api/v1/server-updates.
Revoking and rotating keys
Rotate or revoke from the RuneRank API Integration panel. The old key stops working immediately for both events and updates. Keys created before keys were tied to a server must be rotated before they can post updates.
Errors
401 unauthorized— missing, invalid or revoked key.403 forbidden— the key's owner no longer owns the listing, or the key isn't tied to a server.403 publishing_disabled— staff disabled updates for this server.429 daily_limit— 3 new updates already published today.404 not_found— event doesn't exist or isn't yours.409 locked— event is under staff review.422 validation_failed— seemessageorissues.429 rate_limited— slow down and retry later.
