# Look up by Fieldgeist ID (/api-reference/lookup-by-id)

```http
GET https://api.fieldgeist.com/v1/verify/lookup/{fieldgeist_id}
```

Returns one parcel by its [Fieldgeist ID](/concepts/fieldgeist-ids): its address, APN, county FIPS code, coordinates and building ID. Use it to refresh a parcel you matched earlier without matching the address again.

## Authentication [#authentication]

`Authorization: Bearer <key>`. See [Authentication](/authentication).

## Path parameters [#path-parameters]

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `fieldgeist_id` | string | Yes | A parcel's Fieldgeist ID: `adr_` followed by a 26-character ULID, such as `adr_01JA2Z3Y4X5W6V7T8S9R0QPNMA`. Building IDs (`bld_…`) can't be fetched yet. |

## Request example [#request-example]

<Tabs items={["cURL", "JavaScript", "Python"]}>
<Tab value="cURL">

```bash
curl https://api.fieldgeist.com/v1/verify/lookup/adr_01JA2Z3Y4X5W6V7T8S9R0QPNMA \
  -H "Authorization: Bearer $FIELDGEIST_API_KEY"
```

</Tab>
<Tab value="JavaScript">

```js
const id = "adr_01JA2Z3Y4X5W6V7T8S9R0QPNMA";
const res = await fetch(`https://api.fieldgeist.com/v1/verify/lookup/${id}`, {
  headers: { Authorization: `Bearer ${process.env.FIELDGEIST_API_KEY}` },
});
if (res.status === 404) {
  // No parcel has this ID.
}
const parcel = await res.json();
```

</Tab>
<Tab value="Python">

```python
import os
import requests

fieldgeist_id = "adr_01JA2Z3Y4X5W6V7T8S9R0QPNMA"
res = requests.get(
    f"https://api.fieldgeist.com/v1/verify/lookup/{fieldgeist_id}",
    headers={"Authorization": f"Bearer {os.environ['FIELDGEIST_API_KEY']}"},
    timeout=10,
)
if res.status_code == 404:
    parcel = None  # No parcel has this ID.
else:
    res.raise_for_status()
    parcel = res.json()
```

</Tab>
</Tabs>

## Response [#response]

<Callout type="info">
Parcel values on this page are illustrative.
</Callout>

### 200 OK [#200-ok]

```json
{
  "status": "active",
  "fieldgeist_id": "adr_01JA2Z3Y4X5W6V7T8S9R0QPNMA",
  "superseded_by": [],
  "building_id": null,
  "apn": "198520-0495",
  "fips": "53033",
  "lat": 47.620494,
  "lon": -122.349235,
  "addressNumber": "400",
  "addressNumberSuffix": null,
  "predirectional": null,
  "streetName": "BROAD",
  "streetSuffix": "ST",
  "postdirectional": null,
  "occupancyId": null,
  "city": "SEATTLE",
  "state": "WA",
  "zip5": "98109",
  "zip4": null
}
```

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | `active`, or `superseded` when the parcel was split or merged and other IDs replace it. |
| `fieldgeist_id` | string | The ID you asked for. |
| `superseded_by` | string[] | The IDs that replace this one. Empty while `active`. |
| `building_id` | string \| null | The building's ID (`bld_…`) for a unit parcel. |
| `apn` | string \| null | The county's assessor parcel number. |
| `fips` | string \| null | 5-digit county FIPS code. |
| `lat`, `lon` | number \| null | Coordinates of the parcel. |
| `addressNumber`, `addressNumberSuffix`, `predirectional`, `streetName`, `streetSuffix`, `postdirectional`, `occupancyId`, `city`, `state`, `zip5`, `zip4` | string \| null | The parcel's address as the index records it, in Publication 28 form. |

### A superseded parcel [#a-superseded-parcel]

```json
{
  "status": "superseded",
  "fieldgeist_id": "adr_01JA2Z3Y4X5W6V7T8S04242ZZZ",
  "superseded_by": ["adr_01JA2Z3Y4X5W6V7T8S99998ZZZ", "adr_01JA2Z3Y4X5W6V7T8S99999ZZZ"],
  "building_id": null,
  "apn": "SYN-4242",
  "...": "..."
}
```

A superseded ID still answers with its last known record. Fetch each ID in `superseded_by` to get the current parcels.

### Errors [#errors]

| Status | `error` | Cause |
| --- | --- | --- |
| `400` | `invalid_id` | The ID isn't `adr_` followed by a 26-character ULID. |
| `404` | `not_found` | No parcel has this ID. The response echoes `fieldgeist_id`. Not billed. |
| `422` | `unsupported_id_type` | A building ID (`bld_…`). Building IDs can't be fetched yet; use a parcel's `adr_` ID. |
| `503` | `matchkey_unavailable` | The parcel index is unavailable. Retry later. |
| `401`, `402`, `403`, `429`, `5xx` | | See [Errors](/api-reference/errors). |

```json
{ "error": "not_found", "fieldgeist_id": "adr_01JA2Z3Y4X5W6V7T8S9R0QPZZZ" }
```
