Skip to content

MOGU Public API (1.0.0)

Public API for managing trips and catalogs in the MOGU platform

Download OpenAPI description
Languages
Servers
Mock server
https://api-docs.moguplatform.com/_mock/openapi/
Production server
https://trips.api.moguplatform.com/

trips

Operations for managing trips

Operations

Get trips

Request

Retrieve a paginated list of trips with optional filtering and sorting

Security
bearerAuth
Query
pageinteger

Page number (starts at 1)

Example: page=1
pageSizeinteger

Number of items per page

Example: pageSize=20
filtersstring

JSON array of filters, e.g. [{"field":"duration","operator":"gte","value":5}]

Example: filters=[{"field":"duration","operator":"gte","value":5}]
orderBystring

JSON object for sorting, e.g. {"field":"createdAt","direction":"desc"}

Example: orderBy={"field":"createdAt","direction":"desc"}
searchstring

JSON object for searching, e.g. {"fields":["title"],"term":"Paris"}

Example: search={"fields":["title"],"term":"Paris"}
curl -i -X GET \
  'https://api-docs.moguplatform.com/_mock/openapi/trips?page=1&pageSize=20&filters=%5B{%22field%22%3A%22duration%22%2C%22operator%22%3A%22gte%22%2C%22value%22%3A5}%5D&orderBy={%22field%22%3A%22createdAt%22%2C%22direction%22%3A%22desc%22}&search={%22fields%22%3A%5B%22title%22%5D%2C%22term%22%3A%22Paris%22}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Successful response with paginated trips

Bodyapplication/json
dataArray of objects
pageinteger
Example: 1
pageSizeinteger
Example: 20
totalCountinteger
Example: 150
totalPagesinteger
Example: 8
Response
application/json
{ "data": [ {} ], "page": 1, "pageSize": 20, "totalCount": 150, "totalPages": 8 }

Create trip

Request

Create a new trip with the specified details

Security
bearerAuth
Bodyapplication/jsonrequired
titlestringrequired
Example: "Paris Summer Vacation"
durationinteger
Example: 7
dateStartstring(date-time)
Example: "2025-07-15T00:00:00.000Z"
dateFinishstring(date-time)
Example: "2025-07-22T00:00:00.000Z"
countriesArray of strings
Example: ["FRA"]
curl -i -X POST \
  https://api-docs.moguplatform.com/_mock/openapi/trips \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Paris Summer Vacation",
    "duration": 7,
    "dateStart": "2025-07-15T00:00:00.000Z",
    "dateFinish": "2025-07-22T00:00:00.000Z",
    "countries": [
      "FRA"
    ]
  }'

Responses

Trip created successfully

Bodyapplication/json
object
Response
application/json
{}

Delete trips in bulk

Request

Delete multiple trips at once

Security
bearerAuth
Bodyapplication/jsonrequired
tripIdArray of integersrequired
Example: [12345,12346,12347]
curl -i -X DELETE \
  https://api-docs.moguplatform.com/_mock/openapi/trips \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "tripId": [
      12345,
      12346,
      12347
    ]
  }'

Responses

Trips deleted successfully

Get trip

Request

Retrieve detailed information about a specific trip

Security
bearerAuth
Path
tripIdintegerrequired

Unique identifier of the trip

Example: 12345
curl -i -X GET \
  https://api-docs.moguplatform.com/_mock/openapi/trips/12345 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Trip details retrieved successfully

Bodyapplication/json
object
Response
application/json
{}

Update trip

Request

Update an existing trip's details

Security
bearerAuth
Path
tripIdintegerrequired

Unique identifier of the trip

Example: 12345
Bodyapplication/json
titlestring
Example: "Paris Summer Vacation"
durationinteger
Example: 7
dateStartstring(date-time)
Example: "2025-07-15T00:00:00.000Z"
dateFinishstring(date-time)
Example: "2025-07-22T00:00:00.000Z"
curl -i -X PATCH \
  https://api-docs.moguplatform.com/_mock/openapi/trips/12345 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Paris Summer Vacation",
    "duration": 7,
    "dateStart": "2025-07-15T00:00:00.000Z",
    "dateFinish": "2025-07-22T00:00:00.000Z"
  }'

Responses

Trip updated successfully

Bodyapplication/json
object
Response
application/json
{}

Delete trip

Request

Delete a specific trip by ID

Security
bearerAuth
Path
tripIdintegerrequired

Unique identifier of the trip

Example: 12345
curl -i -X DELETE \
  https://api-docs.moguplatform.com/_mock/openapi/trips/12345 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Trip deleted successfully

Get trip configuration

Request

Retrieve the complete configuration for a trip, including blocks, contact info, settings, and theme

Security
bearerAuth
Path
tripIdintegerrequired

Unique identifier of the trip

Example: 12345
curl -i -X GET \
  https://api-docs.moguplatform.com/_mock/openapi/trips/12345/config \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Trip configuration retrieved successfully

Bodyapplication/json
versionstringrequired

Semantic version of the config schema

Example: "1.0.0"
blocksArray of any(Block)required

Array of content blocks (accommodations, activities, transport, etc.)

blocks[].​idstringrequired
Example: "block-hotel-123"
blocks[].​typestringrequired
Value"accomodation"
Example: "accomodation"
Discriminator
blocks[].​contentobjectrequired
blocks[].​content.​titlestringrequired
Example: "Hotel Paris Plaza"
blocks[].​content.​locationstring
Example: "123 Rue de la Paix, 75002 Paris, France"
blocks[].​content.​startDatestring or null(date-time)
Example: "2025-07-15T00:00:00Z"
blocks[].​content.​finishDatestring or null(date-time)
Example: "2025-07-22T00:00:00Z"
blocks[].​content.​nightsinteger or null
Example: 7
blocks[].​content.​roomTypestring or null
Enum"Single""Double""Triple""Quad""Suite"
Example: "Double"
blocks[].​content.​stayRegimestring or null
Enum"AccommodationOnly""BedAndBreakfast""HalfPension""FullPension""AllIncluded"
Example: "BedAndBreakfast"
blocks[].​content.​descriptionstring
Example: "4-star hotel in the heart of Paris"
blocks[].​content.​imagesArray of objects
blocks[].​content.​ratinginteger[ 1 .. 5 ]
Example: 4
blocks[].​content.​googlePlaceIdstring
Example: "ChIJD7fiBh9u5kcRYJSMaMOCCwQ"
blocks[].​content.​optionalboolean
Example: false
blocks[].​content.​checkoutobject(ServiceCheckout)

Checkout configuration for a service block

blocks[].​childrenArray of objects
Example: []
blocks[].​parentstring
Example: "parent-block-id"
blocks[].​hiddenboolean
Example: false
contactobject(TripContact)required

Contact information displayed on the trip

contact.​addressstring<= 255 characters
Example: "123 Main Street, Paris, France"
contact.​agencyNamestring<= 128 characters
Example: "Travel Dreams Agency"
contact.​agentNamestring<= 128 characters
Example: "John Doe"
contact.​descriptionstring<= 5000 characters
Example: "Expert travel agent specializing in European tours"
contact.​emailstring(email)
Example: "contact@travelagency.com"
contact.​phoneNumberstring<= 50 characters
Example: "+33 1 23 45 67 89"
contact.​pictureUrlstring(uri)
Example: "https://example.com/agent-photo.jpg"
contact.​typestring

Type of contact

Enum"agency""agent"
Example: "agency"
contact.​visibleboolean

Whether contact info is visible on the trip

Example: true
contact.​webstring(uri)
Example: "https://travelagency.com"
sliderArray of strings(uri)

Array of image URLs for the trip slider

Example: ["https://example.com/image1.jpg"]
updatedAtstring(date-time)required

Last update timestamp

Example: "2025-01-20T14:45:00.000Z"
settingsobject(TripSettings)required

Trip settings and preferences

settings.​descriptionstring<= 500 characters
Example: "A wonderful 7-day trip to Paris"
settings.​canDownloadPdfbooleanrequired

Allow travelers to download trip as PDF

Example: true
settings.​canCreateCopybooleanrequired

Allow travelers to create a copy of the trip

Example: false
settings.​hasExpirationbooleanrequired

Whether the trip has an expiration date

Example: false
settings.​shareOnWhatsappobject

WhatsApp sharing configuration

Example: {"enabled":true,"phoneNumber":"+33123456789"}
settings.​languagestringrequired

Trip language code

Example: "en"
settings.​startOfTheWeekstringrequired

First day of the week

Enum"monday""sunday"
Example: "monday"
settings.​timeFormatstringrequired

Time format preference

Enum"12h""24h"
Example: "24h"
settings.​dateFormatstringrequired

Date format pattern

Example: "DD/MM/YYYY"
settings.​timezonestring<= 50 charactersrequired

IANA timezone identifier

Example: "Europe/Paris"
settings.​currencySymbolPositionstringrequired

Where to display currency symbol

Enum"start""end"
Example: "end"
settings.​decimalSeparatorstringrequired

Decimal separator character

Enum",""."
Example: ","
settings.​currencystring= 3 charactersrequired

ISO 4217 currency code

Example: "EUR"
moreInfoobject(FormContent)required

Additional information form configuration

moreInfo.​enabledbooleanrequired

Whether the additional info form is enabled

Example: false
moreInfo.​fieldsArray of objectsrequired

Form field definitions

Example: []
moreInfo.​fields[].​idstring
Example: "field-123"
moreInfo.​fields[].​typestring
Enum"text""email""phone""textarea""select""checkbox"
Example: "text"
moreInfo.​fields[].​labelstring
Example: "Dietary restrictions"
moreInfo.​fields[].​requiredboolean
Example: false
paymentMethodIdinteger or null

ID of the payment method associated with this trip

Example: 123
quotationobject

Quotation rates for the trip

Example: {"planningRate":10,"secondRate":5}
themeobject(TripTheme)required

Visual theme and branding for the trip

theme.​headerImageobject

Header image configuration

Example: {"config":"cover"}
theme.​navigationstring or null

Navigation layout style

Enum"verticalRight""verticalLeft""horizontal""none"
Example: "verticalRight"
theme.​logostring(uri)

URL of the agency/brand logo

Example: "https://example.com/logo.png"
theme.​colorstring^#[0-9A-Fa-f]{6}$

Primary brand color (hex code)

Example: "#195bf5"
theme.​fontstring or null

Font family for the trip

Example: "Roboto"
theme.​pdfContactPositionstring or null

Where to display contact info in PDF

Enum"firstPage""lastPage"
Example: "lastPage"
imagesobjectrequired

Trip image gallery

Example: {"files":[]}
images.​filesArray of objects(ImageFile)
Example: []
coverobject(TripCover)

Trip cover image configuration

Response
application/json
{ "version": "1.0.0", "blocks": [ { … } ], "contact": { "address": "123 Main Street, Paris, France", "agencyName": "Travel Dreams Agency", "agentName": "John Doe", "description": "Expert travel agent specializing in European tours", "email": "contact@travelagency.com", "phoneNumber": "+33 1 23 45 67 89", "pictureUrl": "https://example.com/agent-photo.jpg", "type": "agency", "visible": true, "web": "https://travelagency.com" }, "slider": [ "https://example.com/image1.jpg" ], "updatedAt": "2025-01-20T14:45:00.000Z", "settings": { "description": "A wonderful 7-day trip to Paris", "canDownloadPdf": true, "canCreateCopy": false, "hasExpiration": false, "shareOnWhatsapp": { … }, "language": "en", "startOfTheWeek": "monday", "timeFormat": "24h", "dateFormat": "DD/MM/YYYY", "timezone": "Europe/Paris", "currencySymbolPosition": "end", "decimalSeparator": ",", "currency": "EUR" }, "moreInfo": { "enabled": false, "fields": [] }, "paymentMethodId": 123, "quotation": { "planningRate": 10, "secondRate": 5 }, "theme": { "headerImage": { … }, "navigation": "verticalRight", "logo": "https://example.com/logo.png", "color": "#195bf5", "font": "Roboto", "pdfContactPosition": "lastPage" }, "images": { "files": [] }, "cover": { "enabled": true, "files": [] } }

Update trip configuration

Request

Update the complete configuration for a trip (replaces existing config)

Security
bearerAuth
Path
tripIdintegerrequired

Unique identifier of the trip

Example: 12345
Bodyapplication/jsonrequired
versionstringrequired
Example: "1.0.0"
blocksArray of objectsrequired

Array of blocks with flexible content validation

blocks[].​idstringrequired
Example: "block-123"
blocks[].​typestringrequired

Block type (accommodation, activity, transport, etc.)

Example: "accommodation"
blocks[].​contentobject

Block-specific content (structure varies by type)

blocks[].​childrenArray of objects

Child blocks

blocks[].​parentstring

Parent block ID

Example: "block-parent-456"
blocks[].​hiddenboolean

Whether the block is hidden

Example: false
contactobject(TripContact)required

Contact information displayed on the trip

contact.​addressstring<= 255 characters
Example: "123 Main Street, Paris, France"
contact.​agencyNamestring<= 128 characters
Example: "Travel Dreams Agency"
contact.​agentNamestring<= 128 characters
Example: "John Doe"
contact.​descriptionstring<= 5000 characters
Example: "Expert travel agent specializing in European tours"
contact.​emailstring(email)
Example: "contact@travelagency.com"
contact.​phoneNumberstring<= 50 characters
Example: "+33 1 23 45 67 89"
contact.​pictureUrlstring(uri)
Example: "https://example.com/agent-photo.jpg"
contact.​typestring

Type of contact

Enum"agency""agent"
Example: "agency"
contact.​visibleboolean

Whether contact info is visible on the trip

Example: true
contact.​webstring(uri)
Example: "https://travelagency.com"
sliderArray of strings
Example: []
settingsobject(TripSettings)required

Trip settings and preferences

settings.​descriptionstring<= 500 characters
Example: "A wonderful 7-day trip to Paris"
settings.​canDownloadPdfbooleanrequired

Allow travelers to download trip as PDF

Example: true
settings.​canCreateCopybooleanrequired

Allow travelers to create a copy of the trip

Example: false
settings.​hasExpirationbooleanrequired

Whether the trip has an expiration date

Example: false
settings.​shareOnWhatsappobject

WhatsApp sharing configuration

Example: {"enabled":true,"phoneNumber":"+33123456789"}
settings.​languagestringrequired

Trip language code

Example: "en"
settings.​startOfTheWeekstringrequired

First day of the week

Enum"monday""sunday"
Example: "monday"
settings.​timeFormatstringrequired

Time format preference

Enum"12h""24h"
Example: "24h"
settings.​dateFormatstringrequired

Date format pattern

Example: "DD/MM/YYYY"
settings.​timezonestring<= 50 charactersrequired

IANA timezone identifier

Example: "Europe/Paris"
settings.​currencySymbolPositionstringrequired

Where to display currency symbol

Enum"start""end"
Example: "end"
settings.​decimalSeparatorstringrequired

Decimal separator character

Enum",""."
Example: ","
settings.​currencystring= 3 charactersrequired

ISO 4217 currency code

Example: "EUR"
moreInfoobject(FormContent)required

Additional information form configuration

moreInfo.​enabledbooleanrequired

Whether the additional info form is enabled

Example: false
moreInfo.​fieldsArray of objectsrequired

Form field definitions

Example: []
moreInfo.​fields[].​idstring
Example: "field-123"
moreInfo.​fields[].​typestring
Enum"text""email""phone""textarea""select""checkbox"
Example: "text"
moreInfo.​fields[].​labelstring
Example: "Dietary restrictions"
moreInfo.​fields[].​requiredboolean
Example: false
paymentMethodIdinteger or null
Example: 123
quotationobject
Example: {"planningRate":10,"secondRate":5}
themeobject(TripTheme)required

Visual theme and branding for the trip

theme.​headerImageobject

Header image configuration

Example: {"config":"cover"}
theme.​navigationstring or null

Navigation layout style

Enum"verticalRight""verticalLeft""horizontal""none"
Example: "verticalRight"
theme.​logostring(uri)

URL of the agency/brand logo

Example: "https://example.com/logo.png"
theme.​colorstring^#[0-9A-Fa-f]{6}$

Primary brand color (hex code)

Example: "#195bf5"
theme.​fontstring or null

Font family for the trip

Example: "Roboto"
theme.​pdfContactPositionstring or null

Where to display contact info in PDF

Enum"firstPage""lastPage"
Example: "lastPage"
imagesobjectrequired
Example: {"files":[]}
images.​filesArray of objects(ImageFile)
Example: []
coverobject(TripCover)

Trip cover image configuration

curl -i -X PUT \
  https://api-docs.moguplatform.com/_mock/openapi/trips/12345/config \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "version": "1.0.0",
    "blocks": [
      {
        "id": "block-123",
        "type": "accommodation",
        "content": {},
        "children": [
          {}
        ],
        "parent": "block-parent-456",
        "hidden": false
      }
    ],
    "contact": {
      "address": "123 Main Street, Paris, France",
      "agencyName": "Travel Dreams Agency",
      "agentName": "John Doe",
      "description": "Expert travel agent specializing in European tours",
      "email": "contact@travelagency.com",
      "phoneNumber": "+33 1 23 45 67 89",
      "pictureUrl": "https://example.com/agent-photo.jpg",
      "type": "agency",
      "visible": true,
      "web": "https://travelagency.com"
    },
    "slider": [],
    "settings": {
      "description": "A wonderful 7-day trip to Paris",
      "canDownloadPdf": true,
      "canCreateCopy": false,
      "hasExpiration": false,
      "shareOnWhatsapp": {
        "enabled": true,
        "phoneNumber": "+33123456789"
      },
      "language": "en",
      "startOfTheWeek": "monday",
      "timeFormat": "24h",
      "dateFormat": "DD/MM/YYYY",
      "timezone": "Europe/Paris",
      "currencySymbolPosition": "end",
      "decimalSeparator": ",",
      "currency": "EUR"
    },
    "moreInfo": {
      "enabled": false,
      "fields": []
    },
    "paymentMethodId": 123,
    "quotation": {
      "planningRate": 10,
      "secondRate": 5
    },
    "theme": {
      "headerImage": {
        "config": "cover"
      },
      "navigation": "verticalRight",
      "logo": "https://example.com/logo.png",
      "color": "#195bf5",
      "font": "Roboto",
      "pdfContactPosition": "lastPage"
    },
    "images": {
      "files": []
    },
    "cover": {
      "enabled": true,
      "files": []
    }
  }'

Responses

Configuration updated successfully

Bodyapplication/json
messagestring
Example: "Config updated"
Response
application/json
{ "message": "Config updated" }

catalogs

Operations for managing catalogs

Operations

status

API health check

Operations