u/Consistent_Sky5871

I built an API that AI assistants can browse
▲ 3 r/WebdevTutorials+1 crossposts

I built an API that AI assistants can browse

I've been working on a structured data API for monitor specs and hit an interesting problem: how do you let ChatGPT, Claude, and Perplexity query your API when their web browsing tools were designed to read websites, not call APIs?

The standard approaches all require platform-specific integration:

- GPT Actions → OpenAI only, requires JSON schema registration

- MCP servers → Claude only, requires local installation

- Traditional RAG → requires an embedding pipeline, vector DB, and a wrapper app

- Plugins → deprecated

I wanted something that works with any AI that can browse the web, no setup, no plugins, no accounts. Here's what I figured out.

The core discovery: AI browsing tools can only follow clickable links

ChatGPT's browsing tool and Claude's web_fetch both have URL allowlists. They can only visit URLs that appear as actual <a href> links in HTML pages they've already fetched. They cannot:

- Construct URLs from documentation (blocked by ChatGPT's url_safe system)

- Follow URLs that appear as string values in JSON (invisible to the allowlist)

- Modify previously-seen URLs (even changing limit=10 to limit=50 gets rejected)

This means a traditional JSON API is useless to browsing-mode AI. The AI reads your docs, understands your filter syntax, constructs

a perfect query URL... and gets blocked.

The architecture: HTML link chains

Instead of serving JSON, we serve HTML to AI agents with every URL as a clickable <a href> link. The AI navigates our API like a human browsing a website:

  1. AI reads llms.txt (discovery file, like robots.txt for AI)

  2. AI fetches /v1/status → HTML with clickable example query links

  3. AI fetches /v1/browse → 75 categorized filter links (by panel type, size, brand, use case, price...)

  4. AI follows the closest matching link → gets HTML results with per-monitor detail links

  5. Each results page has "Refine results" links (add USB-C, change sort, try different size)

  6. AI follows detail/compare links for specific monitors

Every hop in the chain is an <a href> link that the AI's browsing tool can follow. No URL construction needed. The AI just clicks links like a human would.

Content negotiation: same endpoint, different formats

We detect the user agent and serve HTML to AI assistants, JSON to everything else. Same URL, same data, just a different wrapper:

ChatGPT-User → HTML with <a href> links

Claude-User → HTML with <a href> links

Regular browser → JSON (for developers)

The HTML includes all the same data (specs, scores, measurements, purchase links) plus navigation: "Next page", "Compare top 4",

"Refine results: + USB-C, try 27 inch, sort by gaming", "Browse all categories", "Back to status."

Dynamic refinement links

This is the part I'm most proud of. Every results page analyzes which filters are NOT yet applied and generates clickable refinement

links:

- If no size filter → shows "24 inch", "27 inch", "32 inch" links

- If no panel filter → shows "IPS", "VA", "OLED", "Mini LED" links

- If no price filter → shows "Under $500", "Under $800" links

- Always shows alternative sort options

This turns 75 static browse links into hundreds of reachable URLs after just 2-3 hops. The AI can drill down to arbitrarily specific combinations by following links hence never needs to construct a URL.

What we learned the hard way

  1. JSON is invisible to AI browsing tools. URLs in JSON response bodies are not followable. This single discovery changed our entire architecture.

  2. Affiliate language triggers content classifiers. ChatGPT's browsing tool blocked our entire domain when it saw "(affiliate)" labels repeated in responses. Clean "Buy: Amazon" links with the affiliate tag silently in the URL work fine.

  3. Claude flags "prompt injection" on directive language. Words like "Use X", "Always do Y", "Behavior policies" in API responses trigger Claude's safety filters. Neutral, descriptive language works.

  4. The llms.txt standard is powerful. A simple text file at /llms.txt that describes your API in plain language is all an AI needs to get started. It's like robots.txt but for AI assistants. (llmstxt.org)

  5. <noscript> doesn't work for Bing SEO. Bingbot's Chromium engine signals JS support (skips noscript) but doesn't reliably render React SPAs. Static HTML must be in the DOM without JS tricks.

The result

Any user can paste a one-line prompt into ChatGPT, Claude, Perplexity, or Grok: Use https://specapis.com/. My monitor question: best 32-inch Mini LED IPS under $800

The AI reads the contract, navigates the link chain, and answers with structured data from 5,800+ monitors. No plugin setup. No API key. Works today in any AI with web access.

Would love feedback on the architecture. Is anyone else building APIs meant to be consumed by AI browsing tools? The traditional API design patterns (REST, GraphQL, OpenAPI) feel wrong for this use case, the consumer isn't a programmer writing code, it's an AI agent clicking links.

u/Consistent_Sky5871 — 12 days ago
▲ 2 r/MonitorAdvice+1 crossposts

A New Way to Explore Tech With Claude

Hi r/ClaudeAI,

This project I developed was inspired by the heavy hallucinating and lazy searching that Claude and other AIs experience when searching for products. I built this website with Claude Code (praise to its Vercel and Supabase skills :)

specapis.com is a new way for you to interact with Claude to find specs, release dates, reviews and more. Now live with 5000+ monitors that makes finding your perfect fit one prompt away!

You can test it by pasting this into Claude: Use https://specapis.com/. My monitor question: best oled 27in

It is free forever and I am planning on expanding the specs beyond monitors; to PC parts, speakers and more!

u/Consistent_Sky5871 — 13 days ago

Asking AI for monitor suggestions got exhausting because of hallucinating so I built this tool over the weekend.

While picking my next monitor I noticed AI missed some of the best monitors in my niche category.

  • To solve that I built: specapis dot com.

It lets your AI look up actual monitor specs, common issues, release dates and more across over 5000 monitors before answering. I hope it saves you time in your next purchase!

Let me know whether you like it!

It is completely free forever.

reddit.com
u/Consistent_Sky5871 — 13 days ago