Grand Exchange
The Grand Exchange lets you buy and sell items with other players through sell orders and buy orders. To interact with the Grand Exchange, your character must be on a map containing a Grand Exchange. For more information about maps, see Maps and Movement.
Browse orders
Section titled “Browse orders”You can browse all active orders (sell and buy) using the following request. Use the type parameter to filter by order type, and code to filter by item.
Endpoint: GET /grandexchange/orders
curl --request GET \--url 'https://api.artifactsmmo.com/grandexchange/orders?code={ITEM_CODE}&type=sell' \--header 'Accept: application/json' \--header 'Content-Type: application/json'const url = 'https://api.artifactsmmo.com/grandexchange/orders?code={ITEM_CODE}&type=sell';const options = {method: 'GET',headers: { Accept: 'application/json', 'Content-Type': 'application/json'}};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/grandexchange/orders"headers = { "Accept": "application/json", "Content-Type": "application/json"}params = {"code": "ITEM_CODE", "type": "sell"}
response = requests.get(url, headers=headers, params=params)print(response.json())| Parameter | Description |
|---|---|
code | Filter by item code. |
type | Filter by order type: sell or buy. |
account | Filter by account (requires type to be specified). |
Sales history
Section titled “Sales history”To consult an item’s sales history over the last 7 days, use the following request:
Endpoint: GET /grandexchange/history/{code}
curl --request GET \--url 'https://api.artifactsmmo.com/grandexchange/history/{ITEM_CODE}' \--header 'Accept: application/json' \--header 'Content-Type: application/json'const url = 'https://api.artifactsmmo.com/grandexchange/history/{ITEM_CODE}';const options = {method: 'GET',headers: { Accept: 'application/json', 'Content-Type': 'application/json'}};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/grandexchange/history/{ITEM_CODE}"headers = { "Accept": "application/json", "Content-Type": "application/json"}
response = requests.get(url, headers=headers)print(response.json())Sell Orders
Section titled “Sell Orders”Create a sell order
Section titled “Create a sell order”To put items up for sale, use the following request. The items are removed from your inventory when the order is created.
Endpoint: POST /my/{name}/action/grandexchange/sell
curl --request POST \--url https://api.artifactsmmo.com/my/{name}/action/grandexchange/create-sell-order \--header 'Accept: application/json' \--header 'Authorization: Bearer YOUR_TOKEN' \--header 'Content-Type: application/json' \--data '{"code": "iron_sword","quantity": 5,"price": 100}'const url = 'https://api.artifactsmmo.com/my/{name}/action/grandexchange/create-sell-order';const options = {method: 'POST',headers: { 'Content-Type': 'application/json', Accept: 'application/json', Authorization: 'Bearer YOUR_TOKEN'},body: JSON.stringify({ code: "iron_sword", quantity: 5, price: 100 })};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/my/{name}/action/grandexchange/create-sell-order"headers = { "Accept": "application/json", "Content-Type": "application/json", "Authorization": "Bearer YOUR_TOKEN"}data = {"code": "iron_sword", "quantity": 5, "price": 100}
response = requests.post(url, json=data, headers=headers)print(response.json())| Field | Description |
|---|---|
code | The item code to sell. |
quantity | Number of items to sell (1–100). |
price | Price per unit. |
Buy from a sell order
Section titled “Buy from a sell order”To buy items from an existing sell order, first browse the sell orders to find the order ID, then use the following request:
Endpoint: POST /my/{name}/action/grandexchange/buy
curl --request POST \--url https://api.artifactsmmo.com/my/{name}/action/grandexchange/buy \--header 'Accept: application/json' \--header 'Authorization: Bearer YOUR_TOKEN' \--header 'Content-Type: application/json' \--data '{"id": "ORDER_ID","quantity": 1}'const url = 'https://api.artifactsmmo.com/my/{name}/action/grandexchange/buy';const options = {method: 'POST',headers: { 'Content-Type': 'application/json', Accept: 'application/json', Authorization: 'Bearer YOUR_TOKEN'},body: JSON.stringify({ id: "ORDER_ID", quantity: 1 })};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/my/{name}/action/grandexchange/buy"headers = { "Accept": "application/json", "Content-Type": "application/json", "Authorization": "Bearer YOUR_TOKEN"}data = {"id": "ORDER_ID", "quantity": 1}
response = requests.post(url, json=data, headers=headers)print(response.json())| Field | Description |
|---|---|
id | The sell order ID. |
quantity | Number of items to buy (1–100). |
The gold is deducted from your character and the items are added to your inventory immediately.
Buy Orders
Section titled “Buy Orders”Buy orders let you place a standing offer to purchase items at a specific price. Other players can then fill your order by selling their items to it.
Create a buy order
Section titled “Create a buy order”Endpoint: POST /my/{name}/action/grandexchange/create-buy-order
curl --request POST \--url https://api.artifactsmmo.com/my/{name}/action/grandexchange/create-buy-order \--header 'Accept: application/json' \--header 'Authorization: Bearer YOUR_TOKEN' \--header 'Content-Type: application/json' \--data '{"code": "iron_ore","quantity": 50,"price": 20}'const url = 'https://api.artifactsmmo.com/my/{name}/action/grandexchange/create-buy-order';const options = {method: 'POST',headers: { 'Content-Type': 'application/json', Accept: 'application/json', Authorization: 'Bearer YOUR_TOKEN'},body: JSON.stringify({ code: "iron_ore", quantity: 50, price: 20 })};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/my/{name}/action/grandexchange/create-buy-order"headers = { "Accept": "application/json", "Content-Type": "application/json", "Authorization": "Bearer YOUR_TOKEN"}data = {"code": "iron_ore", "quantity": 50, "price": 20}
response = requests.post(url, json=data, headers=headers)print(response.json())| Field | Description |
|---|---|
code | The item code you want to buy. |
quantity | Number of items you want to buy (1–100). |
price | The price per unit you are willing to pay. |
Fill a buy order
Section titled “Fill a buy order”To sell your items to an existing buy order, use the following request. The items are removed from your inventory and you receive the gold immediately.
Endpoint: POST /my/{name}/action/grandexchange/fill
curl --request POST \--url https://api.artifactsmmo.com/my/{name}/action/grandexchange/fill \--header 'Accept: application/json' \--header 'Authorization: Bearer YOUR_TOKEN' \--header 'Content-Type: application/json' \--data '{"id": "BUY_ORDER_ID","quantity": 10}'const url = 'https://api.artifactsmmo.com/my/{name}/action/grandexchange/fill';const options = {method: 'POST',headers: { 'Content-Type': 'application/json', Accept: 'application/json', Authorization: 'Bearer YOUR_TOKEN'},body: JSON.stringify({ id: "BUY_ORDER_ID", quantity: 10 })};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/my/{name}/action/grandexchange/fill"headers = { "Accept": "application/json", "Content-Type": "application/json", "Authorization": "Bearer YOUR_TOKEN"}data = {"id": "BUY_ORDER_ID", "quantity": 10}
response = requests.post(url, json=data, headers=headers)print(response.json())| Field | Description |
|---|---|
id | The buy order ID. |
quantity | Number of items to sell to the order (1–100). |
Cancel an order
Section titled “Cancel an order”You can cancel any of your active orders (sell or buy). To find an order to cancel, first check your orders list.
Endpoint: POST /my/{name}/action/grandexchange/cancel
curl --request POST \--url https://api.artifactsmmo.com/my/{name}/action/grandexchange/cancel \--header 'Accept: application/json' \--header 'Authorization: Bearer YOUR_TOKEN' \--header 'Content-Type: application/json' \--data '{"id": "ORDER_ID"}'const url = 'https://api.artifactsmmo.com/my/{name}/action/grandexchange/cancel';const options = {method: 'POST',headers: { 'Content-Type': 'application/json', Accept: 'application/json', Authorization: 'Bearer YOUR_TOKEN'},body: JSON.stringify({ id: "ORDER_ID" })};
try {const response = await fetch(url, options);const data = await response.json();console.log(data);} catch (error) {console.error(error);}import requests
url = "https://api.artifactsmmo.com/my/{name}/action/grandexchange/cancel"headers = { "Accept": "application/json", "Content-Type": "application/json", "Authorization": "Bearer YOUR_TOKEN"}data = {"id": "ORDER_ID"}
response = requests.post(url, json=data, headers=headers)print(response.json())- Cancelling a sell order: the items are returned to your character’s inventory (requires space).
- Cancelling a buy order: the gold is refunded to your character.