This specification is published and recommended for implementation. Backwards-compatible additions may occur in MINOR versions; breaking changes only in MAJOR versions, with deprecation notice. See specification conventions for status definitions.
identity.json Specification
Canonical Structured Identity Data File Format
This specification defines the structure and schema for identity.json files — strict JSON files that provide canonical, factual identity data about a business or organisation. The file is aligned with Schema.org Organisation vocabulary and serves as the authoritative source for business identity information that AI systems can programmatically access.
§1 Overview
What This File Does
The identity.json file provides canonical, factual identity data about a business or organisation in a structured, machine-parseable format. It answers the fundamental question: "Who are you, officially?"
Key Distinction
Compare identity.json with other AI discovery files:
| File | Purpose |
|---|---|
identity.json | Facts: Who we officially are (name, locations, identifiers) |
ai.json | Guidance: How AI should interact with us |
llms.txt | Context: Human-readable business summary |
Why Structured Identity Matters
AI systems frequently need to:
- Verify the correct name of a business
- Identify related entities (subsidiaries, trading names)
- Find contact information
- Understand geographic scope
- Verify official identifiers (company registration, VAT)
A structured identity.json file provides this information unambiguously.
This specification aligns with Schema.org Organisation vocabulary where applicable, making the data familiar to search engines and AI systems already trained on Schema.org markup.
§2 File Location
Primary Location
The identity.json file MUST be placed in the website's root directory:
https://example.com/identity.json
URL Requirements
- The file MUST be served with content type
application/json; charset=utf-8 - The URL MUST be accessible without authentication
- HTTPS is strongly recommended
- The file MUST be valid JSON
Multiple Domains and Subdomains
An identity.json file is scoped to the host (origin) at which it is published, where "host" is the authority component of the URL defined by RFC 3986. A file at https://example.com/identity.json describes example.com only. It does not, by itself, describe www.example.com, shop.example.com, or any other host.
The following rules apply:
- Each host MUST be treated independently. A consumer MUST NOT assume that an
identity.jsonat one host is authoritative for any other host, even when the hosts share a registrable domain. - Apex and
www.SHOULD be aligned. When a publisher serves a site at both the apex and thewww.subdomain, the twoidentity.jsonfiles SHOULD have identical content, OR one host SHOULD HTTP-redirect (301) to the other. Divergent files on aligned hosts MUST be treated as independent identities until the divergence is resolved. - Distinct subdomains SHOULD publish their own files. If a subdomain represents a meaningfully different organisation, brand, product, or audience (for example a status page at
status.example.com, or a separately branded property atshop.example.com), it SHOULD publish its ownidentity.json. - Cross-host identity MUST be asserted via
sameAs. When a publisher claims that several hosts represent one organisation, each host'sidentity.jsonSHOULD list the canonical URL of every other host in itssameAsarray, in URL form (for example"https://example.com/"and"https://example.org/"). A consumer that observes mutualsameAsdeclarations across hosts MAY treat them as one identity for retrieval and citation; without mutual declaration, hosts MUST be treated as separate. - The canonical host SHOULD be designated via
url. Theurlproperty ofidentity.jsondeclares the publisher's preferred canonical web address. When a consumer must collapse mutually-asserted hosts to a single identity for citation, it SHOULD prefer the host whoseidentity.jsondeclares itself asurl.
The llms.txt specification's multi-domain scoping section and the processing model apply the same rules at the suite level.
§3 Format Specification
File Format
| Property | Requirement |
|---|---|
| Encoding | UTF-8 (required) |
| Format | Strict JSON (RFC 8259) |
| Root element | Object (required) |
| Schema reference | $schema property (recommended) |
Basic Structure
{
"$schema": "https://www.ai-visibility.org.uk/specifications/identity-json/v1/identity-json.schema.json",
"name": "Example Company Ltd",
"type": "Corporation",
"url": "https://example.com",
"description": "A brief factual description",
"alternateNames": ["Example Co"],
"foundingDate": "2010-01-15",
"locations": [...],
"contactPoints": [...],
"sameAs": [...],
"identifiers": {...}
}
Language declaration (optional)
Publishers MAY declare the natural language of the file's human-readable string content (for example name, description, locality names) using a top-level language property. The value MUST be a valid BCP 47 language tag:
{
"$schema": "https://www.ai-visibility.org.uk/specifications/identity-json/v1/identity-json.schema.json",
"language": "en-GB",
"name": "Example Company Ltd",
...
}
The property is optional. When absent, consumers SHOULD NOT assume a default language. When present, validators MUST treat the value as informational and MUST NOT fail conformance solely on language-tag content. See specification conventions §5.1 for the full rule. For multilingual identity fields, see also the locale-tagged variants documented in internationalisation and accessibility.
§4 JSON Schema
Schema Location
The canonical JSON Schema for identity.json files is published at two URLs:
- Versioned (recommended for stability):
https://www.ai-visibility.org.uk/specifications/identity-json/v1/identity-json.schema.json - Unversioned (latest alias):
https://www.ai-visibility.org.uk/specifications/identity-json/identity-json.schema.json
The versioned URL is permanent and will never change shape. The unversioned URL tracks the current major version. See Schema URL versioning for the policy.
Schema Reference
Files SHOULD include a $schema property. Pinning to the versioned URL is recommended:
{
"$schema": "https://www.ai-visibility.org.uk/specifications/identity-json/v1/identity-json.schema.json",
...
}
§5 Property Reference
Required Properties
| Property | Type | Schema.org | Description |
|---|---|---|---|
name |
string | name | Official registered business name |
type |
string | @type | Organisation type (Corporation, LocalBusiness, etc.) |
url |
string (URI) | url | Canonical website URL |
description |
string | description | Factual business description (1-3 sentences) |
Recommended Properties
| Property | Type | Schema.org | Description |
|---|---|---|---|
alternateNames |
array of strings | alternateName | Trading names, abbreviations, former names |
foundingDate |
string (date) | foundingDate | Date the organisation was founded (ISO 8601) |
locations |
array of objects | location | Physical locations (offices, headquarters) |
contactPoints |
array of objects | contactPoint | Contact channels (email, phone, etc.) |
areaServed |
array of strings | areaServed | Geographic areas served (ISO 3166-1 codes) |
Optional Properties
| Property | Type | Schema.org | Description |
|---|---|---|---|
sameAs |
array of URIs | sameAs | Official social profiles, directory listings |
identifiers |
object | identifier | Official identifiers (company number, VAT, DUNS, etc.) |
industry |
string | - | Primary industry or sector |
parentOrganization |
object | parentOrganization | Parent company if subsidiary |
subOrganization |
array of objects | subOrganization | Subsidiaries or divisions of the organisation |
numberOfEmployees |
object | numberOfEmployees | Employee count or range (e.g., {"min": 50, "max": 100}) |
logo |
string (URI) | logo | URL to official company logo |
metadata |
object | - | File version, last updated date |
Content Not Permitted
The following MUST NOT be included in identity.json files:
- Unverified claims: All identity information MUST be factual and verifiable
- Non-Schema.org properties: Custom properties outside the specification MAY be ignored by parsers
- Personal identifiable information: Do not include individual email addresses; use role-based addresses only
- Marketing language: Keep descriptions factual, not promotional
- Invalid identifiers: Company numbers, VAT numbers, etc. MUST be accurate and current
- Sensitive data: Do not include passwords, API keys, internal systems information
- Outdated information: Ensure locations, contact details, and identifiers are current
Location Object Structure
{
"type": "headquarters",
"name": "Manchester Office",
"address": {
"streetAddress": "45 Deansgate",
"addressLocality": "Manchester",
"postalCode": "M3 2BA",
"addressCountry": "GB"
},
"telephone": "+44 161 555 0123"
}
ContactPoint Object Structure
{
"type": "General Enquiries",
"email": "hello@example.com",
"telephone": "+44 161 555 0123"
}
Identifiers Object Structure
{
"companyNumber": "08123456",
"jurisdiction": "England and Wales",
"vatNumber": "GB123456789"
}
§6 Schema.org Alignment
Vocabulary Mapping
The identity.json structure maps to Schema.org Organisation vocabulary:
| identity.json | Schema.org | Notes |
|---|---|---|
| name | name | Direct mapping |
| type | @type | Use Schema.org types: Corporation, LocalBusiness, etc. |
| url | url | Direct mapping |
| description | description | Direct mapping |
| alternateNames | alternateName | Array in identity.json |
| locations | location + PostalAddress | Extended structure |
| contactPoints | contactPoint + ContactPoint | Extended structure |
| sameAs | sameAs | Direct mapping |
Organisation Types
Use Schema.org organisation types for the type property:
Corporation— Limited company or corporationLocalBusiness— Local business with physical presenceOrganization— Generic organisationGovernmentOrganization— Government entityNGO— Non-governmental organisationEducationalOrganization— Schools, universities
Converting to Schema.org JSON-LD
An identity.json file can be converted to Schema.org JSON-LD by adding @context and adjusting property names:
{
"@context": "https://schema.org",
"@type": "Corporation",
"name": "Example Company Ltd",
"url": "https://example.com",
...
}
§7 Validation Rules
Valid File Requirements
An identity.json file is considered valid when:
- It is valid JSON (parseable without errors)
- It contains all required properties (name, type, url, description)
- The
urlis a valid absolute URI - The
typeis a recognised organisation type - Date fields use ISO 8601 format (YYYY-MM-DD)
- Country codes use ISO 3166-1 alpha-2 format
Common Errors
| Error | Resolution |
|---|---|
| Invalid JSON syntax | Check for trailing commas, missing quotes |
| Missing required properties | Add name, type, url, description |
| Invalid date format | Use ISO 8601: 2012-03-15 |
| Invalid country codes | Use ISO 3166-1 alpha-2: GB, IE, NL |
| Relative URLs | Use absolute URLs with protocol |
§8 Relationship to Other Files
Related AI Discovery Files
| File | Relationship |
|---|---|
llms.txt |
Business name and description MUST match |
llms.html |
Schema.org markup SHOULD align with identity.json |
ai.json |
Name and URL MUST match |
brand.txt |
Official names and alternate names MUST align |
Hierarchy of Authority
For factual identity data, identity.json is the canonical source. Other files SHOULD reference or match this data:
identity.json— source of truth for identity factsllms.txt/llms.html— MUST match, human-readableai.json— name/url MUST match
Conflict Resolution
| Scenario | Resolution |
|---|---|
| Schema.org Organization name differs from identity.json | Update Schema.org to match identity.json |
| brand.txt has names not in alternateNames | Add to identity.json alternateNames or remove from brand.txt |
| llms.txt H1 differs from identity.json name | identity.json is correct; update llms.txt |
For complete conflict resolution rules, see the Interoperability Guide.
§9 Canonical Example
The following example demonstrates a complete identity.json file:
{
"$schema": "https://www.ai-visibility.org.uk/specifications/identity-json/v1/identity-json.schema.json",
"name": "Horizon Strategic Consulting Ltd",
"type": "Corporation",
"url": "https://www.horizonconsulting.example",
"description": "UK-headquartered management consultancy providing strategic advisory, operational improvement, and digital transformation services to mid-market and enterprise clients across the UK, Ireland, Netherlands, and Belgium.",
"alternateNames": [
"Horizon Consulting",
"Horizon Strategic Consulting"
],
"foundingDate": "2012-03-15",
"industry": "Management Consulting",
"locations": [
{
"type": "headquarters",
"name": "Manchester Office",
"address": {
"streetAddress": "45 Deansgate",
"addressLocality": "Manchester",
"postalCode": "M3 2BA",
"addressCountry": "GB"
},
"telephone": "+44 161 555 0123"
},
{
"type": "office",
"name": "Dublin Office",
"address": {
"streetAddress": "15 St Stephen's Green",
"addressLocality": "Dublin",
"postalCode": "D02 XY45",
"addressCountry": "IE"
}
},
{
"type": "office",
"name": "Amsterdam Office",
"address": {
"streetAddress": "Herengracht 500",
"addressLocality": "Amsterdam",
"postalCode": "1017 CB",
"addressCountry": "NL"
}
}
],
"areaServed": ["GB", "IE", "NL", "BE"],
"contactPoints": [
{
"type": "General Enquiries",
"email": "hello@horizonconsulting.example",
"telephone": "+44 161 555 0123"
},
{
"type": "Press and Media",
"email": "press@horizonconsulting.example"
},
{
"type": "AI Enquiries",
"email": "ai@horizonconsulting.example"
}
],
"sameAs": [
"https://www.linkedin.com/company/horizonconsulting-example",
"https://twitter.com/horizonconsult"
],
"identifiers": {
"companyNumber": "08123456",
"jurisdiction": "England and Wales",
"vatNumber": "GB123456789"
},
"metadata": {
"version": "1.0",
"lastUpdated": "2026-01-12"
}
}
§10 Implementation Notes
Best Practices
- Include the
$schemareference for validation - Keep description factual, not promotional
- Use ISO standards for dates and country codes
- Verify official identifiers are accurate
- Update metadata.lastUpdated when making changes
Synchronisation
When updating identity information:
- Update
identity.jsonfirst (canonical source) - Update
llms.txtandllms.htmlto match - Verify
ai.jsonname/url alignment - Check
brand.txtname consistency
Privacy Considerations
- Only include publicly available contact information
- Do not include personal email addresses (use role-based addresses)
- Consider which identifiers are appropriate to publish
§11 Machine-Readable Formats
This specification and the JSON Schema are available for programmatic access:
§12 Version History
Phase 6 standardisation release. Added /specifications/roadmap/ (theme-pegged forward plan with Active/Next/Future/On hold status flags), /specifications/extensions/ (rules for experimental x- prefixed files and the promotion path), and /specifications/i18n-a11y/ (multi-language publication, locale-tagged identity fields, RTL handling, accessibility of llms.html). Added the Discovery: directive to the robots-ai.txt specification (publishers MAY advertise AI Discovery Files on the same host). Added a formal media-type stance to the HTTP behaviour page (existing IANA types, no bespoke registrations). Expanded the file integrity and signing section on the security and privacy page with four candidate mechanisms, cross-cutting concerns, and interim publisher / consumer guidance. The Discovery: directive is the only normative addition to publisher behaviour; all other additions are forward-looking documentation.
Phase 5 standardisation release. Added /specifications/related-standards/ (positioning vs llmstxt.org, IETF AI Preferences, robots.txt, Schema.org, BCP 14, JSON Schema 2020-12, SemVer) and /specifications/implementations/ (public record of conformant implementations, IETF-style). Added an explicit llmstxt.org backward-compatibility statement to the llms.txt specification. Added a formal multi-domain and subdomain scoping rule to both the llms.txt and identity.json specifications (host-scoped files, cross-host identity asserted via sameAs). No normative requirements changed for existing publishers; the new scoping rules formalise behaviour the specification already implied.
Phase 4 standardisation release. Added /specifications/processing-model/ (seven-stage algorithm for conformant consumers), /specifications/consumer-guidance/ (what AI systems should do with AI Discovery Files), /specifications/test-vectors/ (canonical test suite framing), and reference-implementation framing on the AI Visibility Checker. No normative requirements changed.
Phase 3 standardisation release. Added /specifications/versioning/ (Semantic Versioning 2.0.0 commitments, deprecation timeline, lifecycle), /specifications/governance/ (proposal lifecycle, editorial process, working principles), /specifications/security-privacy/ (trust model, content-injection patterns, GDPR considerations, integrity primitives roadmap), and /specifications/http-behaviour/ (status codes, redirects, soft-404 detection, caching, rate limits). No normative requirements changed.
Phase 2 standardisation release. Added formal conformance specification (Essential / Recommended / Complete classes). Published machine-readable registry at /specifications/registry.json, spec meta-schema, and validator-output schema. Introduced versioned JSON Schema URLs (/v1/) alongside unversioned 'latest' aliases. Added optional BCP 47 language declaration field across all applicable AI Discovery Files. No normative requirements changed.
Phase 1 standardisation release. Added 'Status of This Document' block (Stable). Normalised normative requirement keywords to uppercase per RFC 2119 and RFC 8174. Added References section linking to /specifications/conventions/ and /licensing/. No normative requirements changed.
Added AI Visibility Directory registration guidance. Minor documentation update.
Added expanded optional properties (subOrganization, numberOfEmployees, logo) and Content Not Permitted guidance. Clarifies Schema.org alignment and privacy considerations.
Initial publication. Establishes JSON format for canonical identity data aligned with Schema.org Organisation vocabulary.
Conformance
This file is required for the Recommended and Complete conformance classes. A publisher claiming Recommended or Complete conformance MUST publish a valid version of this file at the website's root. The Essential class does not require this file.
See the Conformance specification for full publisher and validator conformance criteria, including identity-consistency requirements across files and the relationship between self-declaration and Directory verification.
References
- Specification Conventions — RFC 2119 + RFC 8174 requirement keywords, document statuses, anchor naming, versioning, and language conventions used across every AI Discovery File specification.
- Licensing & Trademark — CC BY 4.0 for specification text and examples, MIT for JSON Schemas, and the free-use policy on the name "AI Discovery Files".