Resolver specification

Entity-ID Resolver Specification

This document describes how public Entity-ID records on oneentity.id are resolved and represented.

It is intended for crawlers, search engines, knowledge graph systems, AI agents and developers that need a stable way to reference a public entity record.

1. Scope

oneentity.id provides public resolver records for entities such as people and organizations. A resolver record is not a login account, social profile or verification badge. It is a public identifier record with a human-readable page and a machine-readable JSON-LD representation.

Registration, claiming and record management are handled separately through myentity.id. Public resolution happens on oneentity.id.

2. URL forms

Each public record can have two relevant URL forms: a human-readable resolver URL and a stable Entity @id URL.

People

Human-readable resolver URL:
https://oneentity.id/p/example-person

Stable Entity @id:
https://oneentity.id/p/p7ka-4m2q-x9vz#person

Organizations

Human-readable resolver URL:
https://oneentity.id/o/example-organization

Stable Entity @id:
https://oneentity.id/o/o8ra-7p3m-k2qx#organization

The resolver URL is designed for humans and public linking. The stable Entity @id is designed for structured data, knowledge graph references and systems that need a persistent entity identifier.

3. Representations

Public records are available as HTML and JSON-LD. The HTML representation includes embedded Schema.org JSON-LD. The JSON-LD representation exposes the structured graph directly.

HTML

GET /p/example-person
Accept: text/html

The server returns a human-readable HTML page with embedded JSON-LD.

JSON-LD by content negotiation

GET /p/example-person
Accept: application/ld+json

The server returns the JSON-LD representation with the content type application/ld+json; charset=utf-8.

JSON-LD by query parameter

GET /p/example-person?format=jsonld
GET /p/example-person?format=json

Query parameters are provided for clients that cannot set an Accept header. The canonical record URL remains the resolver URL.

4. Content types and response headers

Implementations should expect the following response types.

HTML:
Content-Type: text/html; charset=utf-8

JSON-LD:
Content-Type: application/ld+json; charset=utf-8

JSON-LD responses may include caching and negotiation headers such as:

ETag: "..."
Last-Modified: ...
Vary: Accept

Vary: Accept indicates that the same URL can return different representations depending on the request Accept header.

5. Redirect behavior

A stable UID path without a fragment may redirect to the current human-readable resolver URL.

GET /p/p7ka-4m2q-x9vz
301 -> /p/example-person

The stable Entity @id remains unchanged:

https://oneentity.id/p/p7ka-4m2q-x9vz#person

This separates the public page URL from the stable entity identifier. Slugs may be used for readability. Entity UIDs are intended to remain stable.

6. Structured data model

Public records use Schema.org JSON-LD. A person record typically contains a ProfilePage node and a Person node. An organization record typically contains an ItemPage node and an Organization node.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "ProfilePage",
      "@id": "https://oneentity.id/p/example-person#webpage",
      "url": "https://oneentity.id/p/example-person",
      "mainEntity": {
        "@id": "https://oneentity.id/p/p7ka-4m2q-x9vz#person"
      }
    },
    {
      "@type": "Person",
      "@id": "https://oneentity.id/p/p7ka-4m2q-x9vz#person",
      "name": "Example Person",
      "mainEntityOfPage": {
        "@id": "https://oneentity.id/p/example-person#webpage"
      }
    }
  ]
}

7. Referencing an Entity-ID

When a website, author profile, imprint, publication or structured data block refers to an entity, the stable Entity @id can be used where a machine-readable identifier is useful.

Public Entity-ID:
https://oneentity.id/p/p7ka-4m2q-x9vz#person

For visible links intended for humans, the resolver URL may be used instead.

Entity-ID:
https://oneentity.id/p/example-person

If the linking page represents the same person or organization, rel="me" may be used where appropriate.

<a href="https://oneentity.id/p/p7ka-4m2q-x9vz#person" rel="me">
  Entity-ID: p7ka-4m2q-x9vz
</a>

8. Sitemaps and discovery

Public records can be discovered through normal HTML links and the oneentity.id sitemap. The sitemap is intended for discovery. Internal links provide site structure and should be followed by crawlers in the usual way.

https://oneentity.id/sitemap.xml
https://oneentity.id/browse

9. Record lifecycle

Public resolution depends on the lifecycle state of a record. Inactive, expired or purged records may stop returning public HTML or JSON-LD. Stable Entity UIDs are not intentionally reassigned to a different entity.

Non-reassignment of an Entity UID does not create a right to perpetual public hosting, indexing, recovery or resolution.

10. Verification status

A public Entity-ID record is an identifier record. Payment, control checks or administrative review do not create a public verification status unless explicitly stated on the record. External identifiers and links are provided as structured references, not as a general endorsement.

This specification describes the public resolver behavior of oneentity.id. It may be updated as the resolver, lifecycle rules and supported entity types evolve.