> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcurrent.ca/llms.txt
> Use this file to discover all available pages before exploring further.

# Pre-filling a business

> Fast typeahead lookup that returns ranked, ready-to-use business candidates

Pre-fill powers an as-you-type autocomplete. You send a partial business name, a
business number (BN), or a registration number, and the API returns ranked,
already-canonical candidate profiles you can use to auto-populate a business
record — no manual data entry.

It is the **fast path**: unlike [`/search`](/guides/searching), it does not run
website analysis, sanctions screening, or report fetches. It is built to be
called repeatedly as the user types.

## How it works

1. The query is classified — a name, a BN, or a registration number
2. Multiple registries are queried **in parallel**, each with a short timeout
3. Results are deduplicated, merged, and ranked (exact identifier matches first)
4. A slow or unavailable source is simply omitted — it never blocks the response

<Note>
  Pre-fill responses typically return in **under a second**. Debounce input on
  the client (\~300ms) and cancel in-flight requests as the query changes.
</Note>

## Request parameters

| Parameter | Type    | Default  | Description                                                 |
| --------- | ------- | -------- | ----------------------------------------------------------- |
| `query`   | string  | required | Business name, business number (BN), or registration number |
| `limit`   | integer | `10`     | Maximum number of candidates to return (1–25)               |

## Examples

### By name

```json theme={null}
{ "query": "Shopify" }
```

### By business number or registration number

Identifier-shaped queries are auto-detected; the exact match is pinned to the top.

```json theme={null}
{ "query": "BC0871095", "limit": 5 }
```

## What you get back

Each candidate is a canonical profile with `legalName` (upper-cased),
`operatingNames`, `registrationNumbers`, `entityType` (normalized to a canonical
set, with the registry's original wording preserved in `sourceEntityType`),
`status`, `addresses`, an `incorporationDate` when available, a `matchScore`
(0–1), and the `sources` that contributed.

`status` reports only the current `state` (e.g. `Active`) — pre-fill is a fast
identity lookup, not a point-in-time verification, so there is no per-field
timestamp. Use the response-level `searchedAt` if you need a freshness marker.

The response also reports `mode` (how the query was read) and which sources
responded (`sourcesSucceeded`) or were skipped (`sourcesFailed`).

```json theme={null}
{
  "query": "shopify",
  "mode": "name",
  "candidates": [
    {
      "legalName": "SHOPIFY INC.",
      "operatingNames": [],
      "registrationNumbers": [
        { "type": "federal", "value": "763251", "jurisdiction": "FED", "label": "Federal Corporation Number" },
        { "type": "business_number", "value": "453096922", "label": "Business Number (CRA)" }
      ],
      "entityType": "Corporation",
      "sourceEntityType": "Business corporation",
      "status": { "state": "Active" },
      "addresses": [{ "city": "Ottawa", "province": "Ontario", "country": "Canada" }],
      "matchScore": 1,
      "sources": ["business_registries", "federal_corporations"]
    }
  ],
  "sourcesSucceeded": ["business_registries", "federal_corporations", "regulatory"],
  "sourcesFailed": ["orgbook_bc"],
  "searchedAt": "2026-06-26T00:00:00.000Z"
}
```

<Tip>
  Take the candidate the user selects and feed its fields straight into your
  create-business flow. When you need the full verified record (sanctions,
  website, people, report), follow up with [`/search`](/guides/searching) or
  [`/verify`](/guides/verification).
</Tip>

For the full request and response schema, see the
[Pre-fill Business](/api-reference/prefill-business) endpoint.
