Search reference
Parameters
| Parameter | Purpose |
|---|---|
| Query | The search term |
| Attribute | Scopes the search to one attribute |
| Entity type filter | Restricts to one type |
| Status filter | Restricts by entity status |
| Show merged | Includes merged records, excluded by default |
| Fuzzy | Selects fuzzy label matching instead of full-text |
| Sort | Orders results |
| Page, page size | Pagination — default 25, maximum 1000 |
The query schema passes unrecognised parameters through silently. A misspelled or invented parameter produces no error — it simply has no effect, and you get unfiltered results that look filtered. Check parameter names against this table.
hasDuplicates in particular is a response field, not a query parameter.
Parameters are validated. A malformed value returns a 400 naming the offending parameter, rather than a 500 — a negative page number or a non-identifier filter is a caller error and is reported as one.
Strategies
| Strategy | Triggered by | Matches |
|---|---|---|
| Full text | A query with no attribute scope and no fuzzy flag | Indexed text on the entity |
| Fuzzy label | A query with the fuzzy flag set | The entity's display label, tolerant of typos |
| Attribute-scoped | A query plus an attribute | That attribute's value, and its resolved label where lookup-bound |
Result fields
| Field | Contains |
|---|---|
| Entity identifier and type | The matched record |
| Label | Display label, masked if masking applies |
| Matched attribute | Which attribute matched, for attribute-scoped search |
| Matched value | The matching value, masked if masking applies |
| Matched value label | The resolved label, where lookup-bound |
Label matching has a bound
Matching resolved labels is capped. When a query would match more labels than the cap, results carry a flag indicating truncation.
The cap exists because a very short query can match an enormous number of labels. Erroring instead was rejected: a single-character query is a legitimate prefix search, and failing it would be worse than returning best matches with an honest signal that more exist.
Access control
| Layer | Effect |
|---|---|
| Tenant isolation | Only the caller's tenant is searchable |
| ABAC policies | Denied records are absent from results |
| Field masking | Matched values are masked as they are elsewhere |
Search is not a side door. A value masked when reading an entity is masked in search results for the same caller.
Next
Last verified against commit a0765982 (2026-08-03)