Affiliates access the same activity catalog as resellers but through JWT-authenticated
endpoints. Pricing is converted to the requested currency with affiliate commission applied.
List activities
GET /api/v1/affiliates/users/activities
This endpoint is rate-limited. Avoid polling — fetch once per user session and cache locally.
Parameters
| Parameter | Type | Default | Description |
|---|
currency | string | USD | ISO currency code for pricing |
search | string | — | Full-text search across title and description |
page | integer | 1 | Page number |
pageSize | integer | 10 | Results per page |
curl "https://api.seyaha.net/api/v1/affiliates/users/activities?currency=SAR&search=desert&page=1&pageSize=10" \
-H "Authorization: Bearer $AFFILIATE_JWT"
Response:
{
"success": 1,
"data": [
{
"_id": "6744810075becd2ef8c140f7",
"activity_title": "Desert Safari Adventure",
"main_promo_title": "Experience dune bashing at sunset",
"categories": ["Adventure", "Outdoor"],
"currency": "SAR",
"admin_discount_percentage": 10,
"variations": [
{
"price": {
"prices": { "adult": 250, "child": 150, "infant": 80 },
"discount_percentage": 0
}
}
]
}
],
"pagination": { "page": 1, "pageSize": 10, "totalCount": 42 }
}
Get activity by ID
GET /api/v1/affiliates/users/activities/{id}
Returns the full activity with variation schedules, itinerary, inclusions, and pickup details.
curl "https://api.seyaha.net/api/v1/affiliates/users/activities/6744810075becd2ef8c140f7?currency=SAR" \
-H "Authorization: Bearer $AFFILIATE_JWT"
The detail response includes variation.frequency.weekdays — a map of weekday → time
slots → dates → capacity. Use this to render an availability calendar without an
extra API call.
Translations
If an activity has been translated, the translation field contains a map of language
codes to translated fields:
"translation": {
"ar": {
"activity_title": "رحلة السفاري الصحراوية",
"description": "..."
}
}
Use the user’s locale to pick the right translation at render time.