---
title: "Resolve Name For Quote"
method: GET
path: "/api/names/resolve"
---

# Resolve Name For Quote

`GET /api/names/resolve`

## Request

- Base URL: `https://pozeidon.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://pozeidon.ai/api/names/resolve`
- Auth: none declared

Each (normalised) name → its entity when exactly one row matches, else
null. Backs the ◆ chip at send time (G-RE). Reads pozeidon_cross_network.v_entity_names
under the tenant's RLS.

BATCHED: `?q=a&q=b&q=c`, at most ``MAX_NAMES`` names, answered by ONE
SELECT. The first version took a single `q` and the client fired one
request per chip — up to five concurrent unindexed scans of the view for a
single send. Shape of the reply is ``{"entities": {<original q>: …}}``,
keyed by the string the caller sent so it can map straight back onto its
chips without re-normalising anything.

Follow-up if this ever shows in pg_stat_statements: a functional index on
``regexp_replace(lower(name),'[^a-z0-9]','','g')`` over the base tables the
view unions (a view cannot carry an index itself). Deliberately not done
now — one scan per send is a different cost from five.

## Query parameters

- `q` string[]

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pozeidon/apis/pozeidon-demo.md) · [All operations](https://skmtc.dev/pozeidon/apis/pozeidon-demo/llms.txt) · [OpenAPI document](https://skmtc.dev/pozeidon/apis/pozeidon-demo/revisions/961f0099c084?raw)
