Technical Reference

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.

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.

Rule of thumb: Ship llms.txt first. Add llm.json once your llms.txt is stable, so the two stay in sync.

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

Field
Type
Status
Notes
name
string
Required
The product or company name. Must match what you call yourself everywhere else.
tagline
string
Required
One-sentence description (≤140 chars). The line AI engines will quote.
description
string
Required
2-4 sentences. What the product does, who it's for, what makes it different.
category
string
Required
Single category label (e.g. "AI visibility platform", "DevOps monitoring").
url
string (URL)
Required
Canonical homepage URL.
target_audience
string[]
Recommended
Array of audience descriptors. Helps AI map your product to user queries.
use_cases
string[]
Recommended
Array of concrete jobs-to-be-done. One short phrase each.
features
Feature[]
Recommended
Array of { name, description } pairs for major capabilities.
pricing
PricingTier[]
Recommended
Array of { tier, price, includes[] } objects. Keep it accurate — stale pricing in llm.json gets quoted by AI.
links
Link[]
Recommended
Array of { label, url } pairs for canonical pages: pricing, docs, blog, llms.txt, llms-full.txt.
contact
Contact
Optional
Object with { email?, support_url?, sales_url? }. AI engines surface this when users ask 'how do I contact X?'.
social
Social
Optional
Object with twitter, linkedin, github, youtube. Used for cross-platform identity verification.
founded
string (YYYY-MM-DD)
Optional
Founding date. Helps AI describe maturity ("founded in 2024").
status
"production" | "beta" | "alpha"
Optional
Lifecycle stage. AI engines weight production products higher in recommendations.
languages
string[]
Optional
ISO codes of supported UI/content languages.
last_updated
string (ISO 8601)
Recommended
When you last edited this file. AI systems prefer fresh data.

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

1

Generate from your audit

AIExposureTool generates llm.json automatically from your scanned site content. Copy the output verbatim or edit before deploying.

2

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.

3

Set Content-Type

Ensure the response Content-Type is application/json. Many CDNs auto-detect by extension; some don't — check with curl -I.

4

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.

5

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.

llm.json
JSON-LD (schema.org)
Location
/llm.json (standalone file)
Inline <script> inside HTML pages
Vocabulary
AEO-specific shape — flat, product-scoped
schema.org vocabulary — Organization, Product, FAQPage, etc.
Audience
AI agents, retrievers, MCP servers
Search engines + answer engines
Cardinality
One file, one product
Multiple types per page allowed
Discovery
Linked from llms.txt or fetched at /llm.json
Read inline when crawler renders the page
AEO weight
Counts toward Agent Readiness
Counts toward Structured Data

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.