Programs
Get program
Returns one publishable program for the authenticated partner.
- HTTP METHOD
- GET
- PATH
/v1/programs/{programId}- PURPOSE
- Tek yayımlanabilir programı döner.
- AUTHENTICATION
- Bearer token
- REQUIRED SCOPE
programs.read- PATH PARAMETERS
programId(string, required: true)- QUERY PARAMETERS
- None
- REQUEST BODY
- None
- RESPONSE
- 200 JSON
ProgramDetailResponse - ERRORS
- 400, 401, 403, 404, 405, 429, 500
Canonical runtime URL: https://api.sefera.com.tr/v1/programs/{programId}
Path parameter
| Field | Type | Description | |
|---|---|---|---|
programId |
string | required | Program identifier from GET /v1/programs |
QUERY PARAMETERS: None. REQUEST BODY: None.
Liste alanlarına ek olarak: description, category, departurePoint, hotels, guide, marketingTags, staff, accommodation, transport, media, content.
Bilinmeyen, yayımlanmamış veya başka kiracıya ait kimlikler aynı gövdeyle 404 not_found döner.
Response
- 200ProgramDetailResponse
- 400invalid_request
- 401unauthorized
- 403forbidden
- 404not_found
- 429rate_limit_exceeded
- 500internal_error
Additional fields
| Field | Type | Description | |
|---|---|---|---|
description |
string | null | optional | Public program description |
category |
Category | optional | Display category |
departurePoint |
string | null | optional | Departure point text |
hotels |
array<HotelStay> | optional | Hotel stays on the program |
guide |
Guide | optional | Guide display name only |
marketingTags |
array | null | optional | Public marketing labels |
staff |
Staff | optional | Public lead guide and teacher display info |
accommodation |
Accommodation | optional | Public stays plus accommodation description |
transport |
Transport | optional | Public airline brands used by the program |
media |
PublicMedia | optional | Public cover and gallery URLs |
content |
PublicContent | optional | Public included/excluded services, itinerary, visits, and FAQ |
Duration
| Field | Type | Description | |
|---|---|---|---|
days |
integer | required | Inclusive day count (same value as durationDays) |
nights |
integer | required | Night count, max(0, days - 1) |
HotelStay
| Field | Type | Description | |
|---|---|---|---|
name |
string | null | optional | |
location |
string | null | optional | |
checkIn |
string | null | optional | |
checkOut |
string | null | optional | |
starLevel |
integer | null | optional | Public hotel star rating when available |
Staff
| Field | Type | Description | |
|---|---|---|---|
leadGuide |
Guide | optional | Lead guide display name only |
teachers |
array<StaffTeacher> | optional | Public teacher/hoca display info |
StaffTeacher
| Field | Type | Description | |
|---|---|---|---|
name |
string | required | Public teacher display name |
gender |
string | null | optional | Public gender when available |
roleLabel |
string | null | optional | Public role label when available |
Accommodation
| Field | Type | Description | |
|---|---|---|---|
stays |
array<HotelStay> | optional | Public hotel stays including starLevel when available |
description |
string | null | optional | Public accommodation description |
Transport
| Field | Type | Description | |
|---|---|---|---|
flights |
array<object> | optional | Distinct public airlines used by the program |
AirlineBrand
| Field | Type | Description | |
|---|---|---|---|
code |
string | required | Public airline code |
logoUrl |
string | null | optional | Public airline logo URL when available |
PublicMedia
| Field | Type | Description | |
|---|---|---|---|
coverUrl |
string | null | optional | Public cover image URL |
galleryUrls |
array<string> | optional | Public gallery image URLs |
PublicContent
| Field | Type | Description | |
|---|---|---|---|
included |
array<string> | optional | Included services |
excluded |
array<string> | optional | Excluded services |
visits |
array<string> | optional | Public visit/place names |
accommodationDescription |
string | null | optional | Public accommodation description |
faq |
array<object> | optional | Public program FAQ |
itinerary |
array<object> | optional | Public itinerary. Raw dailyPlan is never published. |
Examples
-kw">curl -sS \
-H "Authorization: Bearer $SEFERA_PARTNER_TOKEN" \
-H "Accept: application/json" \
"https://api.sefera.com.tr/v1/programs/abc123"
const token = process.env.SEFERA_PARTNER_TOKEN;
const programId = 'abc123';
const res = await fetch(
`https://api.sefera.com.tr/v1/programs/${encodeURIComponent(programId)}`,
{ headers: { Authorization: `Bearer ${token}` } },
);
if (!res.ok) {
throw new Error(`Partner API HTTP ${res.status}`);
}
const payload = await res.json();
<?php
$token = getenv('SEFERA_PARTNER_TOKEN');
$programId = 'abc123';
$ch = curl_init('https://api.sefera.com.tr/v1/programs/' . rawurlencode($programId));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Accept: application/json',
],
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code !== 200) {
throw new RuntimeException('Partner API HTTP ' . $code);
}
$payload = json_decode($body, true);
{
"data": {
"id": "abc123",
"name": "15 Günlük Umre",
"status": "active",
"departureDate": "2026-10-12",
"returnDate": "2026-10-25",
"durationDays": 14,
"duration": {
"days": 14,
"nights": 13
},
"capacity": {
"total": 45,
"used": 23,
"remaining": 22
},
"currency": "USD",
"category": { "type": "Yurt Dışı", "subtype": "Umre" },
"guide": { "name": "Rehber Adı" },
"prices": {
"startingAmount": 1950,
"rooms": [{ "occupancy": 2, "amount": 1950 }],
"children": [{ "minAge": 2, "maxAge": 7, "amount": 1400 }]
},
"description": "Program açıklaması",
"departurePoint": "Istanbul",
"hotels": [
{
"name": "Hotel Name",
"location": "Mekke",
"checkIn": "2026-10-12",
"checkOut": "2026-10-18",
"starLevel": 5
}
],
"marketingTags": ["Ramazan"],
"staff": {
"leadGuide": { "name": "Rehber Adı" },
"teachers": [
{ "name": "Hoca Adı", "gender": "male", "roleLabel": "Hoca" }
]
},
"accommodation": {
"stays": [
{
"name": "Hotel Name",
"location": "Mekke",
"checkIn": "2026-10-12",
"checkOut": "2026-10-18",
"starLevel": 5
}
],
"description": "Konaklama açıklaması"
},
"transport": {
"flights": [
{
"airline": {
"code": "THY",
"logoUrl": "https://api.sefera.com.tr/v1/assets/airlines/thy.svg"
}
}
]
},
"media": {
"coverUrl": null,
"galleryUrls": []
},
"content": {
"included": ["Uçak bileti"],
"excluded": ["Kişisel harcamalar"],
"visits": ["Mescid-i Haram"],
"accommodationDescription": "Konaklama açıklaması",
"faq": [
{ "question": "Vize dahil mi?", "answer": "Evet." }
],
"itinerary": [
{ "title": "Varış", "description": "Havalimanı karşılama" }
]
}
}
}
Request
-kw">curl -sS \
-H "Authorization: Bearer $SEFERA_PARTNER_TOKEN" \
-H "Accept: application/json" \
"https://api.sefera.com.tr/v1/programs/abc123"
const token = process.env.SEFERA_PARTNER_TOKEN;
const programId = 'abc123';
const res = await fetch(
`https://api.sefera.com.tr/v1/programs/${encodeURIComponent(programId)}`,
{ headers: { Authorization: `Bearer ${token}` } },
);
if (!res.ok) {
throw new Error(`Partner API HTTP ${res.status}`);
}
const payload = await res.json();
<?php
$token = getenv('SEFERA_PARTNER_TOKEN');
$programId = 'abc123';
$ch = curl_init('https://api.sefera.com.tr/v1/programs/' . rawurlencode($programId));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Accept: application/json',
],
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code !== 200) {
throw new RuntimeException('Partner API HTTP ' . $code);
}
$payload = json_decode($body, true);
Response
{
"data": {
"id": "abc123",
"name": "15 Günlük Umre",
"status": "active",
"departureDate": "2026-10-12",
"returnDate": "2026-10-25",
"durationDays": 14,
"duration": {
"days": 14,
"nights": 13
},
"capacity": {
"total": 45,
"used": 23,
"remaining": 22
},
"currency": "USD",
"category": { "type": "Yurt Dışı", "subtype": "Umre" },
"guide": { "name": "Rehber Adı" },
"prices": {
"startingAmount": 1950,
"rooms": [{ "occupancy": 2, "amount": 1950 }],
"children": [{ "minAge": 2, "maxAge": 7, "amount": 1400 }]
},
"description": "Program açıklaması",
"departurePoint": "Istanbul",
"hotels": [
{
"name": "Hotel Name",
"location": "Mekke",
"checkIn": "2026-10-12",
"checkOut": "2026-10-18",
"starLevel": 5
}
],
"marketingTags": ["Ramazan"],
"staff": {
"leadGuide": { "name": "Rehber Adı" },
"teachers": [
{ "name": "Hoca Adı", "gender": "male", "roleLabel": "Hoca" }
]
},
"accommodation": {
"stays": [
{
"name": "Hotel Name",
"location": "Mekke",
"checkIn": "2026-10-12",
"checkOut": "2026-10-18",
"starLevel": 5
}
],
"description": "Konaklama açıklaması"
},
"transport": {
"flights": [
{
"airline": {
"code": "THY",
"logoUrl": "https://api.sefera.com.tr/v1/assets/airlines/thy.svg"
}
}
]
},
"media": {
"coverUrl": null,
"galleryUrls": []
},
"content": {
"included": ["Uçak bileti"],
"excluded": ["Kişisel harcamalar"],
"visits": ["Mescid-i Haram"],
"accommodationDescription": "Konaklama açıklaması",
"faq": [
{ "question": "Vize dahil mi?", "answer": "Evet." }
],
"itinerary": [
{ "title": "Varış", "description": "Havalimanı karşılama" }
]
}
}
}