Skip to content

Rate limits

Rate limits protect the game servers and are shared across endpoints in the same bucket. Standard HTTP rate limits are applied per IP address. The Game Assistant daily limit is applied per account.

When a limit is exceeded, the API returns HTTP 429 Too Many Requests.

Type/second/minute/hour/day
account10-300-
data102002,000-
action101005,000-
simulation1---
assistant---25

The assistant limit is available to members only and can be changed independently from the standard API limits.

Use GET /my/rates to retrieve the current rate limit windows for your IP and account.

curl --request GET \
--url https://api.artifactsmmo.com/my/rates \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN'

The response contains:

FieldDescription
accountCurrent second and hour windows for account endpoints.
dataCurrent second, minute, and hour windows for data endpoints.
actionCurrent second, minute, and hour windows for character actions.
simulationCurrent second window for the Fight Simulator.
assistantCurrent daily Game Assistant usage for members; null for non-members.

Each available window contains:

FieldDescription
limitMaximum requests allowed during the window.
remainingRequests remaining during the current window.
resetUTC datetime when the window resets.

The public GET / server status endpoint also exposes the configured account, token, data, and action limits. The token limit uses the same values as the account bucket.


These endpoints share the account rate limit.

MethodEndpoint
POST/accounts/create
POST/accounts/forgot_password
POST/accounts/reset_password
POST/characters/create
POST/characters/delete
POST/token
POST/my/change_password
POST/my/change_email
MethodEndpoint
POST/my/buy_subscription
POST/my/subscribe/cancel
POST/my/buy_gems
GET/my/rates
POST/gems_shop/skin
POST/gems_shop/spawn_event
POST/gems_shop/subscription
MethodEndpoint
POST/game_assistant/ask

POST /game_assistant/ask consumes the account bucket and the separate member-only assistant daily limit.


These endpoints share the data rate limit.

MethodEndpoint
GET/
GET/my/bank
GET/my/bank/items
GET/my/grandexchange/orders
GET/my/grandexchange/history
GET/my/details
GET/my/pending_items
GET/my/subscription
GET/my/purchase_history
GET/my/gems_history
GET/my/logs
GET/my/logs/{name}
GET/my/characters
MethodEndpoint
GET/accounts/{account}
GET/accounts/{account}/characters
GET/accounts/{account}/achievements
GET/characters/active
GET/characters/{name}
GET/characters/{name}/stats
MethodEndpoint
GET/achievements
GET/achievements/{code}
GET/badges
GET/badges/{code}
GET/skins
GET/skins/{code}
GET/season_rewards
GET/season_rewards/{code}
GET/effects
GET/effects/{code}
GET/events
GET/events/active
GET/grandexchange/history/{code}
GET/grandexchange/orders
GET/grandexchange/orders/{id}
GET/items
GET/items/{code}
GET/leaderboard/characters
GET/leaderboard/accounts
GET/maps
GET/maps/{layer}
GET/maps/{layer}/{x}/{y}
GET/maps/id/{map_id}
GET/monsters
GET/monsters/{code}
GET/npcs/details
GET/npcs/details/{code}
GET/npcs/items
GET/npcs/items/{code}
GET/raids
GET/raids/{code}
GET/raids/{code}/leaderboard
GET/resources
GET/resources/{code}
GET/tasks/list
GET/tasks/list/{code}
GET/tasks/rewards
GET/tasks/rewards/{code}
GET/gems_shop/
GET/payment/success
GET/payment/cancelled

These endpoints share the action rate limit.

MethodEndpoint
POST/my/{name}/action/move
POST/my/{name}/action/transition
POST/my/{name}/action/rest
POST/my/{name}/action/equip
POST/my/{name}/action/unequip
POST/my/{name}/action/use
POST/my/{name}/action/fight
POST/my/{name}/action/gathering
POST/my/{name}/action/crafting
POST/my/{name}/action/recycling
POST/my/{name}/action/bank/deposit/item
POST/my/{name}/action/bank/deposit/gold
POST/my/{name}/action/bank/withdraw/item
POST/my/{name}/action/bank/withdraw/gold
POST/my/{name}/action/bank/buy_expansion
POST/my/{name}/action/npc/buy
POST/my/{name}/action/npc/sell
POST/my/{name}/action/grandexchange/buy
POST/my/{name}/action/grandexchange/create_sell_order
POST/my/{name}/action/grandexchange/cancel
POST/my/{name}/action/grandexchange/create_buy_order
POST/my/{name}/action/grandexchange/fill
POST/my/{name}/action/task/new
POST/my/{name}/action/task/complete
POST/my/{name}/action/task/cancel
POST/my/{name}/action/task/exchange
POST/my/{name}/action/task/trade
POST/my/{name}/action/give/gold
POST/my/{name}/action/give/item
POST/my/{name}/action/claim_item/{id}
POST/my/{name}/action/change_skin
POST/my/{name}/action/delete
MethodEndpoint
POST/sandbox/give_item
POST/sandbox/give_gold
POST/sandbox/give_xp
POST/sandbox/spawn_event
POST/sandbox/reset_account

The Fight Simulator has its own simulation bucket.

MethodEndpoint
POST/simulation/fight

MethodEndpoint
POST/webhooks/stripe

This is an internal Stripe webhook endpoint. It is not intended for game API clients and does not use one of the standard shared rate limit buckets.