---
title: "ARD entry validity · Sitebulb Labs"
description: "Every ARD entry must carry a domain-anchored urn:air identifier, a display name, a media type, and exactly one of url or data."
url: https://labs.sitebulb.com/docs/checks/discoverability/ard-entries-valid/
---

# ARD entry validity

Every ARD entry must carry a domain-anchored urn:air identifier, a display name, a media type, and exactly one of url or data.

- Category

  [Discoverability](https://labs.sitebulb.com/docs/checks/discoverability)

- Standard

  - Emerging checkEmerging
  - Off by default, turn on in settings

## What it checks

For each entry in the site’s [ARD catalog](https://labs.sitebulb.com/docs/checks/discoverability/ard-catalog), the extension checks the four terms the specification requires:

- an `identifier` that starts with `urn:air:` and whose publisher segment (the part after `urn:air:`) is the domain being scanned,
- a non-empty `displayName`,
- a `type` that looks like a media type (it contains a `/`), and
- exactly one of `url` or `data`, never both and never neither.

The domain anchoring matters because it is what lets a registry tie an entry to whoever served it.

## Results

| Status   | When                                                                               |
| -------- | ---------------------------------------------------------------------------------- |
| **Pass** | Every entry carries all the required terms                                         |
| **Warn** | One or more entries are missing required terms (up to four are listed as evidence) |
| **Warn** | The catalog is published but lists no entries                                      |
| **N/A**  | There is no ARD catalog, or it could not be read                                   |

## How to fix

Fix each entry named in the evidence. A valid entry for `example.com`:

```json
{
  "identifier": "urn:air:example.com:api:orders",
  "displayName": "Orders API",
  "type": "application/openapi+json",
  "url": "https://example.com/openapi.json"
}
```

Use `data` instead of `url` only when you embed the resource’s description inline, and never set both.
