openapi: 3.1.0 info: title: FlyingCarpet API description: > API ציבורי של "השטיח המעופף" להצגת מסלולים מאורגנים, חבילות נופש, מאמרי תוכן, קטגוריות, יעדים, לוחות שנה ותוצאות חיפוש דינמיות. מיועד גם למנועי AI וגם למפתחים. version: 1.0.2 servers: - url: https://www.orgisr.com/API description: Production server paths: # ===== ITINERARY ===== /itinerary.php: get: operationId: getItineraries summary: קבלת כל המסלולים parameters: - in: query name: limit schema: { type: integer } - in: query name: offset schema: { type: integer } responses: "200": description: רשימת מסלולים content: application/json: schema: type: object properties: status: { type: string } itineraries: type: array items: $ref: "#/components/schemas/Itinerary" /itinerary.php/{id}: get: operationId: getItineraryById summary: קבלת מסלול לפי מזהה parameters: - in: path name: id required: true schema: { type: integer } responses: "200": description: פרטי מסלול בודד content: application/json: schema: $ref: "#/components/schemas/Itinerary" /itinerary.php/search: get: operationId: searchItineraryByDestination summary: חיפוש מסלול לפי יעד parameters: - in: query name: destination required: true schema: { type: string } responses: "200": description: מסלולים לפי יעד content: application/json: schema: type: object properties: itineraries: type: array items: $ref: "#/components/schemas/Itinerary" # ===== ARTICLES ===== /article_versions_api.php: get: operationId: getArticles summary: קבלת כל המאמרים parameters: - in: query name: limit schema: { type: integer } - in: query name: offset schema: { type: integer } responses: "200": description: רשימת מאמרים content: application/json: schema: type: object properties: articles: type: array items: $ref: "#/components/schemas/Article" /article_versions_api.php/{id}: get: operationId: getArticleById summary: קבלת מאמר לפי מזהה parameters: - in: path name: id required: true schema: { type: integer } responses: "200": description: פרטי מאמר content: application/json: schema: $ref: "#/components/schemas/Article" /article_versions_api.php/search: get: operationId: searchArticles summary: חיפוש מאמר לפי טקסט parameters: - in: query name: query required: true schema: { type: string } responses: "200": description: מאמרים מתאימים content: application/json: schema: type: object properties: articles: type: array items: $ref: "#/components/schemas/Article" # ===== OPERATION API ===== /operation/packCategoryTop: get: operationId: getPackCategories summary: קבלת קטגוריות חבילות responses: "200": description: רשימת קטגוריות content: application/json: schema: type: object properties: {} /operation/dynPack/search/vacation: post: operationId: searchDynPack summary: חיפוש חבילות דינמיות requestBody: required: true content: application/json: schema: type: object properties: {} responses: "200": description: תוצאות חיפוש חבילות content: application/json: schema: type: object properties: {} # ===== DESTINATIONS ===== /destinations.php: get: operationId: getDestinations summary: קבלת רשימת יעדים פעילים לחבילות נופש responses: "200": description: רשימת יעדים פעילים content: application/json: schema: type: object properties: destinations: type: array items: type: object properties: destCode: type: string destName: type: string country: type: string active: type: boolean # ===== PACKS (רק זה משמש לחופשות ותאריכים!) ===== /packs.php: get: operationId: getPackDatesLocal summary: קבלת תאריכים ומחירים לפי קוד יעד (API יחיד לחבילות נופש) parameters: - in: query name: destCode required: true schema: { type: string } - in: query name: limit required: false schema: { type: integer, default: 10 } responses: "200": description: לוח שנה זמין עם תאריכים ומחירים content: application/json: schema: type: object properties: status: { type: string } count: { type: integer } packages: type: array items: type: object properties: id: { type: string } date: { type: string, format: date } dateTo: { type: string, format: date } price: { type: number } dest: { type: string } /category_packs_light.php: get: operationId: getCategoryPacksLight summary: טיולים מאורגנים לייט – רשימת טיולים עם יעדים, שמות ותאריכים parameters: - in: query name: subjectId required: true schema: { type: string } responses: "200": description: רשימת טיולים מאורגנים בפורמט קומפקטי content: application/json: schema: type: object properties: {} /search_light.php: get: operationId: searchLight summary: חיפוש חבילות קל (תאריכים ומחירים בלבד) parameters: - in: query name: dest required: true schema: { type: string } - in: query name: out required: true schema: { type: string, format: date } - in: query name: in required: true schema: { type: string, format: date } responses: "200": description: תוצאות חיפוש בסיסיות content: application/json: schema: type: object properties: {} /org_tour.php: get: operationId: getOrgTour summary: קבלת חבילות מאורגנות לפי יעד parameters: - in: query name: dest required: true schema: { type: string } - in: query name: month required: false schema: { type: string } responses: "200": description: רשימת חבילות מאורגנות content: application/json: schema: type: object properties: {} /org_tour_select.php: get: operationId: getOrgTourSelect summary: קבלת פרטי טיול מאורגן מלא כולל מסלול יומי, טיסות ומלון parameters: - in: query name: packId required: true schema: { type: string } - in: query name: hotelId required: true schema: { type: string } - in: query name: dateFrom required: true schema: { type: string, format: date } - in: query name: flights required: true schema: { type: string } responses: "200": description: פרטי טיול מלא content: application/json: schema: type: object properties: {} components: schemas: Itinerary: type: object properties: id: { type: integer } title: { type: string } description: { type: string } Article: type: object properties: id: { type: integer } title: { type: string } subtitle: { type: string } content: { type: string } meta_title: { type: string } meta_description: { type: string } meta_keywords: { type: string } url_slug: { type: string } cover_image_path: { type: string }