Marcos by AI Trip Planner 🌴

Marcos by AI Trip Planner 🌴 · Ações GPT

Trip Planner API

API for creating a personalized trip plan

  • POST /gpts/tripplanner/generate?appId=5KrHivL0dPGT2TVXKrzvGenerate a trip plan

    This endpoint accepts a POST request for generating a trip plan based on destination, travel days and interests.

  • GET /gpts/tripplanner/get_item?appId=5KrHivL0dPGT2TVXKrzvGet full existing trip plan

    This endpoint accepts a GET request for returning a trip plan by id.

  • POST /gpts/tripplanner/save_new?appId=5KrHivL0dPGT2TVXKrzvSave an entire trip plan

    This endpoint accepts a POST request for saving a new trip plan based on destination, travel days and interests.

  • POST /gpts/tripplanner/update?appId=5KrHivL0dPGT2TVXKrzvSave changes in a trip plan

    This endpoint accepts a POST request for updating parts of the trip plan.

Esquema API original
{
  "openapi": "3.1.0",
  "info": {
    "title": "Trip Planner API",
    "version": "1.0.0",
    "description": "API for creating a personalized trip plan"
  },
  "servers": [
    {
      "url": "https://buildai.space/api"
    }
  ],
  "paths": {
    "/gpts/tripplanner/generate?appId=5KrHivL0dPGT2TVXKrzv": {
      "post": {
        "summary": "Generate a trip plan",
        "description": "This endpoint accepts a POST request for generating a trip plan based on destination, travel days and interests.",
        "operationId": "GenerateTripPlan",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "destination": {
                    "type": "string",
                    "description": "A canonical name for travel destination"
                  },
                  "travel_days": {
                    "type": "integer",
                    "description": "The number of days for the trip",
                    "minimum": 1,
                    "maximum": 7
                  },
                  "interests": {
                    "type": "string",
                    "description": "The travel style of the trip",
                    "default": "Adventure and Outdoor",
                    "enum": [
                      "Relaxation",
                      "Cultural and Historical",
                      "Romantic for Couples",
                      "Family-Friendly",
                      "Adventure and Outdoor"
                    ]
                  }
                },
                "required": [
                  "destination",
                  "travel_days",
                  "interests"
                ]
              }
            }
          },
          "required": true
        }
      }
    },
    "/gpts/tripplanner/get_item?appId=5KrHivL0dPGT2TVXKrzv": {
      "get": {
        "summary": "Get full existing trip plan",
        "description": "This endpoint accepts a GET request for returning a trip plan by id.",
        "operationId": "GetFullTripPlan",
        "parameters": [
          {
            "name": "itemId",
            "in": "query",
            "description": "the plan id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/gpts/tripplanner/save_new?appId=5KrHivL0dPGT2TVXKrzv": {
      "post": {
        "summary": "Save an entire trip plan",
        "description": "This endpoint accepts a POST request for saving a new trip plan based on destination, travel days and interests.",
        "operationId": "SaveNewTripPlan",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "request": {
                    "type": "object",
                    "properties": {
                      "destination": {
                        "type": "string",
                        "description": "A canonical name for travel destination"
                      },
                      "travel_days": {
                        "type": "integer",
                        "description": "The number of days for the trip",
                        "minimum": 1,
                        "maximum": 7
                      },
                      "interests": {
                        "type": "string",
                        "description": "The travel style of the trip",
                        "default": "Adventure and Outdoor",
                        "enum": [
                          "Relaxation",
                          "Cultural and Historical",
                          "Romantic for Couples",
                          "Family-Friendly",
                          "Adventure and Outdoor"
                        ]
                      }
                    },
                    "required": [
                      "destination",
                      "travel_days",
                      "interests"
                    ]
                  },
                  "plan": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "day": {
                          "type": "string",
                          "description": "The day of the trip only for the first row of every day"
                        },
                        "time": {
                          "type": "string",
                          "description": "The time of the activity"
                        },
                        "activity_title": {
                          "type": "string",
                          "description": "The title of the activity"
                        },
                        "comment": {
                          "type": "string",
                          "description": "A comment about the activity"
                        },
                        "city": {
                          "type": "string",
                          "description": "The city of the activity"
                        },
                        "activity_type": {
                          "type": "string",
                          "enum": [
                            "Travel Destination",
                            "Purchase Attraction",
                            "Food"
                          ]
                        }
                      },
                      "required": [
                        "day",
                        "time",
                        "activity_title",
                        "comment",
                        "city",
                        "activity_type"
                      ]
                    }
                  }
                },
                "required": [
                  "request",
                  "plan"
                ]
              }
            }
          },
          "required": true
        }
      }
    },
    "/gpts/tripplanner/update?appId=5KrHivL0dPGT2TVXKrzv": {
      "post": {
        "summary": "Save changes in a trip plan",
        "description": "This endpoint accepts a POST request for updating parts of the trip plan.",
        "operationId": "SaveChangesInTripPlan",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "item_id": {
                    "type": "string",
                    "description": "The id of the trip plan to be updated itemEditableId"
                  },
                  "changes": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "block_id": {
                          "type": "string",
                          "description": "The block id (__blockId) in the trip plan for example a8Vhl06Tjk"
                        },
                        "action": {
                          "type": "string",
                          "enum": [
                            "add_before",
                            "add_after",
                            "replace",
                            "delete"
                          ]
                        },
                        "row_id": {
                          "type": "string",
                          "description": "The id of the row (__rowId) in the block"
                        },
                        "data": {
                          "type": "object",
                          "description": "The JSON data to be added, deleted or modified",
                          "properties": {
                            "time": {
                              "type": "string",
                              "description": "The time of the activity"
                            },
                            "activity_title": {
                              "type": "string",
                              "description": "The title of the activity"
                            },
                            "comment": {
                              "type": "string",
                              "description": "A comment about the activity"
                            },
                            "city": {
                              "type": "string",
                              "description": "The city of the activity"
                            },
                            "activity_type": {
                              "type": "string",
                              "enum": [
                                "Travel Destination",
                                "Purchase Attraction",
                                "Food"
                              ]
                            }
                          },
                          "required": [
                            "time",
                            "activity_title",
                            "comment",
                            "city",
                            "activity_type"
                          ]
                        }
                      },
                      "required": [
                        "block_id",
                        "row_id",
                        "action",
                        "data"
                      ]
                    }
                  }
                },
                "required": [
                  "item_id",
                  "changes"
                ]
              }
            }
          },
          "required": true
        }
      }
    }
  }
}