A local, GUI-based desktop app for searching FINAL FANTASY XIV game data through XIVAPI v2 (the Boilmaster API). No API key, no account — it just talks to the public read-only API.
Built with PySide6 (Qt).
- Search across any sheet. Pick which sheets to search (Item, Action, Quest, Status, …) via quick-pick chips, free-text entry, or an autocomplete box covering all ~7,900 sheets.
- Simple or advanced queries. Type a plain term to match on
Name, or flip on Advanced query to write full XIVAPI clauses likeName~"rainbow" +LevelItem>=100orClassJob.Abbreviation="PCT". - Rich results. Each hit shows its in-game icon, name, source sheet, row id and relevance score.
- Detail inspector. Select a result to browse its fields in a tree. Load full row fetches every field for that row; Copy JSON puts it on your clipboard.
- Language & paging. Choose the response language (en/ja/de/fr/…), set a result limit, and Load more to page through large result sets.
- Responsive UI — all network calls run off the GUI thread, so it never freezes, and a slow response can never overwrite a newer search.
- Python 3.9+ (on Windows, install from python.org and tick "Add Python to PATH")
- Internet access (the app calls
https://v2.xivapi.com)
Runs on Windows, macOS, and Linux (PySide6 + requests are cross-platform).
Windows — double-click run.bat, or from a terminal:
run.batmacOS / Linux:
./run.shEither script creates a .venv, installs dependencies, and launches the app.
python3 -m venv .venv
# activate it:
source .venv/bin/activate # macOS / Linux
.venv\Scripts\activate.bat # Windows (Command Prompt)
.venv\Scripts\Activate.ps1 # Windows (PowerShell)
pip install -r requirements.txt
python main.py- Type a term (e.g.
potion) and press Enter / Search. - Adjust which sheets to search using the chips or the Add any sheet… box. At least one sheet is required — the API cannot search all at once.
- Click a result on the left to inspect it on the right.
- Need everything? Click Load full row in the detail panel.
| Example | Meaning |
|---|---|
Name~"cure" |
Name contains "cure" |
Name="Potion" |
exact match |
+LevelItem>=100 |
required numeric filter |
-Name~"materia" |
exclude matches |
ClassJob.Abbreviation="PCT" |
nested field |
Name@ja="天使の筆" |
match the Japanese name |
Full reference: https://v2.xivapi.com/docs/guides/search/
xivapi-explorer/
├── main.py # launcher (python main.py)
├── run.sh # venv bootstrap + launch (macOS / Linux)
├── run.bat # venv bootstrap + launch (Windows)
├── requirements.txt
├── xivapi/ # API client (no GUI dependencies)
│ ├── client.py # XIVAPIClient, endpoints, error handling
│ └── __init__.py
└── app/ # PySide6 front-end
├── main.py # QApplication entry
├── main_window.py # window, wiring, threading, search flow
├── widgets.py # result card, detail panel, flow layout
├── workers.py # generic thread-pool worker
└── style.py # dark theme stylesheet
The xivapi package is deliberately GUI-free so it can be reused or
scripted on its own:
from xivapi import XIVAPIClient
client = XIVAPIClient()
print(client.search('Name~"potion"', ["Item"], fields="Name", limit=5))- The API only exposes data found in the game client files — no live server or player data.
- Search requires an explicit list of sheets.
- Data covers every patch since 7.0.
Natural next steps (the code is structured for them): a dedicated sheet
browser with pagination, following reference links between rows, a zone-map
viewer using the /asset/map endpoint, and search history / favourites.
Released under the MIT License.
This is an unofficial fan project. FINAL FANTASY XIV and all related data are trademarks of Square Enix. Game data is provided by XIVAPI.
