Skip to main content
Seyaha calls GET /products on your base_url in three situations:

Request

If your auth_type is api_key:

Query parameters


Response

Return a JSON array of product objects. You may also return { "products": [...] } — Seyaha handles both shapes.

Product object

Option object

Each option maps to a Seyaha variation.

Unit object

Each unit is a guest type with a base price.

Pricing entry


Full example


Implementation notes

Never change product.id or option.id after your first sync. Seyaha uses these as permanent keys to match incoming products to existing activities. Changing them causes Seyaha to treat the product as new and create a duplicate.
If you support incremental sync, return only products where updatedAt > updated_since. If not, ignore the parameter and return the full catalog every time — Seyaha’s hash deduplication will skip unchanged responses without writing anything to the database.
  • Timeout: 15 seconds for sync calls, 5 seconds for health probes
  • Any non-2xx response increments the health failure counter. Return 401 for invalid credentials.
  • For health probes (?limit=1), an empty array [] is a perfectly valid response.