Local Internet Registry · Documentation · Schema 1.1

Open Records

Approved public facts from the Local Internet, readable by machines.

The Registry identifies.

Open Records exposes approved public facts to machines.

OneBusinessRecord provides the human-readable record.

What Open Records is

A read-only, machine-readable view of facts that already exist and are already public: published Business Records, published Articles and published Media Records. Every response is a live reading of the one canonical record — there is no copy and no sync step.

What it is not

  • Not another database. It stores nothing of its own.
  • Not a Distribution or publication system. Reading a feed never publishes, places or features anything.
  • Not an architecture layer, and not the Registry.
  • Not an AI or agent service. There is no MCP server today.
  • Not a guarantee of where a business appears or how visible it is.

Available datasets

DatasetCollectionOne itemItems key
Business Records/api/public/records/api/public/records/{ORG_…}data
Articles/api/public/articles/api/public/articles/{ART_… or LI-ARTICLE-…}articles
Media Records/api/public/media/api/public/media/{LI-MEDIA-…}media_records

All responses are JSON over HTTPS, open to any origin, and cached for up to 60 seconds.

Schemas and allowed fields

Every feed is allowlist-based: only the fields below can leave. Anything else — internal database IDs, owner, reviewer or admin information, editorial notes, eligibility reasoning — is never returned. A field with no recorded value is left out rather than filled in.

Business Record

  • identifier
  • recordType
  • name
  • description
  • categories
  • website
  • serviceArea
  • hours
  • verification
  • locations
  • states
  • lastUpdated
  • logo
  • images
  • socialProfiles
  • canonicalUrl
  • apiUrl
  • demonstration
  • demonstrationNotice

Business Record location

  • name
  • streetAddress
  • city
  • state
  • postalCode
  • country
  • phone
  • latitude
  • longitude
  • hours
  • serviceArea
  • timeZone

Article

  • identifier
  • article_id
  • public_ref
  • alternate_identifiers
  • title
  • summary
  • body
  • category
  • content_type
  • article_kind
  • author
  • publisher
  • canonical_url
  • canonical_property
  • sections
  • sources
  • referenced_records
  • places
  • disclosure
  • ai_assistance
  • source_type
  • source_attribution
  • source_url
  • corrections
  • published_at
  • updated_at
  • demonstration
  • demonstration_notice

Media Record

  • media_record_id
  • media_type
  • business_supplied
  • headline
  • subheadline
  • summary
  • body
  • sections
  • category
  • topics
  • canonical_url
  • canonical_property
  • business_records
  • places
  • geography
  • author
  • publisher
  • provenance
  • disclosure
  • corrections
  • published_at
  • updated_at
  • expires_at
  • demonstration
  • demonstration_notice
  • citation

A website address appears on a Business Record only once that record is verified.

Record types

recordType is the type stored on the record, never guessed from its web address:

  • business
  • government
  • nonprofit
  • organization

Businesses read at onebusinessrecord.com/business/…; government, nonprofit and other organizations read at onebusinessrecord.com/organization/….

Stable public identifiers

  • ORG_… — Business Records and organizations (field identifier).
  • ART_… — Articles (field identifier). The older LI-ARTICLE-… form is still returned as article_id and still accepted in URLs.
  • LI-MEDIA-… — Media Records (field media_record_id).

Identifiers never change when a name, headline or address changes. Internal database keys are never exposed.

Pagination

Use limit (default 50, maximum 200) and offset. Every collection returns total, count, limit, offset and nextOffset (null on the last page).

GET /api/public/records?limit=50&offset=50

Filtering

  • Business Records: state (e.g. MN), category, updated_since. The state filter is applied to each returned page.
  • Articles: updated_since.
  • Media Records: media_type, updated_since.

Demonstration records (such as the fictional Harbor & Pine Coffee Co.) are excluded from collections. A record requested directly by ID says so in its own demonstration field.

Versions

Every response carries schemaVersion (currently 1.1). Changes within a major version only add fields; existing fields keep their names and meaning.

Changed-since

Pass updated_since as an ISO 8601 date-time. A Business Record counts as changed when the record itself, one of its locations, or one of its publications changed. Articles and Media Records count as changed when the item or its publications changed. lastUpdated / updated_at reflect the latest of these.

GET /api/public/records?updated_since=2026-10-01T00:00:00Z

Removals and withdrawals

When updated_since is supplied, the response also includes removals: items that stopped being publicly available in that window. Each entry has only these fields, and never the withdrawn content:

  • identifier
  • status
  • removedAt
"removals": [{ "identifier": "ORG_…", "status": "removed", "removedAt": "2026-10-02T15:04:00Z" }]

Human-readable links

Each Business Record carries canonicalUrl, its page on OneBusinessRecord.com. Articles and Media Records carry canonical_url only when a property actually publishes them; otherwise it is null. No address is invented.

Relationship to the Registry

The Registry is where an identifier is looked up and its recorded relationships are inspected. Open Records uses the same identifiers; it does not issue or own them.

Public-data and privacy boundary

Only published, non-demonstration items appear in collections. Unpublished records are not part of Open Records. Owner, reviewer and administrator information, claim and verification material, billing, internal IDs and editorial workflow never appear.

The separate business lookup used by owners to find and claim a record is not part of Open Records. For a record that is not yet published it shows only the name, category, general place and claim status.

Provenance and source limitations

Facts come from the canonical record as entered and reviewed. Some fields are legitimately empty today — for example, many Articles list no sources, referenced_records or places. Empty means not recorded; it is never filled in artificially.

Usage limits

No key or account is required. Each client may make up to 60 requests per 60 seconds. Responses carry x-ratelimit-limit and x-ratelimit-remaining; over the limit the answer is 429 with retry-after in seconds.

This is a basic courtesy limit, not a guaranteed hard quota: each server instance counts requests separately, so the limit is not coordinated globally and actual allowance may vary.

Future agent access (MCP)

There is no MCP or agent endpoint today. If one is approved later, it would read these same allowlisted feeds — not a separate data path.