Get prices for multiple products with dynamic pricing and multi-currency support
Calculate dynamic prices for products based on customer segment, location, volume, and geographic currency detection.
Multi-Currency Support:
- Automatically detects currency based on customer location (coordinates or place name)
- Converts prices from store’s base currency to detected currency
- Falls back to store’s default currency if no location provided
- Works with both simple and multi-variant products
Multi-Variant Support:
- Returns flat structure with default variant data (keeps payload small for browsing)
- Use
has_variantsflag to determine if detail fetch needed - For full variant pricing, use GET /v1/prices/products/:id endpoint
Dynamic Pricing:
- Customer segment-based pricing (RFM segmentation)
- Customer tier-based pricing (Gold, Silver, Bronze)
- Volume/quantity-based discounts
- Region-specific pricing rules
- Time-based promotions
Field Filtering:
- Use
fieldsparameter to reduce bandwidth by 50-90% - Supports nested fields with dot notation
- Example:
fields=name,display_price,display_currency,price_breakdown.base_price
Documentation Index
Fetch the complete documentation index at: https://docs.tybritelabs.com/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
API Key Authentication
Use your API key in the Authorization header:
Authorization: Bearer tybrite_sk_live_YOUR_KEYKey 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
Search by product name or SKU
Filter by category UUID
Filter by subcategory UUID
Maximum number of products to return (1-200)
1 <= x <= 200Number of products to skip for pagination
x >= 0Comma-separated list of fields to return (reduces bandwidth by 50-90%).
Allowed fields: product_id, variant_id, name, sku, description, price, selling_price, stock, image, category_name, brand, has_variants, variant_count, total_stock, base_price, resolved_price, display_price, base_currency, display_currency, currency_symbol, exchange_rate, price_breakdown, price_breakdown., pricing_context, pricing_context.
Example: fields=name,display_price,display_currency,currency_symbol,has_variants
City or region name for geographic currency detection (e.g., "New York, USA", "London, UK", "Nairobi, Kenya").
How it works:
- Geocodes place name to coordinates
- Matches coordinates to currency regions
- Returns prices in detected currency
Examples:
place_name=New York→ USDplace_name=London→ GBPplace_name=Nairobi, Kenya→ KES
Customer latitude for precise geographic currency detection.
Priority: Coordinates take priority over place_name if both provided.
Accuracy: Uses PostGIS boundary matching for accurate region detection.
Works with variants: Currency detection applies to all product variants.
Example: latitude=40.7128&longitude=-74.0060 (New York) → USD
Customer longitude for precise geographic currency detection.
Must be used with latitude parameter.
Example: latitude=51.5074&longitude=-0.1278 (London) → GBP
DEPRECATED: Use place_name instead for better geocoding support.
Location/country for location-based pricing rules.
Manual region override for pricing rules (bypasses automatic detection)
Customer UUID for personalized pricing.
When provided, the worker resolves the customer's RFM segment and tier server-side (from the customers + customer_stores tables) and feeds them into pricing rule evaluation. There is no need to pass segment/tier directly.
Quantity for volume-based pricing discounts
x >= 1Response
Successfully retrieved products with dynamic pricing and currency conversion.
Response includes:
- Products with converted prices in detected/default currency
- Price breakdown showing base price, discounts, and final price
- Pricing context with currency info and detection method
- Pagination metadata
Note: List endpoint returns flat structure with default variant only. For full variant pricing, use GET /v1/prices/products/:id
Total number of products matching filters
Number of products per page
Number of products skipped
Global pricing context for the request. customer_segment and
customer_tier are resolved server-side from customer_id
(they are not request parameters).

