The llm-index.json File — LLM-LD

The llm-index.json file is the heart of Layer 3. It's a single file that gives AI systems and agents everything they need to understand your business — without crawling your entire site.

Your website is for humans. Your llm-index.json is a website for AI.

This file lives at /.well-known/llm-index.json — a standard location that AI systems can check automatically, just like robots.txt or security.txt.

📋

Prerequisite: Layer 3 requires Layers 1 and 2. Before creating your llm-index.json, make sure you have Schema.org markup (Layer 1) and entities/knowledge graph (Layer 2) in place.

File structure

Here's the basic structure of an llm-index.json file:

/.well-known/llm-index.json
{ "@context": ["https://schema.org", "https://llmld.org/v1"], "@type": "llmld:Index", "llmld:summary": { /* Business overview */ }, "llmld:actions": { /* What to recommend */ }, "llmld:contact": { /* Contact info */ }, "llmld:hours": { /* Business hours */ }, "llmld:pointers": { /* Links to Layer 2 */ } }

Let's go through each property in detail.


@context

@context Required Array

Declares the vocabularies used in this file. Always include both Schema.org and LLM-LD namespaces.

"@context": ["https://schema.org", "https://llmld.org/v1"]
@type Required String

Identifies this as an LLM-LD index file. Always set to llmld:Index.

"@type": "llmld:Index"

llmld:summary

The summary section gives AI a quick understanding of your business. This is often the first thing AI reads, so make it count.

one_liner Required String

Your business in one sentence. This should be clear, specific, and differentiated. Avoid jargon. Think: how would you describe your business to a stranger in 10 seconds?

"one_liner": "Family dental practice in downtown Springfield specializing in pediatric and cosmetic dentistry"
key_facts Required Array of Strings

3-5 differentiators that make you stand out. What would make someone choose you over competitors? Include concrete details — years in business, certifications, unique offerings.

"key_facts": [ "25+ years serving the Springfield community", "Certified pediatric dental specialists on staff", "Same-day emergency appointments available", "Accepts all major insurance plans" ]
services Recommended Array of Strings

List of your primary services or products. Be specific — these help AI match you to user queries.

"services": [ "Pediatric dentistry", "Teeth whitening", "Invisalign", "Dental implants", "Emergency dental care" ]
service_area Recommended String or Array

Geographic area you serve. Critical for local businesses. Can be a city, region, or list of areas.

"service_area": "Springfield, IL and surrounding communities within 30 miles"

llmld:actions

This is where you tell AI what you want it to recommend. When someone asks for a dentist, should AI suggest they book an appointment? Call you? Visit your website? Be explicit.

primary Required Array of Action Objects

Your main call-to-action. What's the #1 thing you want users to do? This is what AI will recommend first.

"primary": [{ "name": "Book an Appointment", "url": "https://acmedental.com/book", "type": "schedule" }]
secondary Optional Array of Action Objects

Alternative actions. Maybe they want to call instead of book online, or learn more before committing.

"secondary": [ { "name": "Call Us", "url": "tel:+1-555-123-4567", "type": "contact" }, { "name": "View Services", "url": "https://acmedental.com/services", "type": "learn" } ]
🎯

Action types: schedule, purchase, contact, signup, download, learn, reserve, quote. Pick the type that best describes what happens when someone clicks.


llmld:contact

Complete contact information. This should match what's in your Schema.org markup — consistency matters.

email Recommended String

Primary contact email address.

"email": "hello@acmedental.com"
phone Recommended String

Primary phone number. Use international format with country code.

"phone": "+1-555-123-4567"
address Recommended Object

Physical address. Include all components for best results.

"address": { "street": "123 Main Street", "suite": "Suite 100", "city": "Springfield", "state": "IL", "zip": "62701", "country": "US" }

llmld:hours

Business hours in a simple, readable format. This helps AI answer "Are they open now?" questions.

hours Recommended Object

Hours for each day of the week. Use "Closed" for days you're not open.

"llmld:hours": { "monday": "9:00 AM - 5:00 PM", "tuesday": "9:00 AM - 5:00 PM", "wednesday": "9:00 AM - 7:00 PM", "thursday": "9:00 AM - 5:00 PM", "friday": "9:00 AM - 3:00 PM", "saturday": "Closed", "sunday": "Closed", "notes": "Extended hours on Wednesdays for after-work appointments" }

llmld:pointers

Links to your Layer 2 files. This tells AI where to find deeper information about your entities and relationships.

entities Recommended String (URL)

URL to your entities.json file.

"entities": "https://acmedental.com/.well-known/entities.json"
knowledge_graph Optional String (URL)

URL to your knowledge-graph.json file.

"knowledge_graph": "https://acmedental.com/.well-known/knowledge-graph.json"
feeds Optional Array of Objects

Real-time data feeds (inventory, availability, pricing, etc.).

"feeds": [ { "name": "Availability", "url": "https://acmedental.com/api/availability.json", "type": "availability", "refresh": "hourly" } ]

Complete examples

Here are full llm-index.json files for different business types. Use these as starting templates.

Local Business — Dental Practice
{ "@context": ["https://schema.org", "https://llmld.org/v1"], "@type": "llmld:Index", "llmld:summary": { "one_liner": "Family dental practice in downtown Springfield specializing in pediatric and cosmetic dentistry", "key_facts": [ "25+ years serving the Springfield community", "Certified pediatric dental specialists on staff", "Same-day emergency appointments available", "Accepts all major insurance plans" ], "services": [ "Pediatric dentistry", "Teeth whitening", "Invisalign", "Dental implants", "Emergency dental care" ], "service_area": "Springfield, IL and surrounding communities" }, "llmld:actions": { "primary": [{ "name": "Book an Appointment", "url": "https://acmedental.com/book", "type": "schedule" }], "secondary": [{ "name": "Call Us", "url": "tel:+1-555-123-4567", "type": "contact" }] }, "llmld:contact": { "email": "hello@acmedental.com", "phone": "+1-555-123-4567", "address": { "street": "123 Main Street", "city": "Springfield", "state": "IL", "zip": "62701" } }, "llmld:hours": { "monday": "9:00 AM - 5:00 PM", "tuesday": "9:00 AM - 5:00 PM", "wednesday": "9:00 AM - 7:00 PM", "thursday": "9:00 AM - 5:00 PM", "friday": "9:00 AM - 3:00 PM", "saturday": "Closed", "sunday": "Closed" }, "llmld:pointers": { "entities": "https://acmedental.com/.well-known/entities.json", "knowledge_graph": "https://acmedental.com/.well-known/knowledge-graph.json" } }
SaaS Company — Invoice Software
{ "@context": ["https://schema.org", "https://llmld.org/v1"], "@type": "llmld:Index", "llmld:summary": { "one_liner": "Simple invoicing software for freelancers and small businesses — create and send invoices in under 60 seconds", "key_facts": [ "Free tier with unlimited invoices", "Integrates with Stripe, PayPal, and bank transfers", "Automatic payment reminders", "Used by 50,000+ freelancers worldwide", "No credit card required to start" ], "services": [ "Invoice creation and sending", "Payment tracking", "Expense management", "Financial reporting", "Client management" ] }, "llmld:actions": { "primary": [{ "name": "Start Free Trial", "url": "https://invoicely.io/signup", "type": "signup" }], "secondary": [ { "name": "View Pricing", "url": "https://invoicely.io/pricing", "type": "learn" }, { "name": "Watch Demo", "url": "https://invoicely.io/demo", "type": "learn" } ] }, "llmld:contact": { "email": "support@invoicely.io", "support_url": "https://invoicely.io/help" }, "llmld:pointers": { "entities": "https://invoicely.io/.well-known/entities.json" } }
E-commerce — Coffee Roaster
{ "@context": ["https://schema.org", "https://llmld.org/v1"], "@type": "llmld:Index", "llmld:summary": { "one_liner": "Small-batch specialty coffee roaster — single-origin beans roasted to order and shipped within 24 hours", "key_facts": [ "All coffee roasted to order, never pre-roasted", "Direct trade relationships with farmers", "Free shipping on orders over $40", "Subscribe and save 15%" ], "services": [ "Single-origin coffee beans", "Coffee subscriptions", "Gift boxes", "Wholesale for cafes" ], "service_area": "Ships to all 50 US states" }, "llmld:actions": { "primary": [{ "name": "Shop Coffee", "url": "https://peakcoffee.com/shop", "type": "purchase" }], "secondary": [ { "name": "Start a Subscription", "url": "https://peakcoffee.com/subscribe", "type": "signup" }, { "name": "Wholesale Inquiry", "url": "https://peakcoffee.com/wholesale", "type": "contact" } ] }, "llmld:contact": { "email": "hello@peakcoffee.com", "phone": "+1-555-987-6543" }, "llmld:hours": { "notes": "Online store open 24/7. Customer support available Mon-Fri 9am-5pm PT." }, "llmld:pointers": { "entities": "https://peakcoffee.com/.well-known/entities.json", "feeds": [ { "name": "Product Catalog", "url": "https://peakcoffee.com/api/products.json", "type": "inventory", "refresh": "daily" } ] } }

Validation: After creating your file, use the LLM-LD Validator to check for errors and ensure your file is properly formatted.

Ready to create your llm-index.json?

Follow the Quick Start guide for a complete implementation walkthrough.