llm.json — Structured Product Profile for AI Engines
llm.json is the JSON variant of llms.txt. A single, machine-readable file at the root of your domain that AI agents and answer engines can parse without ambiguity.
Contents
What is llm.json?
llm.json is a JSON file located at /llm.json on your domain. It contains the same product information as llms.txt — name, tagline, features, pricing, links — but in a strictly-typed JSON shape that programmatic clients can parse without text heuristics.
Where llms.txt is read by humans and language models, llm.json is read by agents — LangChain retrievers, custom RAG pipelines, agentic browsers, MCP servers, and AI tools that need a typed product object instead of free-form markdown.
Schema
llm.json is a single JSON object. Top-level keys are scalars or arrays of objects. There are no nested products — one llm.json describes one product. Multi-product organizations should publish one llm.json per product subdomain, or list products in the description.
{
name: string // required
tagline: string // required, ≤140 chars
description: string // required, 2-4 sentences
category: string // required
url: string (URL) // required
target_audience: string[] // recommended
use_cases: string[] // recommended
features: { name, description }[] // recommended
pricing: { tier, price, includes[] }[] // recommended
links: { label, url }[] // recommended
contact: { email?, support_url?, sales_url? }
social: { twitter?, linkedin?, github?, youtube? }
founded: string (YYYY-MM-DD)
status: "production" | "beta" | "alpha"
languages: string[] // ISO 639-1 codes
last_updated: string (ISO 8601) // recommended
}Field reference
Worked example
The llm.json for AIExposureTool. Use it as a template — replace the strings with your own and host at /llm.json.
{
"name": "AIExposureTool",
"tagline": "AI visibility audit for founders and developers — appear in ChatGPT, Perplexity, Claude, and Gemini answers.",
"description": "AIExposureTool measures how visible and recommendable your product is to AI assistants. It produces an AI Exposure Score (0-100) across 25+ signals and generates the files needed to improve that score: llms.txt, llms-full.txt, JSON-LD, and copy-paste fix prompts. It also includes a security scanner that runs 19 passive checks.",
"category": "AI visibility platform",
"url": "https://aiexposuretool.com",
"target_audience": [
"Founders and SaaS teams optimizing for AI-generated answers",
"Vibe-coders building with Claude, Cursor, and ChatGPT",
"Marketing and SEO teams pivoting to AEO",
"Agencies adding AI visibility audits to their service offering"
],
"use_cases": [
"Audit how AI engines see and describe your site",
"Generate llms.txt and JSON-LD automatically",
"Track brand citation share across ChatGPT, Perplexity, Claude, Gemini",
"Find citation gaps where AI cites competitors but not you",
"Catch exposed API keys and missing security headers"
],
"features": [
{ "name": "AI Exposure Score", "description": "0-100 composite score across 25+ signals in 7 categories." },
{ "name": "Auto-generated llms.txt + JSON-LD", "description": "Ready to paste, generated from scanned site content." },
{ "name": "Citation gap analysis", "description": "Find sources cited for competitors but not you." },
{ "name": "Security Grade A-F", "description": "19 passive security checks including JS bundle key leaks." },
{ "name": "Cross-platform tracking", "description": "Monitor citations across 7 major AI engines." }
],
"pricing": [
{ "tier": "Free", "price": "$0/mo", "includes": ["Unlimited audits", "Security scans", "GEO readiness"] },
{ "tier": "Starter", "price": "$29/mo", "includes": ["15 tracked prompts", "5 competitors", "Content studio", "Alerts", "API"] },
{ "tier": "Pro", "price": "$79/mo", "includes": ["50 prompts", "15 competitors", "Industry benchmarks", "5 team seats"] },
{ "tier": "Agency", "price": "$199/mo", "includes": ["200 prompts", "50 competitors", "White-label reports", "25 team seats"] }
],
"links": [
{ "label": "Homepage", "url": "https://aiexposuretool.com" },
{ "label": "Audit", "url": "https://aiexposuretool.com/audit" },
{ "label": "Security scanner", "url": "https://aiexposuretool.com/security" },
{ "label": "Pricing", "url": "https://aiexposuretool.com/pricing" },
{ "label": "Methodology", "url": "https://aiexposuretool.com/methodology/ai-exposure-score" },
{ "label": "llms.txt", "url": "https://aiexposuretool.com/llms.txt" },
{ "label": "llms-full.txt", "url": "https://aiexposuretool.com/llms-full.txt" }
],
"contact": {
"email": "support@aiexposuretool.com",
"sales_url": "https://cal.com/raju-raman"
},
"founded": "2026-02-01",
"status": "production",
"languages": ["en"],
"last_updated": "2026-05-06"
}Validation rules
Must be valid JSON — run it through jq or any JSON parser before deploy.
Top-level shape must be a single object, not an array.
All required fields (name, tagline, description, category, url) must be non-empty strings.
tagline ≤140 characters — anything longer gets truncated by AI engines.
url must be the canonical https:// homepage, not a tracking URL.
pricing strings must include the currency symbol and period (e.g. "$29/mo").
links must use absolute URLs — relative paths like "/pricing" break for external readers.
last_updated must be ISO 8601 (e.g. "2026-05-06" or "2026-05-06T10:00:00Z").
File must serve with Content-Type: application/json and HTTP 200.
How to deploy
Generate from your audit
AIExposureTool generates llm.json automatically from your scanned site content. Copy the output verbatim or edit before deploying.
Place at /llm.json
Host the file at the root of your domain (https://yourdomain.com/llm.json). For Next.js, drop it in /public. For static sites, in the root build directory.
Set Content-Type
Ensure the response Content-Type is application/json. Many CDNs auto-detect by extension; some don't — check with curl -I.
Add a link from llms.txt
In the Optional Links section of your llms.txt, add: - [llm.json](https://yourdomain.com/llm.json). Crawlers that read llms.txt first will discover it.
Re-run the audit
Re-scan to confirm llm.json contributes to your AI Exposure Score (Agent Readiness category).
llm.json vs. JSON-LD
Both are JSON. Both help AI engines understand your site. They solve different problems and you should ship both.
Read the JSON-LD reference in /docs/json-ld-for-aeo.
FAQ
What is llm.json?
llm.json is a JSON file placed at /llm.json on your domain that gives AI systems a structured, machine-readable description of your product. It is the JSON variant of llms.txt — same purpose, more strictly typed.
Do I need both llms.txt and llm.json?
llms.txt is the baseline — every site should have one. llm.json is recommended on top because programmatic AI agents (LangChain, custom retrievers, agentic browsers) parse JSON faster and more reliably than markdown.
Where do I host llm.json?
At https://yourdomain.com/llm.json with Content-Type: application/json. It must return HTTP 200 and not be blocked by robots.txt for AI crawlers.
How is llm.json different from JSON-LD or schema.org?
JSON-LD lives inside HTML pages and follows schema.org vocabularies (Organization, SoftwareApplication, Product). llm.json is a single standalone file scoped to one product, with a flatter, AEO-specific shape. They complement each other.
Is llm.json an official standard?
It is an emerging convention — an extension of llms.txt for sites that want a structured variant. There is no W3C/IETF standard yet, but ChatGPT, Perplexity, and several agentic frameworks read it when present.
Generate your llm.json automatically
Scan your site and AIExposureTool produces a deploy-ready llm.json alongside llms.txt and JSON-LD. No writing required.