# The Register

APIs.io keeps a register of API providers. This page says how an entry gets there, what it claims,
what removes one, and how to argue with any of it.

## What an entry is, and is not

An entry says **what a provider publishes**, read from what they publish. A profile is built from
machine-readable documents the provider serves — an `apis.json`, an OpenAPI, an `llms.txt`, a
`.well-known` linkset — and from what is publicly readable about them.

**An entry is not an endorsement, a certification, or a relationship.** A provider does not apply,
is not asked, and is not charged. Most entries exist because the provider published something we
could read, not because anybody contacted anybody.

## APIs.io is a directory and a provider at the same time

APIs.io keeps this register **and** publishes its own API into it. That is a conflict, it is real,
and it is not resolved — it is **accepted**, which is a different thing and should be described as
such.

There is no supervisory body here, no second directory checking this one, and no appeal beyond us.
What stands in for those is narrower and, for someone using the register, more useful:

- **The rubric is public.** Every check the [Kin Score](https://apis.io/rating/) applies is
  published, with its points.
- **Every score is recomputable.** A provider who disagrees with a rating can recompute it from the
  same rubric and the same artifacts before disputing it.
- **Correcting our error is free**, through the same path as everyone else, and always will be. A
  rating product that charges to fix its own mistake would be the one genuinely indefensible thing.

## What gets you listed

Publishing something machine-readable, and being findable. In practice:

| route | what happens |
|---|---|
| **We harvest it** | Most entries. A provider publishing an `apis.json`, OpenAPI or `llms.txt` gets read and profiled. |
| **Somebody submits it** | Through [the Inbox](https://github.com/api-search/inbox). It is researched, and either profiled or parked with a reason. |
| **You claim your profile** | Claiming an existing profile is the enrolment act. The register does not have a separate application. |

A submission is **parked rather than published** when the research cannot establish a consumable
surface, when the host cannot be verified, or when confidence is too low. Parking is not a
rejection and carries no penalty — it means we could not confirm enough to publish, which is a
statement about our evidence as often as about the provider.

## What gets you removed

Every removal carries a recorded basis. There are three, and they are not interchangeable:

| basis | means |
|---|---|
| **`owner-request`** | The provider asked. No justification is required from them, and none is recorded beyond the request. |
| **`catalog-hygiene`** | The entry is dead, duplicated, or was never a real API. An observation, not a judgment. |
| **`policy`** | We refused a **real, functioning** service on what it sells. |

`policy` is different in kind from the other two and is used sparingly. Because it is a judgment
about a business rather than an observation that a domain is dead, a `policy` entry **must carry
the evidence in its reason, quoting the provider's own material.** It is never used as a tidier
label for a hygiene removal.

**A removal without a recorded reason is not a decision — it is a rumour with our name on it.**
That rule predates this page and survives it. With no supervisor and no second directory, the
recorded basis is the only thing standing between a removal and an unexplained absence.

Removal is not always permanent. A `catalog-hygiene` removal reverses the moment the thing it
observed stops being true. An `owner-request` removal reverses if the owner asks. A `policy`
removal does not carry an automatic route back.

## How to dispute

Anything on this page, and anything in an entry, through
[the Inbox](https://github.com/api-search/inbox).

Disputes worth naming separately, because they are answered differently:

- **"This fact about us is wrong."** Corrected, free, and the correction is the whole response.
- **"This score is wrong."** Recompute it from the [public rubric](https://apis.io/rating/) first —
  if the rubric produces your number and not ours, that is a defect in our scoring and we want it.
  If the rubric produces our number, the disagreement is with the rubric, which is a longer and
  more interesting conversation.
- **"We should not be listed at all."** `owner-request`, no justification needed.
- **"Your removal was wrong."** The basis is recorded; argue with it.

## What this page does not promise

No uptime commitment for an entry, no guarantee a profile is current, and no assurance that a
provider still behaves as their published documents say. The register reports what was readable
when it was read, and every score carries the date it was computed.
