Getting started
Last updated
Pick your path#
GPU Ninja's data is the same everywhere. Pick the surface that suits you:
- Fetch JSON if you are writing code.
- Search the index if you want to filter the whole catalog yourself.
- Connect an AI assistant if you want to ask questions in Claude, ChatGPT or another MCP client.
- Install the desktop app if you want answers about your own machine.
- Subscribe to the digest if you want to hear what changed.
Fetch JSON from the API#
The API lives under https://gpuninja.com/api/v1/. It needs no key, has no rate limit, and allows requests from any origin, so you can call it from a browser too.
List the first page of boards:
curl https://gpuninja.com/api/v1/boardsCollections are paginated by path, 50 items to a page. The response's links.next gives the next page, such as https://gpuninja.com/api/v1/boards/page/2. Query parameters are ignored.
Fetch one board by its slug:
curl https://gpuninja.com/api/v1/boards/asus-rog-strix-4090Ask which cases it fits, and which models it can run. Both answers are precomputed:
curl https://gpuninja.com/api/v1/boards/asus-rog-strix-4090/fits
curl https://gpuninja.com/api/v1/boards/asus-rog-strix-4090/can-runEach URL also works with .json on the end. Every response carries asOf, the most recent time any value in it was retrieved or verified, as an absolute UTC timestamp.
The slugs in these examples are illustrative. Take real ones from a collection response or from the website's URLs.
Next: Public API, collections and compatibility.
Search the index#
https://gpuninja.com/api/v1/index is one compact file holding every chip, board, chassis and model, with the fields you most often filter on: name, vendor, VRAM, TDP, length, slot width, lowest current price, stock and status. Download it once and filter it locally.
For example, to list active boards with at least 16 GB of VRAM that are at most 300 mm long:
const response = await fetch("https://gpuninja.com/api/v1/index");
const index = await response.json();
const boards = index.entries.filter(
(entry) =>
entry.kind === "board" &&
entry.status === "active" &&
entry.vramGb !== null &&
entry.vramGb >= 16 &&
entry.lengthMm !== null &&
entry.lengthMm <= 300,
);
for (const board of boards) {
console.log(board.name, board.vramGb, board.lengthMm);
}The buyer's guide, the MCP servers and the desktop app all search this index with the same code. It is open source in the gpuninja-mcp repository under the Apache 2.0 licence, so you can read it or copy it instead of writing your own; it isn't published as a package. See Searching the index.
If you would rather filter by clicking, use the buyer's guide on the website.
Connect an AI assistant#
GPU Ninja runs two MCP servers with the same read-only tools:
| Server | URL | Sign-in |
|---|---|---|
| Consumer MCP server, listed in Claude's Connectors Directory | https://mcp.gpuninja.com/mcp | Free registration with your email address |
| ChatGPT connector | https://connector.gpuninja.com/mcp | None |
- In Claude, add GPU Ninja from the Connectors Directory and sign in when asked. See Claude.
- In ChatGPT, enable the GPU Ninja connector. See ChatGPT.
- In any other MCP client that supports OAuth sign-in, such as Claude Code, add
https://mcp.gpuninja.com/mcpas a remote server, exactly as written, with no trailing slash. Your client opens a browser window where you sign in with your email address. See MCP server.
Then ask a question such as "Which of these boards fits in a Fractal Design North?" or "Which boards can run Llama 3.3 70B?".
Note
Registering for the MCP server subscribes you to the daily digest by default, and the sign-up form lets you opt out. In the EEA and the UK, or if we can't tell where you are, the box starts unticked. Opting out never affects your MCP access. See Your account.
Install the desktop app#
The desktop app runs on macOS, Windows and Linux (as an AppImage). Download it from the desktop app page. On first launch it:
- identifies your GPU locally, without sending anything about your hardware anywhere;
- shows what your machine can run and which upgrades fit your case once you tell it your case and power supply;
- works offline, from an index snapshot bundled with the app, and refreshes when you are online.
Add boards to your watchlist to be notified when they change. See Desktop app.
Subscribe to the digest#
The daily digest is a short email listing what changed in the data that day, sent at 14:00 UTC. Nothing is sent on days with no changes.
- Enter your email address in the sign-up form at the bottom of the home page, the buyer's guide or any digest page, or go to
https://app.gpuninja.com/subscribe. - Open the confirmation email and confirm within 48 hours.
Every digest has a one-click unsubscribe link. If you prefer not to give an email address, follow the RSS feed at https://gpuninja.com/digest/feed.xml instead. See Daily digest.
Where to next#
- The data: what each collection holds, and what "discontinued" means.
- Feeds and plaintext: every feed,
llms.txtand the.txtcompanions. - Support: how to get help.