Specification Version 1.7.0
Published
Last Modified
Status Stable

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

Abstract

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:

FilePurpose
identity.jsonFacts: Who we officially are (name, locations, identifiers)
ai.jsonGuidance: How AI should interact with us
llms.txtContext: 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.

Schema.org Alignment

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:

  1. Each host MUST be treated independently. A consumer MUST NOT assume that an identity.json at one host is authoritative for any other host, even when the hosts share a registrable domain.
  2. Apex and www. SHOULD be aligned. When a publisher serves a site at both the apex and the www. subdomain, the two identity.json files 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.
  3. 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 at shop.example.com), it SHOULD publish its own identity.json.
  4. Cross-host identity MUST be asserted via sameAs. When a publisher claims that several hosts represent one organisation, each host's identity.json SHOULD list the canonical URL of every other host in its sameAs array, in URL form (for example "https://example.com/" and "https://example.org/"). A consumer that observes mutual sameAs declarations across hosts MAY treat them as one identity for retrieval and citation; without mutual declaration, hosts MUST be treated as separate.
  5. The canonical host SHOULD be designated via url. The url property of identity.json declares 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 whose identity.json declares itself as url.

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

PropertyRequirement
EncodingUTF-8 (required)
FormatStrict JSON (RFC 8259)
Root elementObject (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

PropertyTypeSchema.orgDescription
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

PropertyTypeSchema.orgDescription
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

PropertyTypeSchema.orgDescription
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.jsonSchema.orgNotes
namenameDirect mapping
type@typeUse Schema.org types: Corporation, LocalBusiness, etc.
urlurlDirect mapping
descriptiondescriptionDirect mapping
alternateNamesalternateNameArray in identity.json
locationslocation + PostalAddressExtended structure
contactPointscontactPoint + ContactPointExtended structure
sameAssameAsDirect mapping

Organisation Types

Use Schema.org organisation types for the type property:

  • Corporation — Limited company or corporation
  • LocalBusiness — Local business with physical presence
  • Organization — Generic organisation
  • GovernmentOrganization — Government entity
  • NGO — Non-governmental organisation
  • EducationalOrganization — 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 url is a valid absolute URI
  • The type is a recognised organisation type
  • Date fields use ISO 8601 format (YYYY-MM-DD)
  • Country codes use ISO 3166-1 alpha-2 format

Common Errors

ErrorResolution
Invalid JSON syntaxCheck for trailing commas, missing quotes
Missing required propertiesAdd name, type, url, description
Invalid date formatUse ISO 8601: 2012-03-15
Invalid country codesUse ISO 3166-1 alpha-2: GB, IE, NL
Relative URLsUse absolute URLs with protocol

§8 Relationship to Other Files

Related AI Discovery Files

FileRelationship
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:

  1. identity.json — source of truth for identity facts
  2. llms.txt / llms.html — MUST match, human-readable
  3. ai.json — name/url MUST match

Conflict Resolution

ScenarioResolution
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
See Also

For complete conflict resolution rules, see the Interoperability Guide.

§9 Canonical Example

The following example demonstrates a complete identity.json file:

Complete Example
{
    "$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 $schema reference 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:

  1. Update identity.json first (canonical source)
  2. Update llms.txt and llms.html to match
  3. Verify ai.json name/url alignment
  4. Check brand.txt name 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

1.7.0

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.

1.6.0

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.

1.5.0

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.

1.4.0

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.

1.3.0

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.

1.2.0

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.

1.1.1

Added AI Visibility Directory registration guidance. Minor documentation update.

1.1.0

Added expanded optional properties (subOrganization, numberOfEmployees, logo) and Content Not Permitted guidance. Clarifies Schema.org alignment and privacy considerations.

1.0.0

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".
Free WordPress Plugin

Generate AI Discovery Files from your dashboard

Using WordPress? Install the plugin and create all 10 files in minutes — no coding, no configuration files to edit manually.

Get the Plugin

Register in the AI Visibility Directory

Once your AI Discovery Files are published, register your website in the AI Visibility Directory — the verified registry of websites implementing AI Discovery Files. Registration validates your implementation and lists your site for AI systems and industry peers to discover.

Basic Listing

Card entry in the directory with automated file validation. Open to any site with a valid llms.txt file. No cost.

Full Listing Recommended

Dedicated profile page on the directory with dofollow backlinks to your website — a genuine SEO authority signal from a topically relevant, verified source. Includes an attribution badge and enhanced visibility.