Search by constraints
Constraint search over the store’s catalogue. Every result carries match_reasons naming which of the
requested constraints it satisfied. With a query, the store’s semantic search ranks results by meaning
where it is available (semantic_search: used); a direct match on name, brand, category, SKU or tags is
also admitted and ranked higher. attributes are matched against each product’s variant attributes,
product attributes, brand and category — use POST /v1/agent/fit to check a product’s published
specifications.
price is the catalogue selling price. The amount a shopper is charged, after dynamic pricing,
promotions, shipping and tax, comes from POST /v1/agent/quote.
in_stock_only checks every variant of a multi-variant product before excluding it.
Authorizations
API Key Authentication
Use your API key in the Authorization header:
Key Types:
Secret Keys (Server-Side Only):
- Format:
tybrite_sk_live_*(production) ortybrite_sk_test_*(sandbox) - Full read/write access to all endpoints
- ⚠️ NEVER expose in client-side code or public repositories
- Required for: write operations, authentication, payment verification, AI recommendations
Publishable Keys (Client-Safe):
- Format:
tybrite_pk_live_*(production) ortybrite_pk_test_*(sandbox) - Read-only access (GET requests only, plus POST semantic search)
- ✅ Safe for client-side JavaScript, mobile apps, and public code
- Allowed for: browsing products, search, CMS content, pricing queries
Endpoint-Specific Requirements:
- Authentication endpoints (
/v1/auth/*): Secret key required - Payment verification (
POST /v1/payments/verify): Secret key required - AI Recommendations (
POST /v1/recommendations): Secret key required - Semantic Search (
POST /v1/search): Both key types allowed (read-only operation) - All write operations: Secret key required
- All read operations: Both key types allowed
Using a publishable key for restricted operations returns 403 Forbidden.
Query Parameters
Comma-separated top-level keys of data to return, e.g. fields=grand_total,lines.
Body
Free text. Matched by meaning where the store has semantic search, and against name, brand, category, SKU and tags.
300x >= 0x >= 0A category or subcategory name (case-insensitive).
Attribute name to wanted value, e.g. {"color": "black"}.
1 <= x <= 50
