From: 15 Mar 2026, 15:40

Overview

Patrigios Market Analytics is a web application that fetches in-game market data from the official API of the MMORPG Black Desert Online and brings information from multiple places together in one interface.

I made it as part of a training lesson at my current job. Back then I had started in the frontend department, mostly doing HTML, CSS and some JavaScript, but later switched into backend and had to work through PHP lessons. This project was the final one: find an API of your choice and build a web project around it.

Since Black Desert is still my main game, that was an easy pick.

Homepage of Patrigios Market Analytics showing rotating Black Desert market items with current price data.
Homepage with rotating items,

Working with the API

The most memorable part of this project was honestly the API itself, and not in a particularly pleasant way.

At the time, it was pretty awkward to work with. You could not just call one endpoint and get all items. Instead, items were buried behind a main category and then a subcategory, so to get everything you basically had to work through the category tree step by step and recursively pull the contents of every branch.

So for something as stupidly simple as beer, you first had to fetch the main category for consumables, then the subcategory for food, and only then you got the items inside that part of the market. And then you had to keep doing that for everything else.

The even better part was that the API rate limited pretty aggressively, so back then a full fetch of all items took me around six hours because I had to put sleeps everywhere just to not get blocked. Peak engineering.

The responses were not exactly pleasant to work with either. A lot of it came back in formats that were way uglier than they needed to be, so a decent amount of the project was really just about turning annoying API output into something usable.

I checked again recently and there is now a wrapper that offers a proper endpoint for all items and returns associative arrays too, which would have made things much easier. A bit late for me, but nice that it exists now.

Once the items were fetched, they still had to be hydrated with separate market price calls afterwards, so even after the first hurdle the process was not exactly elegant.

Category selection view of Patrigios Market Analytics showing Black Desert market main and subcategories.
Category navigation.

What the application does

The main purpose of the application is to track item prices over time and present them in a way that is more useful than the game itself.

Black Desert only shows market history for up to 90 days ingame. Other tools apparently go further, but sometimes put that behind a paywall. This one does not really care about that limit. It just keeps storing the data. And honestly I still do not really understand why this is usually capped so hard, because even after accumulating market history over a long period of time, the actual amount of stored data is still tiny.

Items are fetched first, then filled with current market information such as base price, last sold price, supply, category and the hard minimum and maximum price limits that are not really visible ingame.

On top of that, you can pin items to the homepage and set notifications for them. When a selected market value, either average price or last sold price, moves above or below a threshold, a notification gets triggered. So instead of checking ingame all the time whether it is finally worth buying or selling something, you can just let the app keep an eye on it.

That was really the useful part for me: longer history, better overview, notifications, and a few extra market details the game does not show properly.

Item list view showing multiple food items with current prices, timestamps and stock values.
List view of a category.

Building it

Everything was basically done by me.

Tech-wise it used PHP, Latte, MySQL, CSS, Chart.js and the official BDO API. It was also one of the first times I worked with a real API that was not just some neat polished learning example but something actually useful and also kind of ugly.

Rate limits were annoying as hell, and later I also ran into a data issue where some market entries repeated themselves if they were not updated correctly. So for example, after looking at the collected data for a while, I noticed that an item updated on day one and day two could end up filling day two to day ten with repeated versions of the earlier values. Not exactly ideal.

Also, this was around the time AI started becoming actually useful in practice, so despite this being a learning exercise, some of the code was AI-generated. I am not particularly proud of that part, but it is what it is.

Even with those issues though, I still think it was a pretty good first real backend-heavy project. It had an actual use case, dealt with messy external data, and forced me to think about collection, storage, presentation and automation all at once.

Detail page for the Black Desert item Beer with stored market information and long-term price chart.
Beer detail view with price history. Red indicateing an price decrease since recording.
Detail page for Concentrated Magical Black Stone showing market data and a long-term price chart.
Detail view with long-term market history. Green indicateing an price increase since recording.

Current state

Right now it is abandoned and somewhat broken. If you want to check it out anyways, clicke here.

Logins do not work anymore for whatever reason, but the data collection side did run for quite a while. So by now I have accumulated price information from late 2024 up to early 2026, at least as of writing this.

Theoretically, it is still a pretty useful concept. Just from the long-term data collection alone, you could do a lot more with it. It was a nice experiment, a useful personal tool, and my first time dealing with a real API that fought back a little.

I would like to fix it up again at some point.