auciel
auciel is a wrapper for the black desert central market api. its purpose is to enable developers to get data from the market more easily, without having to figure out the strict (and odd) request structures required for the raw central market api.
built with the tsurezure framework.
usage
installing from rubygems
source 'https://rubygems.org'
gem 'auciel'
require 'auciel'
server = Auciel.new 8888
server.listen
or
gem install auciel
executable
coming soon
using source code
download this repo. then, in your ruby script:
require_relative 'path/to/lib/auciel'
server = Auciel.new 8888
server.listen
you can also just run ruby main.rb
in the root directory and a server will start at localhost:8888
.
endpoints
- get item by id
- get item by category
- search for an item
- get prices by item id
- get list of popular items
- get market waitlist
/item/:id
retrieves information about an item based on its id. equivalent to GetWorldMarketSubList
in the raw api. example:
GET https://localhost:8888/item/702
{
"data": [
{
"pricePerOne": 10700,
"totalTradeCount": 14269193,
"keyType": 0,
"mainKey": 702,
"subKey": 0,
"count": 0,
"name": "Elixir of Will",
"grade": 1,
"mainCategory": 35,
"subCategory": 2,
"chooseKey": 0,
"isGodrAyed": false
}
]
}
/item/:cat/:sub
retrieves a list of items in a category and subcategory. equivalent to GetWorldMarketList
in the raw api. example:
GET https://localhost:8888/item/35/1
{
"data": [
{
"mainKey": 504,
"sumCount": 0,
"name": "Melee AP Enhancer",
"grade": 0,
"isGodrAyed": false,
"minPrice": 93500,
"id": 504
},
{
"mainKey": 505,
"sumCount": 0,
"name": "Ranged AP Enhancer",
"grade": 0,
"isGodrAyed": false,
"minPrice": 93500,
"id": 505
},
...
/search?q=<search text>
retrieves a list of items whose names match the provided url encoded search string. equivalent to GetWorldMarketSearchList
in the raw api. example:
GET http://localhost:8888/search?q=blood
{
"data": [
{
"mainKey": 3040,
"sumCount": 1,
"totalSumCount": 77500000,
"name": "Muskan's Bloody Steel Helmet",
"grade": 2,
"isGodrAyed": false,
"id": 3040
},
{
"mainKey": 4453,
"sumCount": 2674,
"totalSumCount": 236000,
"name": "Blood Ruby",
"grade": 0,
"isGodrAyed": false,
"id": 4453
},
{
"mainKey": 5005,
"sumCount": 30309,
"totalSumCount": 19000,
"name": "Bloody Tree Knot",
"grade": 0,
"isGodrAyed": false,
"id": 5005
},
...
/prices/:id
retrieves a detailed price list for a specified item id. equivalent to GetItemSellBuyInfo
in the raw api, and similar to GetBiddingInfoList
. example:
GET http://localhost:8888/prices/702
{
"data": {
"pricePoints": [
13500,
13600,
13700,
13800,
13900,
14000,
14100,
14200,
14300,
14400,
14500,
14600
],
"buySellCounts": [
{
"sellCount": 0,
"buyCount": 0,
"pricePerOne": 12500
},
{
"sellCount": 0,
"buyCount": 0,
"pricePerOne": 12600
},
{
"sellCount": 0,
"buyCount": 0,
"pricePerOne": 12700
},
...
/hot
retrieves a list of currently popular items. equivalent to GetWorldMarketHotList
in the raw api. example:
GET http://localhost:8888/hot
{
"data": [
{
"subtype": 0,
"pricePerOne": 66000,
"totalTradeCount": 340891,
"fluctuationType": 2,
"fluctuationPrice": 12500,
"keyType": 0,
"mainKey": 641,
"subKey": 0,
"count": 0,
"name": "[Party] Elixir of Fury",
"grade": 1,
"mainCategory": 35,
"subCategory": 0,
"chooseKey": 0,
"isGodrAyed": false,
"id": 641,
"fluctuationDirection": "up"
},
{
"subtype": 0,
"pricePerOne": 47800,
"totalTradeCount": 1780501,
"fluctuationType": 1,
"fluctuationPrice": 12200,
"keyType": 0,
"mainKey": 683,
"subKey": 0,
"count": 8446,
"name": "Surging Energy Elixir",
"grade": 2,
"mainCategory": 35,
"subCategory": 0,
"chooseKey": 0,
"isGodrAyed": false,
"id": 683,
"fluctuationDirection": "down"
},
...
/waitlist
retrieves a list of currently waitlisted items. equivalent to GetWorldMarketWaitList
in the raw api. example:
GET http://localhost:8888/waitlist
{
"data": [
{
"keyType": 0,
"mainKey": 11103,
"subKey": 0,
"count": 0,
"name": "Urugon's Shoes",
"grade": 3,
"mainCategory": 15,
"subCategory": 0,
"chooseKey": 20,
"isGodrAyed": false,
"id": 11103,
"waitEndTime": "2023-03-04T20:03:55+00:00",
"waitEndTimestampMs": 1677960235417,
"pricePerOne": 12400000000
},
{
"keyType": 0,
"mainKey": 12230,
"subKey": 0,
"count": 0,
"name": "Basilisk's Belt",
"grade": 3,
"mainCategory": 20,
"subCategory": 0,
"chooseKey": 5,
"isGodrAyed": false,
"id": 12230,
"waitEndTime": "2023-03-04T20:11:04+00:00",
"waitEndTimestampMs": 1677960664373,
"pricePerOne": 53000000000
},
...
item categories
here's a list of item types with their categories / subcategories for the item/:cat/:sub
endpoint. for example, you could retrieve a list of foods at item/35/4
.
item type | category | subcategories |
---|
main weapon | 1 | 1-20 |
sub-weapon | 5 | 1-18 |
awakening | 10 | 1-24 |
armor | 15 | 1-6 |
accessories | 20 | 1-4 |
lightstone | 85 | 1-5 |
material | 25 | 1-8 |
enhancement / upgrade | 30 | 1-2 |
consumables | 35 | 1-8 |
life tools | 40 | 1-10 |
alchemy stone | 45 | 1-4 |
magic crystal | 50 | 1-4 |
pearl item | 55 | 1-8 |
dye | 60 | 1-8 |
mount | 65 | 1-13 |
ship | 70 | 1-9 |
wagon | 75 | 1-6 |
furniture | 80 | 1-9 |
item grades
here's a list of item grades with their corresponding grade
numbers as returned from the api.
grade (border color) | number (grade ) |
---|
white | 0 |
green | 1 |
blue | 2 |
yellow | 3 |
orange | 4 |
other info
auciel is the name of the central market director at old wisdom tree.
stuff I don't know yet