List Catalog Products
Page through your indexed products with market context, filtered and faceted.
Citations
Every product carries acitations object, the same shape the commission-term payload carries. It
is how a user checks a commission figure against the paper it came from without leaving your
product.
provenance
still names the document.
Read grain before you draw anything
grain is required on every citation and it is the field to branch on:
page grain, and its quote is always null. Both follow from
what a served product row holds: it carries the address of its passage, not the passage itself, so a
product that did not locate has no page to name and no text to show. Read the commission term for
the same line when you need the words. Treat an unrecognized grain as document.
A document-grain citation must not render like a region-grain one. The platform derives
geometry from the document’s own bytes rather than asking a model for it, so a rectangle that is
present was located in real page geometry and a rectangle that is absent means no match was found.
There is no third state in which a box was guessed.
The region rectangle is normalized 0-1 with a top-left origin. Multiply it by the rendered page
box, never by a point size, so a viewer at any zoom draws the same box over the same words.
Why a product may cite only its document
A market’s products are merged from the lines of several documents, and a citation is only ever served when the platform can name the exact passage inside the exact extraction the value was read from. It declines, and keeps the document-level citation, when the line’s printed anchor is a label rather than a quoted passage, when a human correction moved the served value away from the passage the rectangle was located for, and on the single-document paths that bypass the merge. A degraded citation is deliberate: the platform will show you a document it is sure of before it will draw a box it is not.Authorizations
Send the credential as Authorization: Bearer <key>.
Scoped partner credentials use the exclusive nxsk_v1_... namespace.
Each scoped key is bound at issuance to one organization, one canonical
named environment, an explicit engine set, and a least-privilege
capability set. A malformed, unknown, rotated, or revoked nxsk_ key
fails closed and is never retried as a legacy key.
Capabilities used by this API are runs:write, runs:read,
engines:read, catalog:read, webhooks:manage,
runs:defensibility:read, runs:test, conversations:use, and
conversations:export. Operation descriptions name the required
capability.
Grandfathered nx_live_... and nx_test_... keys retain their existing
broad access during the compatibility window.
Query Parameters
Pin the browse to one active data connection. Optional when the org has a
single active connection; required when it has more than one (an ambiguous
request returns catalog_connection_ambiguous).
Line-of-business filter matched against the product's line or line_code.
Two-letter state code. Keeps products eligible in the state (not excluded).
^[A-Za-z]{2}$NAICS code to filter by. prohibited_naics and avoided_naics are
product-level columns, so the filter drops individual products that
prohibit the code (a multi-line market can survive on its other products)
and sets avoided: true on products that list it in avoided_naics. The
backing columns are populated by an in-flight extraction-quality effort;
until then every product reads as non-prohibited.
Case-insensitive substring matched over the line label or market name.
Minimum commission in percent space (10 = 10%). Keeps a product whose new or renewal rate clears the floor.
x >= 01-based page number. Defaults to 1.
x >= 1Rows per page, clamped to 100. Defaults to 25.
1 <= x <= 100Response
One page of flat products with facets and corpus totals.
Always null here. The product-less-market disclosure is a markets-grain fact; see CatalogMarketListResponse.
True when this request carries a filter only a product row can satisfy (line, state, naics, min_commission_pct).
True when at least one current product in the connection carries an extracted prohibited-class list (data presence, not extraction coverage). Consumer rules: an empty per-product prohibited_naics never renders as "no prohibited classes", regardless of this flag (a default-empty row and an extracted-none row are indistinguishable); while the flag is false, additionally disclose that prohibited-class data is not yet extracted for this corpus.