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

# Aircraft Registration

> Look up US aircraft registrations by N-number, Mode S code or registered owner.

Find US civil aircraft and their registered owners in the daily FAA registry. Search by N-number, six-digit hexadecimal Mode S code or owner-name prefix. No street addresses are returned. Registration does not establish who flies the aircraft or its current location.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

**registration** `string`

US N-number, such as N123AB.

**icao24** `string`

Six hexadecimal Mode S digits.

**owner\_name** `string`

Registered owner name prefix. 1 to 200 characters. Owner name must be valid Unicode without null characters.

**limit** `integer`

Maximum owner-search rows. From 1 to 50. Defaults to `25`.

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

**data.request\_id** `string`

Durable job ID for audit and lookup

**data.status** `string`

Job status: `completed`

**data.tool** `string`

Always `aircraft_registration`

**data.result** `object`

The answer, described under Result below

**data.evidence** `object`

Where the answer came from and when

**data.evidence.source** `string`

The public body the data comes from. Always `US Federal Aviation Administration`.

**data.evidence.source\_kind** `string`

`public` when the data comes from a public body, `commercial` otherwise

**data.evidence.retrieved\_at** `string`

When the lookup was made, as an ISO 8601 UTC time

**data.evidence.as\_of** `string | null`

When the source says the fact was last updated, or `null` when the source gives no date

## Result

Nested under `data.result`.

**data.result.found** `boolean`

Found.

**data.result.aircraft** `object[]`

Aircraft.

**data.result.aircraft\[].observed** `object`

Observed.

**data.result.aircraft\[].observed.registration** `string`

Registration.

**data.result.aircraft\[].observed.icao24** `string | null`

Icao24. `null` when the source gives no value.

**data.result.aircraft\[].observed.serial\_number** `string | null`

Serial number. `null` when the source gives no value.

**data.result.aircraft\[].observed.manufacturer** `string | null`

Manufacturer. `null` when the source gives no value.

**data.result.aircraft\[].observed.model** `string | null`

Model. `null` when the source gives no value.

**data.result.aircraft\[].observed.type\_aircraft** `string | null`

Type aircraft. `null` when the source gives no value.

**data.result.aircraft\[].observed.year** `integer | null`

Year. `null` when the source gives no value.

**data.result.aircraft\[].observed.registrant\_type** `string | null`

Registrant type. `null` when the source gives no value.

**data.result.aircraft\[].observed.registrant\_name** `string | null`

Registrant name. `null` when the source gives no value.

**data.result.aircraft\[].observed.registrant\_city** `string | null`

Registrant city. `null` when the source gives no value.

**data.result.aircraft\[].observed.registrant\_state** `string | null`

Registrant state. `null` when the source gives no value.

**data.result.aircraft\[].observed.registrant\_country** `string | null`

Registrant country. `null` when the source gives no value.

**data.result.aircraft\[].observed.status** `string | null`

Status. `null` when the source gives no value.

**data.result.aircraft\[].observed.certificate\_issued** `string | null`

Certificate issued. `null` when the source gives no value.

**data.result.aircraft\[].observed.expiration** `string | null`

Expiration. `null` when the source gives no value.

**data.result.aircraft\[].derived** `object`

Derived.

**data.result.total** `integer`

Total.

**data.result.returned** `integer`

Returned.

**data.result.truncated** `boolean`

Truncated.

**data.result.coverage** `object`

Coverage.

**data.result.coverage.available** `boolean`

Available.

**data.result.coverage.as\_of** `string | null`

As of. `null` when the source gives no value.

**data.result.coverage.scope** `string`

Scope.

**data.result.coverage.reason** `string | null`

Reason. `null` when the source gives no value.

```bash cURL theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/aircraft-registration \
  -H "Content-Type: application/json" \
  -H "payment-signature: <base64 x402 payment>" \
  -d '{
    "registration": "N123AB"
  }'
```

```javascript JavaScript theme={null}
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/aircraft-registration", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "payment-signature": paymentProof,
  },
  body: JSON.stringify({
    "registration": "N123AB"
  }),
});
```

```typescript SDK theme={null}
const result = await agent.tool('lookup/aircraft-registration', {
  registration: 'N123AB'
});
console.log(result.result);
console.log(result.evidence);
```

```json Response (200) theme={null}
{
  "success": true,
  "data": {
    "request_id": "uuid",
    "receipt_id": "rcpt_...",
    "status": "completed",
    "tool": "aircraft_registration",
    "result": {
      "found": false,
      "aircraft": [],
      "total": 0,
      "returned": 0,
      "truncated": false,
      "coverage": {
        "available": true,
        "as_of": "2026-10-27T04:30:00.000Z",
        "scope": "US civil aircraft in the FAA releasable registry",
        "reason": null
      }
    },
    "evidence": {
      "source": "US Federal Aviation Administration",
      "source_kind": "public",
      "retrieved_at": "2026-10-28T00:00:00.000Z",
      "calls": [
        {
          "retrieved_at": "2026-10-28T00:00:00.000Z"
        }
      ],
      "as_of": "2026-10-27T04:30:00.000Z"
    }
  }
}
```

> [!NOTE]
>
> See [Pricing](https://docs.oneshotagent.com/pricing.md) for this tool's price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers `200`.

## Notes

* An empty result with coverage.available true means no match in the held release. False means no evidence either way.
* Observed fields are registry values, with code labels and date formatting decoded. There are no derived aircraft fields.
* Owner names match normalized uppercase text prefixes. Lists default to 25 rows, at most 50. Status and aircraft type retain FAA codes.
* The source refreshes daily at 11:30 p.m. Central. coverage.as\_of dates the held release; newer registrations may be absent.
* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.