Programs

Get program

Returns one publishable program for the authenticated partner.

GET /v1/programs/{programId}
Bearer tokenServer-to-serverOpenAPI
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://sefera-api.web.app/v1/programs/{programId}

Path parameter

FieldTypeDescription
programId string required Program identifier from GET /v1/programs

QUERY PARAMETERS: None. REQUEST BODY: None.

Liste alanlarına (programNumber dahil, listedekiyle aynı değer) ek olarak: description, departurePoint, hotels, guides, marketingTags, 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

FieldTypeDescription
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
guides PublicGuides optional Public tanitim rehberleri (content.publicGuides). Operational staff is never exposed.
marketingTags array | null optional Public marketing labels
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

FieldTypeDescription
days integer required Inclusive day count (same value as durationDays)
nights integer required Night count, max(0, days - 1)

HotelStay

FieldTypeDescription
name string | null optional
location string | null optional
checkIn string | null optional
checkOut string | null optional
destination string | null optional Canonical stay destination when derivable
duration Duration optional Inclusive stay day/night count derived from checkIn/checkOut
coverUrl string | null optional Public hotel cover image URL from hotel catalog when available
galleryUrls array<string> optional Public hotel gallery URLs from hotel catalog when available
starLevel integer | null optional Public hotel star rating when available

PublicGuides

FieldTypeDescription
male PublicGuide optional
female PublicGuide optional

PublicGuide

FieldTypeDescription
name string optional Public guide display name
title string | null optional Optional public title (e.g. Rehber, Hanim Rehber)
photoUrl string | null optional Public photo URL from program tanitim content

Accommodation

FieldTypeDescription
stays array<HotelStay> optional Public hotel stays including starLevel when available
description string | null optional Public accommodation description

Transport

FieldTypeDescription
flights array<ProgramFlight> optional Assigned round-trip flight packages with public airline branding and leg details

AirlineBrand

FieldTypeDescription
code string required Public airline code
name string | null optional Public airline display name when available
logoUrl string | null optional Stable HTTPS URL for the airline SVG logo served from `https://sefera-api.web.app/v1/assets/airlines/{catalog-id}.svg` when the airline matches the Sefera canonical catalog (Turkish Airlines, AJet, Saudia, Pegasus). Returns `null` when the airline is unknown or no hosted logo exists — consumers must not render a broken image for `null`.

PublicMedia

FieldTypeDescription
coverUrl string | null optional Public cover image URL
galleryUrls array<string> optional Public gallery image URLs

PublicContent

FieldTypeDescription
programDescription string | null optional Public program description (also mirrored at top-level description on detail)
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

cURL
-kw">curl -sS \
  -H "Authorization: Bearer $SEFERA_PARTNER_TOKEN" \
  -H "Accept: application/json" \
  "https://sefera-api.web.app/v1/programs/abc123"
JSON
{
  "data": {
    "id": "abc123",
    "programNumber": 31,
    "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" },
    "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"],
    "guides": {
      "male": { "name": "Fatih Hoca", "title": "Rehber", "photoUrl": "https://cdn.example/male.jpg" },
      "female": { "name": "Ayşe Hanım", "title": "Hanım Rehber" }
    },
    "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://sefera-api.web.app/v1/assets/airlines/turkish-airlines.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

cURL
-kw">curl -sS \
  -H "Authorization: Bearer $SEFERA_PARTNER_TOKEN" \
  -H "Accept: application/json" \
  "https://sefera-api.web.app/v1/programs/abc123"

Response

JSON
{
  "data": {
    "id": "abc123",
    "programNumber": 31,
    "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" },
    "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"],
    "guides": {
      "male": { "name": "Fatih Hoca", "title": "Rehber", "photoUrl": "https://cdn.example/male.jpg" },
      "female": { "name": "Ayşe Hanım", "title": "Hanım Rehber" }
    },
    "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://sefera-api.web.app/v1/assets/airlines/turkish-airlines.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" }
      ]
    }
  }
}