Appearance
LLM-LD 1.0 Specification Fresh
Status: Draft | Published: February 2026 | License: CC BY 4.0 | Maintained by: CAPXEL
Abstract
LLM-LD (Large Language Model Linked Data) is a specification for making websites accessible, understandable, and actionable by artificial intelligence systems. It extends Schema.org vocabulary with AI-specific constructs that enable crawlers, agents, and AI-powered applications to efficiently discover, ingest, and interact with web content.
This specification defines:
- A file format (
llm-index.json) that serves as a complete machine-readable representation of a website - A vocabulary of properties optimized for AI consumption
- Conformance levels that allow incremental adoption
- A verification mechanism through the LLM Disco Directory
Table of Contents
- Introduction
- Terminology
- Conformance Levels
- File Structure
- Core Properties
- Entity Properties
- Agent Intelligence Properties
- Verification Properties
- Meta Properties
- File Placement and Discovery
- Relationship to Schema.org
- Security Considerations
- IANA Considerations
- Examples
- JSON Schema
- Changelog
1. Introduction
1.1 Background
The proliferation of AI systems that consume web content -- including search engines, chatbots, autonomous agents, and retrieval-augmented generation (RAG) systems -- has created a need for websites to communicate with these systems in structured, predictable ways.
Traditional web standards (HTML, robots.txt, sitemap.xml) were designed for human readers and traditional search crawlers. While Schema.org provides structured data vocabulary, it focuses on describing entities rather than enabling AI interaction.
LLM-LD addresses this gap by providing:
- Consolidation: A single file containing all information an AI needs
- Actionability: Clear definitions of what actions are available
- Context: Guidance for AI decision-making
- Verification: Trust signals through directory membership
1.2 Goals
- Enable AI systems to understand a website's complete offering in a single request
- Provide clear, unambiguous action endpoints for agentic AI
- Establish trust through verifiable directory membership
- Maintain backwards compatibility with Schema.org
- Support incremental adoption through conformance levels
1.3 Audience
- Web developers implementing LLM-LD on websites
- AI system developers consuming LLM-LD data
- Tool developers building LLM-LD generators and validators
- Directory operators integrating with the LLM Disco network
1.4 Document Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are interpreted as described in RFC 2119.
2. Terminology
AI Crawler -- An automated system that retrieves and indexes web content for AI applications. Examples include GPTBot, ClaudeBot, and PerplexityBot.
Agent -- An AI system capable of taking actions on behalf of a user, including navigation, form submission, and API calls.
Conformance Level -- A defined set of requirements that an implementation must satisfy. LLM-LD defines three levels: Crawl-Ready, Ingest-Ready, and Agent-Ready.
Entity -- A distinct thing described by the website, such as a product, service, person, or organization.
LLM Disco Directory -- A network of LLM-LD compliant websites maintained by CAPXEL, providing verification and discovery services.
Primary Entity -- The main entity that a website represents, typically an Organization or LocalBusiness.
Verification -- The process of confirming that a website is legitimately associated with its claimed identity through directory membership.
3. Conformance Levels
LLM-LD defines three conformance levels, each building upon the previous.
3.1 Level 1: Crawl-Ready
Purpose: Enable AI crawlers to discover and index website content.
Requirements:
- MUST serve valid
robots.txtallowing AI crawlers - MUST provide
sitemap.xmllisting all pages - SHOULD include Schema.org JSON-LD on individual pages
Files:
website.com/
├── robots.txt
├── sitemap.xml
└── [pages with Schema.org markup]3.2 Level 2: Ingest-Ready
Purpose: Enable AI systems to understand the complete website from a single file.
Requirements:
- MUST satisfy Level 1 requirements
- MUST serve
llm-index.jsonat the designated location - MUST include all Core Properties (Section 5)
- SHOULD include applicable Entity Properties (Section 6)
Files:
website.com/
├── robots.txt
├── sitemap.xml
├── .well-known/llm-index.json
└── [pages with Schema.org markup]3.3 Level 3: Agent-Ready
Purpose: Enable AI agents to take actions and make informed decisions.
Requirements:
- MUST satisfy Level 2 requirements
- MUST include
llmld:actionswith at least one actionable endpoint - SHOULD include Agent Intelligence Properties (Section 7)
- SHOULD register with the LLM Disco Directory for verification
3.4 Conformance Declaration
Implementations SHOULD declare their conformance level in the llmld:conformance property:
json
{
"llmld:conformance": {
"level": 3,
"level_name": "Agent-Ready",
"validated": true,
"validated_by": "https://llmdisco.com",
"validated_at": "2026-02-02T00:00:00Z"
}
}4. File Structure
4.1 File Format
LLM-LD documents MUST be valid JSON conforming to RFC 8259.
The file MUST use UTF-8 encoding without BOM.
The recommended filename is llm-index.json.
4.2 Context Declaration
Every LLM-LD document MUST include a JSON-LD context declaration:
json
{
"@context": [
"https://schema.org",
"https://llmld.org/v1"
],
"@type": "llmld:AIWebsite",
"@id": "https://example.com/llm-index.json"
}The @context array:
- MUST include
"https://schema.org"for Schema.org compatibility - MUST include
"https://llmld.org/v1"for LLM-LD vocabulary
The @type:
- MUST be
"llmld:AIWebsite"
The @id:
- MUST be the canonical URL of the llm-index.json file
4.3 Property Namespacing
Properties defined by this specification use the llmld: prefix:
llmld:summary-- LLM-LD propertyname-- Schema.org property (no prefix needed in context)
4.4 Size Considerations
- Files under 100KB are optimal for most AI systems
- Files over 500KB SHOULD provide a
llmld:summarysufficient for basic understanding - Very large sites MAY split content across multiple files referenced from the main index
5. Core Properties
Core properties are REQUIRED for Level 2 and Level 3 conformance.
5.1 llmld:meta
Description: Metadata about the LLM-LD document itself.
| Property | Type | Required | Description |
|---|---|---|---|
version | String | Yes | LLM-LD spec version (e.g., "1.0") |
generated | DateTime | Yes | ISO 8601 timestamp of generation |
generator | String | No | Software that generated this file |
expires | DateTime | No | When this data should be considered stale |
refresh_interval | String | No | Suggested refresh frequency (e.g., "daily") |
language | String | No | Primary language (BCP 47 code, e.g., "en-US") |
json
{
"llmld:meta": {
"version": "1.0",
"generated": "2026-02-02T12:00:00Z",
"generator": "aso-generator/2.0",
"expires": "2026-02-09T12:00:00Z",
"refresh_interval": "weekly",
"language": "en-US"
}
}5.2 llmld:site
Description: Core identity information about the website and organization.
| Property | Type | Required | Description |
|---|---|---|---|
name | String | Yes | Organization or website name |
legal_name | String | No | Registered legal name |
type | String | Yes | Primary type (e.g., "Business", "NonProfit") |
industry | Array[String] | No | Industry categories |
description | String | Yes | Brief description (1-2 sentences) |
tagline | String | No | Marketing tagline or slogan |
founded | String | No | Year founded |
domains | Object | Yes | Associated domains |
domains Object:
| Property | Type | Required | Description |
|---|---|---|---|
primary | URL | Yes | Main website URL |
ai | URL | No | AI-specific subdomain if different |
app | URL | No | Application URL |
docs | URL | No | Documentation URL |
api | URL | No | API endpoint URL |
5.3 llmld:primaryEntity
Description: Reference to the main entity this website represents.
| Property | Type | Required | Description |
|---|---|---|---|
@id | String | Yes | Local reference ID (e.g., "#organization") |
@type | String | Yes | Schema.org type |
name | String | Yes | Entity name |
description | String | No | Brief description |
url | URL | No | Canonical URL |
5.4 llmld:summary
Description: Condensed information for quick AI understanding.
| Property | Type | Required | Description |
|---|---|---|---|
one_liner | String | Yes | Single sentence description |
paragraph | String | Yes | 2-4 sentence overview |
key_facts | Array[String] | Yes | 3-10 bullet-point facts |
differentiators | Array[String] | No | What makes this entity unique |
target_customers | Array[String] | No | Ideal customer descriptions |
json
{
"llmld:summary": {
"one_liner": "Example Company builds AI-powered marketing tools for businesses.",
"paragraph": "Example Company is a marketing technology company based in Miami, Florida. Founded in 2020, we build tools that help businesses understand their markets and customers.",
"key_facts": [
"Founded in 2020",
"2,500+ customers",
"3 SaaS products",
"SOC 2 Type II certified"
],
"differentiators": [
"Daily data updates (competitors update weekly)",
"Privacy-first analytics"
],
"target_customers": [
"Small to medium businesses",
"Marketing teams"
]
}
}5.5 llmld:pages
Description: Complete sitemap in structured format.
Page Object Properties:
| Property | Type | Required | Description |
|---|---|---|---|
path | String | Yes | URL path (e.g., "/about") |
title | String | Yes | Page title |
type | String | Yes | Page type (see Page Types below) |
url | URL | Yes | Full URL |
schemas | Array[String] | No | Schema.org types used on this page |
entity | String | No | Reference to entity defined in this document |
description | String | No | Brief page description |
lastmod | Date | No | Last modification date |
Page Types: homepage, about, product, service, listing, article, person, contact, pricing, faq, legal, other
5.6 llmld:actions
Description: Available actions that users or agents can take.
Structure:
json
{
"llmld:actions": {
"primary": [...],
"purchase": [...],
"contact": [...],
"resources": [...]
}
}Action Object Properties:
| Property | Type | Required | Description |
|---|---|---|---|
id | String | Yes | Unique action identifier |
name | String | Yes | Human-readable action name |
description | String | No | What this action does |
url | URL | Yes* | Action URL (*or channels for contact) |
type | String | Yes | Action type |
priority | Integer | No | Display priority (1 = highest) |
requires_auth | Boolean | No | Whether authentication is required |
best_for | Array[String] | No | Use cases this action suits |
Action Types: signup, purchase, schedule, form, contact, navigate, download, api
5.7 llmld:contact
Description: Contact information organized by purpose.
| Property | Type | Required | Description |
|---|---|---|---|
general | ContactPoint | No | General inquiries |
sales | ContactPoint | No | Sales team |
support | ContactPoint | No | Customer support |
address | PostalAddress | No | Physical address |
ContactPoint Properties:
| Property | Type | Required | Description |
|---|---|---|---|
email | No | Email address | |
phone | String | No | Phone number (E.164 format preferred) |
chat | URL | No | Live chat URL |
calendar | URL | No | Scheduling link |
hours | String | No | Availability hours |
response_time | String | No | Expected response time |
6. Entity Properties
Entity properties describe the things a website offers.
6.1 llmld:products
Describes software applications, physical products, digital goods.
Product Properties:
| Property | Type | Required | Description |
|---|---|---|---|
@id | String | Yes | Unique identifier |
@type | String | Yes | Schema.org type (Product, SoftwareApplication, etc.) |
name | String | Yes | Product name |
description | String | Yes | Product description |
pricing.model | String | Yes | "subscription", "one-time", "usage", "free" |
pricing.plans | Array[Plan] | No | Available plans |
trial.available | Boolean | Yes | Whether trial is available |
trial.duration_days | Integer | No | Trial length in days |
6.2 llmld:services
Describes professional services, consulting, recurring services.
| Property | Type | Required | Description |
|---|---|---|---|
@id | String | Yes | Unique identifier |
@type | String | Yes | Schema.org type (Service, etc.) |
name | String | Yes | Service name |
description | String | Yes | Service description |
service_type | String | No | "one-time", "recurring", "retainer", "project" |
deliverables | Array[String] | No | List of deliverables |
delivery_method | String | No | "in-person", "remote", "hybrid" |
6.3 llmld:people
Describes team members, founders, subject matter experts.
| Property | Type | Required | Description |
|---|---|---|---|
@id | String | Yes | Unique identifier |
@type | String | Yes | "Person" |
name | String | Yes | Full name |
title | String | No | Job title |
description | String | No | Bio or description |
expertise | Array[String] | No | Areas of expertise |
credentials | Array[String] | No | Certifications, degrees |
6.4 llmld:locations
Describes physical locations.
| Property | Type | Required | Description |
|---|---|---|---|
@id | String | Yes | Unique identifier |
@type | String | Yes | Schema.org type (LocalBusiness, etc.) |
name | String | Yes | Location name |
address | PostalAddress | Yes | Full address |
hours | Object | No | Business hours by day |
phone | String | No | Location phone number |
6.5 llmld:content
Describes blog posts, articles, case studies.
| Property | Type | Required | Description |
|---|---|---|---|
@id | String | Yes | Unique identifier |
@type | String | Yes | Schema.org type (Article, BlogPosting, etc.) |
headline | String | Yes | Article headline |
description | String | No | Article summary |
datePublished | Date | No | Publication date |
author | String | No | Reference to person entity |
topics | Array[String] | No | Topic categories |
7. Agent Intelligence Properties
Agent intelligence properties help AI agents make better decisions. All properties in this section are OPTIONAL.
7.1 llmld:context
Provides background information that helps AI understand decisions.
json
{
"llmld:context": {
"elevator_pitch": "We help businesses understand their competitive landscape using AI.",
"origin_story": "Founded by marketers frustrated with manual competitive research.",
"positioning": "Premium competitive intelligence for data-driven teams.",
"ideal_customer": "Marketing teams at B2B SaaS companies with $10M+ in revenue."
}
}7.2 llmld:faq
Frequently asked questions with structured answers.
json
{
"llmld:faq": [
{
"@type": "Question",
"name": "How long does implementation take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Basic implementation (Layer 1 + AI Discovery Page) takes 15-20 minutes."
}
}
]
}7.3 llmld:trust
Trust signals and social proof.
json
{
"llmld:trust": {
"reviews": {
"google": { "score": 4.8, "count": 127 },
"g2": { "score": 4.7, "count": 89 }
},
"certifications": ["SOC 2 Type II", "GDPR Compliant"],
"awards": ["Best Local SEO Tool 2025"]
}
}8. Verification Properties
8.1 llmld:verification
Records verification status from the LLM Disco Directory.
json
{
"llmld:verification": {
"status": "verified",
"verified_by": "https://llmdisco.com",
"verified_at": "2026-02-01T00:00:00Z",
"next_verification": "2026-05-01T00:00:00Z",
"conformance": {
"level": 3,
"level_name": "Agent-Ready"
}
}
}9. Meta Properties
9.1 llmld:pointers
Links to related AI-layer files.
json
{
"llmld:pointers": {
"entities": "https://ai.example.com/entities.json",
"knowledge_graph": "https://ai.example.com/knowledge.graph.json",
"llms_txt": "https://ai.example.com/llms.txt",
"ai_discovery": "https://www.example.com/ai-discovery"
}
}10. File Placement and Discovery
10.1 Well-Known URI (Recommended)
/.well-known/llm-index.jsonThe /.well-known/ path is the recommended location.
10.2 Root Path (Alternative)
/llm-index.json10.3 Discovery via robots.txt
Implementations SHOULD advertise the file location in robots.txt:
# AI Index
LLM-Index: https://ai.example.com/.well-known/llm-index.json10.4 Discovery via HTML Link Element
html
<link rel="llm-index"
type="application/json"
href="https://ai.example.com/.well-known/llm-index.json"
title="LLM-LD Index" />10.5 HTTP Headers
Servers MAY include the location in HTTP response headers:
X-LLM-Index: https://ai.example.com/.well-known/llm-index.json10.6 robots.txt Declaration
The robots.txt file SHOULD reference the llm-index.json location.
11. Relationship to Schema.org
LLM-LD extends Schema.org rather than replacing it. The llmld: namespace adds AI-specific properties that Schema.org does not provide:
| Schema.org | LLM-LD Addition |
|---|---|
name, description | llmld:summary.one_liner, llmld:summary.key_facts |
contactPoint | llmld:actions with typed action endpoints |
hasOfferCatalog | llmld:products with structured pricing |
| No equivalent | llmld:context.ideal_customer |
| No equivalent | llmld:trust.reviews |
12. Security Considerations
Data Exposure
The llm-index.json file is publicly accessible. Do NOT include:
- Private pricing (internal pricing, cost basis)
- Competitive intelligence strategies
- Personally identifiable information (PII) not already publicly available
- Authentication credentials or API keys
Data Accuracy
Inaccurate data can mislead AI systems. Implement a process for keeping data current. Set llmld:meta.expires to indicate when data becomes stale.
Content Injection
AI systems consuming this data may pass it to language models. Avoid including content that could cause prompt injection or manipulation of downstream AI systems.
13. IANA Considerations
This specification requests registration of the llm-index link relation type.
Relation Name: llm-index
Description: Identifies a resource containing machine-readable AI-layer index data conforming to the LLM-LD specification.
Reference: This specification.
14. Complete Example
json
{
"@context": ["https://schema.org", "https://llmld.org/v1"],
"@type": "llmld:AIWebsite",
"@id": "https://ai.acmedental.com/.well-known/llm-index.json",
"llmld:meta": {
"version": "1.0",
"generated": "2026-02-01T12:00:00Z",
"expires": "2026-03-01T12:00:00Z",
"language": "en-US"
},
"llmld:site": {
"name": "Acme Dental",
"type": "Business",
"industry": ["Healthcare", "Dentistry"],
"description": "Family dental practice in Springfield, IL.",
"founded": "1999",
"domains": {
"primary": "https://www.acmedental.com",
"ai": "https://ai.acmedental.com"
},
"location": {
"headquarters": {
"address": "123 Main Street",
"city": "Springfield",
"state": "IL",
"postal_code": "62701",
"country": "US"
},
"service_area": "Springfield, IL and surrounding communities"
}
},
"llmld:primaryEntity": {
"@id": "#organization",
"@type": "Dentist",
"name": "Acme Dental",
"url": "https://www.acmedental.com"
},
"llmld:summary": {
"one_liner": "Family dental practice in downtown Springfield specializing in pediatric and cosmetic dentistry",
"paragraph": "Acme Dental has been serving Springfield, IL since 1999. We offer a full range of dental services including pediatric dentistry, cosmetic procedures, and emergency care.",
"key_facts": [
"25+ years serving the Springfield community",
"Certified pediatric dental specialists on staff",
"Same-day emergency appointments available",
"Accepts all major insurance plans"
],
"target_customers": ["Families", "Children", "Adults seeking cosmetic dentistry"]
},
"llmld:actions": {
"primary": [
{
"id": "book-appointment",
"name": "Book an Appointment",
"url": "https://www.acmedental.com/book",
"type": "schedule",
"priority": 1
}
],
"contact": [
{
"id": "call-us",
"name": "Call Us",
"type": "contact",
"channels": [
{"type": "phone", "value": "+1-217-555-1234", "label": "Main Line"}
]
}
]
},
"llmld:contact": {
"general": {
"phone": "+1-217-555-1234",
"email": "hello@acmedental.com",
"hours": "Mon-Fri 8am-5pm, Sat 9am-2pm"
},
"address": {
"street": "123 Main Street",
"city": "Springfield",
"state": "IL",
"postal_code": "62701",
"country": "US"
}
},
"llmld:services": [
{
"@id": "#service-pediatric",
"@type": "MedicalTherapy",
"name": "Pediatric Dentistry",
"description": "Complete dental care for children from infancy through adolescence.",
"service_type": "recurring"
}
],
"llmld:verification": {
"status": "verified",
"verified_by": "https://llmdisco.com",
"verified_at": "2026-02-01T00:00:00Z",
"conformance": {"level": 3, "level_name": "Agent-Ready"}
}
}15. JSON Schema
A formal JSON Schema for validating llm-index.json files is maintained at:
https://llmld.org/schema/v1/llm-index.schema.json
16. Changelog
v1.0 (February 2026)
- Initial draft specification
- Three conformance levels defined
- Core, entity, and agent intelligence property groups
- Well-known URI placement
- LLM Disco Directory integration