Grounding data for AI agents

Ground truth for niche fashion.

Verified records on 60 fashion subcultures, from Goth Ninja to Ura-Hara: years, key brands, iconic pieces, where to buy, a price range, and a warning about what each one must not be confused with.

$0.01 per record
x402 USDC on Base
No API key or account
MCP server for Claude
The problem

Models rarely invent. They blend.

Ask a strong model about a niche aesthetic and the answer sounds right. The errors are real brands borrowed from the style next door, so nothing flags them at a glance.

Amekaji
Red Wing boots

American workwear, not the Japanese repro-denim scene it was recommended for.

Goth Ninja
Y-3 and Acronym

Techwear. The 2009-2014 forum look is draped and soft, not tactical.

Quiet Luxury
Massimo Dutti

High-street. The whole point of the style is the brands it is not.

Same question, 15 subculturesFrom memoryWith the record
Recommends a brand from a neighbouring style8 of 151 of 15
Years match the record (within 2 years)13 of 1515 of 15
Record's key brands named71%98%

30 fresh Claude Opus chats, no web search, October 2026. All answers, the scoring script and the hand judgements are public: eval/.

What you get

One record, free.

This is the live response of GET /api/sample, in exactly the shape of the paid endpoint. The WARNING line is the field that does most of the work.

Goth Ninja

2009 - 2014

Internet-born aesthetic mixing dark drapery, drop-crotch proportions, and artisanal boots.

Key brands

Rick Owens (early 2010s)JuliusDamir Doma11 by BBS

Iconic items

Extra-long draped t-shirtsHooded cardigansDrop-crotch shorts over leggingsGeobaskets

Where to buy

GrailedYahoo Auctions Japan

Price range

$600 - $2500
WARNING Goth Ninja is specifically the 2009-2014 internet forum aesthetic characterized by extreme layering of thin, dark fabrics. Distinguish from modern Techwear.
Catalog

Every subculture covered.

The list is free at GET /api/catalog; use the slug to fetch a record.

Use it

Two ways in.

Payments use the open x402 protocol: the API answers 402 with the price, your client signs a USDC authorization and retries. An unknown slug returns 404 before any payment is requested.

Claude, via MCP

Three tools: the catalog and the sample are free, records cost $0.01 from a wallet key you set, with a hard cap per call. Use a dedicated wallet with a few dollars in it.

claude mcp add underindex -e UNDERINDEX_PRIVATE_KEY=0x... -- npx -y underindex-mcp

Claude Desktop config, full setup:

"underindex": {
  "command": "npx",
  "args": ["-y", "underindex-mcp"],
  "env": { "UNDERINDEX_PRIVATE_KEY": "0x..." }
}

Any x402 client

Works with @x402/fetch, Coinbase AgentKit and any agent that speaks x402.

import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
client.setSpendControls({ maxAmountPerPayment: "$0.05" });
registerExactEvmScheme(client, {
  signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY),
});
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay(
  "https://underindex-api.onrender.com/api/subculture/acubi-style"
);
console.log(await res.json());
$0.01per record
BaseUSDC, eip155:8453
0charged for a 404
versioneddataset_version on every response
Endpoints

Reference.

  • GET /api/catalogfreeEvery slug with its name and years, plus the dataset version and price.
  • GET /api/samplefreeOne complete record (Goth Ninja), in the paid shape.
  • GET /api/subculture/{slug}The full record. Also served as /api/subculture?name={slug}.
  • GET /openapi.jsonfreeOpenAPI 3.1 with x402 payment info and every valid slug.