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

ai

AI-powered trip generation from documents and text

Operations

trips

Operations for managing trips

Operations

catalogs

Operations for managing catalogs

Operations

Get catalogs

Request

Retrieve a paginated list of catalogs

Security
bearerAuth
Query
pageinteger

Page number

Example: page=1
pageSizeinteger

Items per page

Example: pageSize=20
filtersstring

JSON array of filters

Example: filters=[]
orderBystring

JSON object for sorting

Example: orderBy={"field":"title","direction":"asc"}
searchstring

JSON object for searching

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

Responses

Successful response with paginated catalogs

Bodyapplication/json
dataArray of objects(Catalog)required
data[].​idintegerrequired

Unique identifier for the catalog

Example: 101
data[].​titlestringrequired

Title of the catalog

Example: "European Tours"
data[].​descriptionstring or null

Description of the catalog

Example: "Collection of our best European tours"
data[].​logoUrlstring or null(uri)

URL of the catalog logo

Example: "https://example.com/catalog-logo.png"
data[].​accountIdintegerrequired

ID of the account that owns the catalog

Example: 50
data[].​filtersobject

Filter configuration for the catalog

data[].​tripCountinteger

Number of trips in the catalog

Example: 15
data[].​createdAtstring(date-time)required

Timestamp when the catalog was created

Example: "2025-01-10T08:00:00.000Z"
data[].​updatedAtstring(date-time)required

Timestamp when the catalog was last updated

Example: "2025-01-18T12:00:00.000Z"
pageintegerrequired

Current page number

Example: 1
pageSizeintegerrequired

Number of items per page

Example: 20
totalCountintegerrequired

Total number of items

Example: 25
totalPagesintegerrequired

Total number of pages

Example: 2
Response
application/json
{ "data": [ { … } ], "page": 1, "pageSize": 20, "totalCount": 25, "totalPages": 2 }

Create catalog

Request

Create a new catalog with the specified details

Security
bearerAuth
Bodyapplication/jsonrequired
titlestringrequired
Example: "European Tours"
descriptionstring
Example: "Collection of our best European tours"
filtersobject
logoUrlstring(uri)
Example: "https://example.com/catalog-logo.png"
tripIdsArray of integers
Example: [12345,12346]
curl -i -X POST \
  https://api-docs.moguplatform.com/_mock/openapi/catalogs \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "European Tours",
    "description": "Collection of our best European tours",
    "filters": {
      "country": true
    },
    "logoUrl": "https://example.com/catalog-logo.png",
    "tripIds": [
      12345,
      12346
    ]
  }'

Responses

Catalog created successfully

Bodyapplication/json
idintegerrequired

Unique identifier for the catalog

Example: 101
titlestringrequired

Title of the catalog

Example: "European Tours"
descriptionstring or null

Description of the catalog

Example: "Collection of our best European tours"
logoUrlstring or null(uri)

URL of the catalog logo

Example: "https://example.com/catalog-logo.png"
accountIdintegerrequired

ID of the account that owns the catalog

Example: 50
filtersobject

Filter configuration for the catalog

tripCountinteger

Number of trips in the catalog

Example: 15
createdAtstring(date-time)required

Timestamp when the catalog was created

Example: "2025-01-10T08:00:00.000Z"
updatedAtstring(date-time)required

Timestamp when the catalog was last updated

Example: "2025-01-18T12:00:00.000Z"
Response
application/json
{ "id": 101, "title": "European Tours", "description": "Collection of our best European tours", "logoUrl": "https://example.com/catalog-logo.png", "accountId": 50, "filters": { "country": true }, "tripCount": 0, "createdAt": "2025-01-20T08:00:00.000Z", "updatedAt": "2025-01-20T08:00:00.000Z" }

Delete catalogs in bulk

Request

Delete multiple catalogs at once. Uses POST method for bulk operations.

Security
bearerAuth
Bodyapplication/jsonrequired
catalogIdsArray of integersrequired

Array of catalog IDs to delete

Example: [101,102,103]
curl -i -X POST \
  https://api-docs.moguplatform.com/_mock/openapi/catalogs/bulk-delete \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "catalogIds": [
      101,
      102,
      103
    ]
  }'

Responses

Catalogs deleted successfully

Bodyapplication/json
messagestring
Example: "Catalogs deleted successfully"
deletedCountinteger
Example: 3
Response
application/json
{ "message": "Catalogs deleted successfully", "deletedCount": 3 }

Get catalog

Request

Retrieve detailed information about a specific catalog

Security
bearerAuth
Path
idintegerrequired

Unique identifier of the catalog

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

Responses

Catalog details

Bodyapplication/json
idintegerrequired

Unique identifier for the catalog

Example: 101
titlestringrequired

Title of the catalog

Example: "European Tours"
descriptionstring or null

Description of the catalog

Example: "Collection of our best European tours"
logoUrlstring or null(uri)

URL of the catalog logo

Example: "https://example.com/catalog-logo.png"
accountIdintegerrequired

ID of the account that owns the catalog

Example: 50
filtersobject

Filter configuration for the catalog

tripCountinteger

Number of trips in the catalog

Example: 15
createdAtstring(date-time)required

Timestamp when the catalog was created

Example: "2025-01-10T08:00:00.000Z"
updatedAtstring(date-time)required

Timestamp when the catalog was last updated

Example: "2025-01-18T12:00:00.000Z"
Response
application/json
{ "id": 101, "title": "European Tours", "description": "Collection of our best European tours", "logoUrl": "https://example.com/catalog-logo.png", "accountId": 50, "filters": { "country": true }, "tripCount": 15, "createdAt": "2025-01-10T08:00:00.000Z", "updatedAt": "2025-01-18T12:00:00.000Z" }

Update catalog

Request

Update catalog details and associated trips

Security
bearerAuth
Path
idintegerrequired

Unique identifier of the catalog

Example: 101
Bodyapplication/jsonrequired
titlestring
Example: "Updated European Tours"
descriptionstring
Example: "Updated collection description"
tripIdsArray of integers
Example: [12345,12346,12347]
curl -i -X PATCH \
  https://api-docs.moguplatform.com/_mock/openapi/catalogs/101 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Updated European Tours",
    "description": "Updated collection description",
    "tripIds": [
      12345,
      12346,
      12347
    ]
  }'

Responses

Catalog updated successfully

Bodyapplication/json
idintegerrequired

Unique identifier for the catalog

Example: 101
titlestringrequired

Title of the catalog

Example: "European Tours"
descriptionstring or null

Description of the catalog

Example: "Collection of our best European tours"
logoUrlstring or null(uri)

URL of the catalog logo

Example: "https://example.com/catalog-logo.png"
accountIdintegerrequired

ID of the account that owns the catalog

Example: 50
filtersobject

Filter configuration for the catalog

tripCountinteger

Number of trips in the catalog

Example: 15
createdAtstring(date-time)required

Timestamp when the catalog was created

Example: "2025-01-10T08:00:00.000Z"
updatedAtstring(date-time)required

Timestamp when the catalog was last updated

Example: "2025-01-18T12:00:00.000Z"
Response
application/json
{ "id": 101, "title": "European Tours", "description": "Collection of our best European tours", "logoUrl": "https://example.com/catalog-logo.png", "accountId": 50, "filters": { "country": true }, "tripCount": 15, "createdAt": "2025-01-10T08:00:00.000Z", "updatedAt": "2025-01-18T12:00:00.000Z" }

Delete catalog

Request

Delete a specific catalog by ID

Security
bearerAuth
Path
idintegerrequired

Unique identifier of the catalog

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

Responses

Catalog deleted successfully

Get trips in catalog

Request

Retrieve all trips associated with a specific catalog

Security
bearerAuth
Path
idintegerrequired

Unique identifier of the catalog

Example: 101
Query
filtersstring

JSON array of filters

Example: filters=[]
curl -i -X GET \
  'https://api-docs.moguplatform.com/_mock/openapi/catalogs/101/trips?filters=%5B%5D' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

List of trips in the catalog

Bodyapplication/json
dataArray of objects(TripListItem)
Response
application/json
{ "data": [ { … } ] }

Get public catalog

Request

Retrieve a publicly accessible catalog by ID

Path
idintegerrequired

Unique identifier of the catalog

Example: 101
Query
filtersstring

JSON array of filters

Example: filters=[]
curl -i -X GET \
  'https://api-docs.moguplatform.com/_mock/openapi/catalogs/public/101?filters=%5B%5D'

Responses

Public catalog details

Bodyapplication/json
idintegerrequired

Unique identifier for the catalog

Example: 101
titlestringrequired

Title of the catalog

Example: "European Tours"
descriptionstring or null

Description of the catalog

Example: "Collection of our best European tours"
logoUrlstring or null(uri)

URL of the catalog logo

Example: "https://example.com/catalog-logo.png"
accountIdintegerrequired

ID of the account that owns the catalog

Example: 50
filtersobject

Filter configuration for the catalog

tripCountinteger

Number of trips in the catalog

Example: 15
createdAtstring(date-time)required

Timestamp when the catalog was created

Example: "2025-01-10T08:00:00.000Z"
updatedAtstring(date-time)required

Timestamp when the catalog was last updated

Example: "2025-01-18T12:00:00.000Z"
Response
application/json
{ "id": 101, "title": "European Tours", "description": "Collection of our best European tours", "logoUrl": "https://example.com/catalog-logo.png", "accountId": 50, "filters": { "country": true }, "tripCount": 15, "createdAt": "2025-01-10T08:00:00.000Z", "updatedAt": "2025-01-18T12:00:00.000Z" }

status

API health check

Operations