/v1/history
Recent actual sale history for an item
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/ffxivmarket-api/v1/history" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/ffxivmarket-api/v1/history", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/ffxivmarket-api/v1/history");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/ffxivmarket-api/v1/history",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"note": "The recent sale history of item 5057 on 'Aether' — the actual trades that completed, newest first, each with its price per unit (gil), quantity, quality (HQ true/false), the buyer's world and when it sold. This is what the item really traded at, not just asking prices. Pass item_id, world and limit (1-50). Live, cached ~3m.",
"count": 20,
"sales": [
{
"hq": false,
"total": 147,
"sold_at": "2026-06-13T04:26:20.000Z",
"quantity": 1,
"buyer_world": "Gilgamesh",
"price_per_unit": 147
},
{
"hq": false,
"total": 201,
"sold_at": "2026-06-13T03:27:37.000Z",
"quantity": 1,
"buyer_world": "Midgardsormr",
"price_per_unit": 201
},
{
"hq": true,
"total": 1004,
"sold_at": "2026-06-13T03:17:07.000Z",
"quantity": 2,
"buyer_world": "Faerie",
"price_per_unit": 502
},
{
"hq": false,
"total": 499,
"sold_at": "2026-06-13T02:14:51.000Z",
"quantity": 1,
"buyer_world": "Faerie",
"price_per_unit": 499
},
{
"hq": false,
"total": 388,
"sold_at": "2026-06-13T01:59:43.000Z",
"quantity": 2,
"buyer_world": "Midgardsormr",
"price_per_unit": 194
},
{
"hq": true,
"total": 400,
"sold_at": "2026-06-13T01:51:05.000Z",
"quantity": 2,
"buyer_world": "Midgardsormr",
"price_per_unit": 200
},
{
"hq": true,
"total": 195,
"sold_at": "2026-06-13T01:51:03.000Z",
"quantity": 1,
"buyer_world": "Midgardsormr",
"price_per_unit": 195
},
{
"hq": false,
"total": 8800,
"sold_at": "2026-06-13T01:43:07.000Z",
"quantity": 88,
"buyer_world": "Cactuar",
"price_per_unit": 100
},
{
"hq": false,
"total": 3984,
"sold_at": "2026-06-13T00:53:27.000Z",
"quantity": 16,
"buyer_world": "Siren",
"price_per_unit": 249
},
{
"hq": true,
"total": 18330,
"sold_at": "2026-06-13T00:30:37.000Z",
"quantity": 47,
"buyer_world": "Sargatanas",
"price_per_unit": 390
},
{
"hq"
…