Skip to main content
The activity endpoints return the full catalog with pricing converted to your requested currency. Slots are intentionally omitted from list/detail responses — load them via the availability endpoints on demand.

List activities

GET /api/v1/resellers/activities
This endpoint is rate-limited. Cache responses locally and only re-fetch when the user initiates a new search.

Parameters

ParameterTypeDefaultDescription
currencystringSARISO currency code for displayed prices
languagestringPreferred language for translated fields
pageinteger1Page number
limitinteger10Page size
curl "https://api.seyaha.net/api/v1/resellers/activities?currency=USD&page=1&limit=20" \
  -H "x-api-token: $RESELLER_TOKEN"

Response

{
  "success": 1,
  "data": [
    {
      "_id": "6744810075becd2ef8c140f7",
      "activity_title": "Desert Safari Adventure",
      "currency": "USD",
      "serviceFee": 12.50,
      "variations": [
        {
          "_id": "6751ad2d7533f379c9a1711b",
          "title": "Standard Package",
          "pricing": {
            "units": [
              { "type": "ADULT", "label": "Adult", "price": 120 },
              { "type": "CHILD", "label": "Child", "price": 75 }
            ],
            "discount_percentage": 0
          }
        }
      ]
    }
  ],
  "pagination": { "page": 1, "pageSize": 20, "totalCount": 87 }
}
Variation pricing.units[].price values are already converted to the requested currency with FX, service fee, and commission applied.

Get activity by ID

GET /api/v1/resellers/activities/{id}
Returns the activity in a one-element data array.
curl "https://api.seyaha.net/api/v1/resellers/activities/6744810075becd2ef8c140f7?currency=USD" \
  -H "x-api-token: $RESELLER_TOKEN"

Currency and pricing

Prices in variation responses are fully loaded — FX conversion, service fee, and reseller commission are all baked in. You display these prices directly to your customers. The currency field on the activity object tells you which currency the prices are in. If you request currency=USD, all pricing.units[].price values are in USD. Group-priced variations use pricing.group_price instead of pricing.units. Check for group_price !== null before rendering per-person prices.