Regbase API

Backfills

Download every current entity with the paginated list endpoint.

Use GET /v1/entities to copy all current public entities. Omit filter and request the maximum page size:

curl --get "https://api.regbase.com/v1/entities" \
  --header "Authorization: Bearer $REGBASE_API_KEY" \
  --data-urlencode "page[limit]=100"

The endpoint returns canonical entities ordered by ID. It omits deleted or merged source entities.

Read every page

Process the first response, then follow links.next until it is absent:

let url =
  "https://api.regbase.com/v1/entities?page%5Blimit%5D=100";

while (url) {
  const response = await fetch(url, {
    headers: {
      Authorization: `Bearer ${process.env.REGBASE_API_KEY}`,
    },
  });

  if (!response.ok) {
    throw new Error(`Regbase returned ${response.status}`);
  }

  const document = await response.json();

  for (const entity of document.data) {
    await saveEntity(entity);
  }

  url = document.links.next ?? null;
}

Treat links.next as opaque. It already contains the correct page[after] cursor and page limit.

Backfill a subset

Add a qualifier-only filter string to copy a subset:

curl --get "https://api.regbase.com/v1/entities" \
  --header "Authorization: Bearer $REGBASE_API_KEY" \
  --data-urlencode "filter=jurisdiction:US.CA status:Passed" \
  --data-urlencode "page[limit]=100"

Free text is not accepted by the list endpoint. Use qualifiers only.

Entities can change during a long backfill. After the backfill, use the changes endpoint to keep your copy current.

On this page