Mon-voyage-pas-cher.com Public API icon

Mon-voyage-pas-cher.com Public API

Connect to Mon-voyage-pas-cher.com Public API with 1 MCP tools for AI-powered API automation.

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "api.mon-voyage-pas-cher.com",
  "info": {
    "title": "Mon-voyage-pas-cher.com Public API",
    "version": "0.0.1",
    "x-apisguru-categories": [
      "transport"
    ],
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://www.mon-voyage-pas-cher.com/assets/documentation/swagger.yaml",
        "version": "2.0"
      }
    ],
    "x-providerName": "mon-voyage-pas-cher.com",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "x-api-key": {
      "in": "header",
      "name": "x-api-key",
      "type": "apiKey"
    }
  },
  "paths": {
    "/airports": {
      "get": {
        "description": "This webservice is providing you the ability to retrieve a list of airports matching your search criterias.<br />The 3 mains search criterias are<br />- by country code, this will list all airports for a given country.<br />- by latitude/longitude with a radius in km. You can actually combine those 2 criterias, and search for example the closest airport in the USA of Vancoucer, Canada.<br />- The last way to use the API is by searching directly with a IATA CODE in the location parameter, this will only return one result in the array of data results",
        "operationId": "getAirport",
        "parameters": [
          {
            "description": "the language code of the language you want the content to be returned",
            "enum": [
              "en",
              "fr",
              "de",
              "es"
            ],
            "in": "query",
            "name": "language",
            "required": true,
            "type": "string"
          },
          {
            "description": "The location you want to search for. Either a latitude/longitude point or a letter airport IATA CODE ( ex. LHR ) if you want the detail for only one single airport.",
            "in": "query",
            "name": "location",
            "pattern": "^[A-Za-z]{3}$|^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": false,
            "type": "string"
          },
          {
            "default": 100,
            "description": "Radius in km for a lat/long search, will be ignore if a IATA is passed in location parameter code is passed",
            "in": "query",
            "maximum": 500,
            "name": "radius",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Filter - The country ISO code 2 letters, provided by the GET /countries. If passed the results will be filtered to this country only, regardless if you passed a lat/long and a large radius",
            "in": "query",
            "name": "countrycode",
            "pattern": "^[A-Za-z]{2}$",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filter the results to only the top and large airports airports.",
            "in": "query",
            "name": "top_airports",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AirportsSearchResponse"
            }
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search airports by country / Search nearby airports / Search an airport",
        "tags": [
          "Geography APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "airports"
    },
    "/cities/findcitiesfromlatlong": {
      "get": {
        "description": "Search cities according to given criterias. Either lat/long + radius or country code. A limit can be given but cannot exceed 50 results.<br /> A significant city will be defined according to the pourcent of population within a country.",
        "operationId": "getCities",
        "parameters": [
          {
            "description": "the language code of the language you want the content to be returned",
            "enum": [
              "en",
              "fr",
              "de",
              "es"
            ],
            "in": "query",
            "name": "language",
            "required": true,
            "type": "string"
          },
          {
            "description": "if you want to limit the result to one country",
            "in": "query",
            "name": "countrycode",
            "pattern": "^[A-Za-z]{2}$",
            "required": false,
            "type": "string"
          },
          {
            "description": "The Lat/Long of the location your are seeking cities ( ex. 45.4478988,3.23456)",
            "in": "query",
            "name": "location",
            "pattern": "^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": false,
            "type": "string"
          },
          {
            "default": 20,
            "description": "Radius in km for a lat/long search. Default is 20km and there is no maximum, but need to be combined with limit. code is passed",
            "in": "query",
            "maximum": 200,
            "name": "radius",
            "required": false,
            "type": "integer"
          },
          {
            "default": 20,
            "description": "Limit of the result. Default is 20 rows, and maximum is 50.",
            "in": "query",
            "maximum": 50,
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "default": 0,
            "description": "offset of the result set",
            "in": "query",
            "minimum": 0,
            "name": "offset",
            "required": false,
            "type": "integer"
          },
          {
            "default": "distance,asc",
            "description": "The order you want the result ordered. Default is population while when entering a lat/long, you can order the results by distance from requested lat/long point",
            "enum": [
              "distance,desc",
              "distance,asc",
              "population,desc",
              "population,asc",
              "elevation,desc",
              "elevation,asc",
              "name,desc",
              "name,asc",
              "timezone,asc",
              "timezone,desc"
            ],
            "in": "query",
            "name": "sort",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CitiesResponse"
            }
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search all cities from lat/long or countrycode",
        "tags": [
          "Geography APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "cities"
    },
    "/cities/findcitiesfromtext": {
      "get": {
        "description": "Search cities from a string parameters.",
        "operationId": "getAutocomplete",
        "parameters": [
          {
            "description": "the string you want to search",
            "in": "query",
            "minLength": 3,
            "name": "q",
            "required": true,
            "type": "string"
          },
          {
            "description": "the language code of the language you want the content to be returned",
            "enum": [
              "en",
              "fr",
              "de",
              "es"
            ],
            "in": "query",
            "name": "language",
            "required": true,
            "type": "string"
          },
          {
            "description": "if you want to limit the result to one country",
            "in": "query",
            "name": "countrycode",
            "pattern": "^[A-Za-z]{2}$",
            "required": false,
            "type": "string"
          },
          {
            "default": "population,desc",
            "description": "The order you want the result ordered. Default is population while when entering a lat/long, you can order the results by distance from requested lat/long point",
            "enum": [
              "population,desc",
              "population,asc",
              "elevation,desc",
              "elevation,asc",
              "name,desc",
              "name,asc",
              "timezone,asc",
              "timezone,desc",
              "match_score,desc",
              "match_score,asc"
            ],
            "in": "query",
            "name": "sort",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CitiesResponse"
            }
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Retrieve cities informations from a string / build an autocomplete",
        "tags": [
          "Geography APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "cities"
    },
    "/cities/significant": {
      "get": {
        "description": "Search cities according to given criterias. Either lat/long + radius or country code. A limit can be given but cannot exceed 50 results.<br /> A significant city will be defined according to the pourcent of population within a country.",
        "operationId": "getSignificantCities",
        "parameters": [
          {
            "description": "the language code of the language you want the content to be returned",
            "enum": [
              "en",
              "fr",
              "de",
              "es"
            ],
            "in": "query",
            "name": "language",
            "required": true,
            "type": "string"
          },
          {
            "default": 0.5,
            "description": "The pourcent of population the cities need to be in order to appear in results",
            "in": "query",
            "maximum": 5,
            "minimum": 0.05,
            "name": "pourcent",
            "required": false,
            "type": "number"
          },
          {
            "description": "if you want to limit the result to one country",
            "in": "query",
            "name": "countrycode",
            "pattern": "^[A-Za-z]{2}$",
            "required": false,
            "type": "string"
          },
          {
            "description": "The Lat/Long of the location your are seeking cities ( ex. 45.4478988,3.23456)",
            "in": "query",
            "name": "location",
            "pattern": "^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": false,
            "type": "string"
          },
          {
            "default": 20,
            "description": "Radius in km for a lat/long search. Default is 20km and there is no maximum, but need to be combined with limit. code is passed",
            "in": "query",
            "maximum": 200,
            "name": "radius",
            "required": false,
            "type": "integer"
          },
          {
            "default": 20,
            "description": "Limit of the result. Default is 20 rows, and maximum is 50.",
            "in": "query",
            "maximum": 50,
            "minimum": 1,
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "default": 0,
            "description": "offset of the result set",
            "in": "query",
            "minimum": 0,
            "name": "offset",
            "required": false,
            "type": "integer"
          },
          {
            "default": "population,desc",
            "description": "The order you want the result ordered. Default is population while when entering a lat/long, you can order the results by distance from requested lat/long point",
            "enum": [
              "distance,desc",
              "distance,asc",
              "population,desc",
              "population,asc",
              "elevation,desc",
              "elevation,asc",
              "name,desc",
              "name,asc",
              "timezone,asc",
              "timezone,desc"
            ],
            "in": "query",
            "name": "sort",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CitiesResponse"
            }
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search significant cities from lat/long or countrycode",
        "tags": [
          "Geography APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "cities"
    },
    "/continents": {
      "get": {
        "description": "This webservice is providing you the ability to retrieve all informations about continents",
        "operationId": "getContinents",
        "parameters": [
          {
            "description": "The language code of the language you want the content to be returned",
            "enum": [
              "en",
              "fr",
              "de",
              "es"
            ],
            "in": "query",
            "name": "language",
            "required": true,
            "type": "string"
          },
          {
            "description": "The code of the continent you want to retrieve, this parameter is not required if you want ot retrieve all continents at once",
            "in": "query",
            "name": "continentcode",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContinentsResponse"
            }
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search all continents or one specific continent",
        "tags": [
          "Geography APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "continents"
    },
    "/countries": {
      "get": {
        "description": "This webservice is providing you the ability to retrieve a list of countries matching your search criterias.<br />The 2 mains ways to search use this API are<br />- by countrycode, it will only returns you one country<br />- without the countrycode parameter which will return the full list of countries",
        "operationId": "getCountries",
        "parameters": [
          {
            "description": "the language code of the language you want the content to be returned",
            "enum": [
              "en",
              "fr",
              "de",
              "es"
            ],
            "in": "query",
            "name": "language",
            "required": true,
            "type": "string"
          },
          {
            "description": "The code of the country you want to retrieve",
            "in": "query",
            "name": "countrycode",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CountriesResponse"
            }
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search all countries or one specific country",
        "tags": [
          "Geography APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "countries"
    },
    "/distance": {
      "get": {
        "description": "This webservice is providing you the ability to calculate the distance between 2 lat/long points, it returns you the value in km or miles",
        "operationId": "getDistance",
        "parameters": [
          {
            "description": "The location as a latitude / longitude point ( ex. 67.85572,20.22513 ) of location point A",
            "in": "query",
            "name": "locationA",
            "pattern": "^[A-Za-z]{3}$|^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The location as a latitude / longitude point ( ex. 67.85572,20.22513 ) of location point B",
            "in": "query",
            "name": "locationB",
            "pattern": "^[A-Za-z]{3}$|^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": true,
            "type": "string"
          },
          {
            "default": "kms",
            "description": "The unit of length you want the elevation returned either meters or feet returned",
            "enum": [
              "kms",
              "miles"
            ],
            "in": "query",
            "name": "unit",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistanceResponse"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Calculate distance between lats/longs",
        "tags": [
          "Services APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "elevation"
    },
    "/elevation": {
      "get": {
        "description": "This webservice is providing you the ability to retrieve the elevation in meters or feet of ONE or MULTIPLE given latitude/longitude point(s). <br />If you use MULTIPLE lat/long point, the maximum number of point you can send in one request is 256. Be aware that if MULTIPLE mode, the results are de-deplicated if you are sending the same latitude/longitude point multiple times.<br />If your workload is a batch of millions of lat/long point, You will also get better throughput if you send around 100 lat/long points in one request than the maximum. This maximum is mostly allowed for people trying to graph altitudes.",
        "operationId": "getElevation",
        "parameters": [
          {
            "default": "67.85572,20.22513",
            "description": "The location as a latitude / longitude point ( ex. 67.85572,20.22513 ) or a list of coordinates separated using the pipe ('|') character. The maximum number of coordinates you can send at one time is 20 ( ex. 67.85572,20.22513|27.85572,20.22513 )",
            "in": "query",
            "name": "locations",
            "pattern": "^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)+((\\|\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)){0,256}$",
            "required": true,
            "type": "string"
          },
          {
            "default": "meters",
            "description": "The unit of length you want the elevation returned either meters or feet returned",
            "enum": [
              "meters",
              "feet"
            ],
            "in": "query",
            "name": "unit",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ElevationResponse"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search elevation informations from lat/long",
        "tags": [
          "Services APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "elevation"
    },
    "/pong": {
      "get": {
        "description": "Returns a ping. In case you need a health check in your system. Cannot be called /ping as AWS is using this route for their health check. This webservice doesn't have CORS enable, as it's supposed to be call server to server and not from a webpage ( it won't work over the tester)",
        "operationId": "getPing",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PongResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "tags": [
          "Utilities APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "x-swagger-router-controller": "ping"
    },
    "/sun_positions": {
      "get": {
        "description": "This webservice is providing you the ability to retrieve the time of each phases of the sunlight cycle. Sunset, sunrise, sunriseEnd, golden hour, solarNoon, dawn, dusk and more for a given location and date. If the date if not provided, the response provided return informations for today at UTC time.",
        "operationId": "getSun",
        "parameters": [
          {
            "description": "Here you can send either a latitude / longitude",
            "in": "query",
            "name": "location",
            "pattern": "^[A-Za-z]{3}$|^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": true,
            "type": "string"
          },
          {
            "description": "The date for what you will get the data ( full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21 ), if not provided as parameter, today is going to be used",
            "format": "date",
            "in": "query",
            "name": "date",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SunPositionResponse"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search position of sun from lat/long and date",
        "tags": [
          "Services APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "sun_moon"
    },
    "/swagger": {
      "x-swagger-pipe": "swagger_raw"
    },
    "/timezone": {
      "get": {
        "description": "This webservice is providing you the ability to retrieve the tz database time zones ( https://en.wikipedia.org/wiki/List_of_tz_database_time_zones )  from a given location ( )latitude and longitude or IATA code ). It also returns you the current time at the provided location.",
        "operationId": "getTimezone",
        "parameters": [
          {
            "default": "45.8326307,6.8650517",
            "description": "Here you can send either a latitude / longitude ( ex. 67.85572,20.22513 ) or a IATA Code ( ex. LHR for London Heathrow)",
            "in": "query",
            "name": "location",
            "pattern": "^[A-Za-z]{3}$|^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TimezoneResponse"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "The error message object",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "x-api-key": []
          }
        ],
        "summary": "Search timezone and time informations from lat/long",
        "tags": [
          "Services APIs"
        ],
        "x-amazon-apigateway-integration": {
          "httpMethod": "POST",
          "type": "aws_proxy",
          "uri": "${lambda_handler_invoke_arn}"
        }
      },
      "options": {
        "consumes": [
          "application/json"
        ],
        "description": "Enable CORS by returning correct headers\n",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Default response for CORS method",
            "headers": {
              "Access-Control-Allow-Headers": {
                "type": "string"
              },
              "Access-Control-Allow-Methods": {
                "type": "string"
              },
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            }
          }
        },
        "summary": "CORS support",
        "x-amazon-apigateway-integration": {
          "requestTemplates": {
            "application/json": "{\n  \"statusCode\" : 200\n}\n"
          },
          "responses": {
            "default": {
              "responseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'",
                "method.response.header.Access-Control-Allow-Methods": "'*'",
                "method.response.header.Access-Control-Allow-Origin": "'*'"
              },
              "responseTemplates": {
                "application/json": "{}\n"
              },
              "statusCode": "200"
            }
          },
          "type": "mock"
        }
      },
      "x-swagger-router-controller": "timezone"
    }
  },
  "definitions": {
    "AirportsSearchResponse": {
      "description": "This section provides response schema of Airport Search Response",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/DataAirportsSearch"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CitiesData": {
      "description": "This is the data object for the response of a Cities APIs calls",
      "properties": {
        "alternatename": {
          "items": {
            "description": "Here is a list of alternate name for the city in the requested language",
            "type": "string"
          },
          "type": "array"
        },
        "asciiname": {
          "description": "The ASCII name of the city",
          "type": "string"
        },
        "country": {
          "description": "The 2 letter ISO code of the country the city belongs to",
          "type": "string"
        },
        "elevation": {
          "description": "The elevation of the city",
          "type": "number"
        },
        "latitude": {
          "description": "The latitude considered as central for the city",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude considered as central for the city",
          "type": "number"
        },
        "name": {
          "description": "The name of the city",
          "type": "string"
        },
        "population": {
          "description": "The population of the city",
          "type": "number"
        },
        "timezone": {
          "description": "The longitude considered as central for the city",
          "type": "string"
        }
      }
    },
    "CitiesResponse": {
      "description": "This is the main object for the response of a Cities API call",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/CitiesData"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ContinentData": {
      "description": "This is the data object for the response of a Continent API call",
      "properties": {
        "code": {
          "description": "The ISO code of the continent.",
          "type": "string"
        },
        "countries_in": {
          "items": {
            "description": "Here is a list of country code that belong to the continent",
            "type": "string"
          },
          "type": "array"
        },
        "latitude": {
          "description": "The latitude considered as central for the continent",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude considered as central for the continent",
          "type": "number"
        },
        "name": {
          "description": "The name of the continent in english",
          "type": "string"
        },
        "name_locale": {
          "description": "The name of the continent in the requested languager",
          "type": "string"
        }
      }
    },
    "ContinentsResponse": {
      "description": "This is the main object for the response of a Continent API call",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/ContinentData"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CountriesData": {
      "description": "This is the data object for the response of a Countries API call",
      "properties": {
        "airportscount": {
          "description": "The name of the country in english language",
          "type": "number"
        },
        "alternatename": {
          "items": {
            "description": "The other given name, nickname of the country, this is as well as in requested language but also foreign languages",
            "type": "string"
          },
          "type": "array"
        },
        "areainsqkm": {
          "description": "The superficy of the country in square km",
          "type": "number"
        },
        "capital": {
          "description": "The capital of this country in english language",
          "type": "string"
        },
        "currencycode": {
          "description": "The international currency code",
          "type": "string"
        },
        "currencyname": {
          "description": "The local name of the currency used in this country",
          "type": "string"
        },
        "fr_article": {
          "description": "The name of the country in english language",
          "type": "string"
        },
        "fr_preposition": {
          "description": "The name of the country in english language",
          "type": "string"
        },
        "iso_alpha2": {
          "description": "The 2 letter ISO code of the country",
          "type": "string"
        },
        "languages": {
          "description": "The name of the country in english language",
          "type": "string"
        },
        "latitude": {
          "description": "The latitude considered as central for this country",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude considered as central for this country",
          "type": "number"
        },
        "name": {
          "description": "The name of the country in english language",
          "type": "string"
        },
        "name_locale": {
          "description": "The name of the country in the requested language",
          "type": "string"
        },
        "neighbors": {
          "items": {
            "description": "Here is a list of country code that have territorial border with the this country",
            "type": "string"
          },
          "type": "array"
        },
        "population": {
          "description": "The total population in this country",
          "type": "number"
        },
        "postalcode": {
          "description": "The format of the postal codes if multiple format to be applied, then a pipe | is used as separator",
          "type": "string"
        },
        "postalcoderegex": {
          "description": "The regex to use to check a postal code for this country",
          "type": "string"
        },
        "tld": {
          "description": "The top level domain which is used by the local internet authority.",
          "type": "string"
        }
      }
    },
    "CountriesResponse": {
      "description": "This is the main object for the response of a Countries API call",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/CountriesData"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DataAirportsSearch": {
      "properties": {
        "airlineroutescount": {
          "type": "integer"
        },
        "airport_website": {
          "type": "string"
        },
        "altitude": {
          "type": "integer"
        },
        "cityname": {
          "type": "string"
        },
        "countrycode": {
          "type": "string"
        },
        "destinationscount": {
          "type": "integer"
        },
        "distance": {
          "description": "only in response when operating a lat/long search",
          "type": "string"
        },
        "iatacode": {
          "type": "string"
        },
        "icao": {
          "type": "string"
        },
        "istopdestination": {
          "type": "boolean"
        },
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "timezone": {
          "type": "string"
        },
        "wikipedia_page": {
          "type": "string"
        }
      }
    },
    "DistanceResponse": {
      "description": "This section provides response schema of pong response",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "description": "Here is the distance between latlong A and latlong B, in the requested unit",
          "type": "number"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ElevationData": {
      "properties": {
        "elevation": {
          "type": "integer"
        },
        "location": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        }
      }
    },
    "ElevationResponse": {
      "description": "This is the main object for the response of a TimezoneRequest",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/ElevationData"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ErrorResponse": {
      "properties": {
        "message": {
          "type": "string"
        }
      },
      "required": [
        "message"
      ]
    },
    "PongResponse": {
      "description": "This section provides response schema of pong response",
      "properties": {
        "data": {
          "description": "Will always return \"pong\"",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SunPositionData": {
      "description": "This is the data object for the response of a SunPosition API call",
      "properties": {
        "dawn": {
          "description": "Date and time of the dawn at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "dusk": {
          "description": "Date and time of the dusk at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "goldenHour": {
          "description": "Date and time of the golden hour at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "goldenHourEnd": {
          "description": "Date and time of the golden hour end at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "nadir": {
          "description": "Date and time of the nadir at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "nauticalDawn": {
          "description": "Date and time of the nautical dawn at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "nauticalDusk": {
          "description": "Date and time of the nautical dusk at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "night": {
          "description": "Date and time of the night at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "nightEnd": {
          "description": "Date and time of the night end at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "solarNoon": {
          "description": "Date and time of the solar moon at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "sunrise": {
          "description": "Date and time of the sunris at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "sunriseEnd": {
          "description": "Date and time of the sunrise end at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "sunset": {
          "description": "Date and time of the sunset at local time of the given location",
          "format": "date-time",
          "type": "string"
        },
        "sunsetStart": {
          "description": "Date and time of the sunset start at local time of the given location",
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "SunPositionResponse": {
      "description": "This is the main object for the response of a SunPosition API call",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "$ref": "#/definitions/SunPositionData",
          "type": "object"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TimezoneResponse": {
      "description": "This is the main object for the response of a TimezoneRequest",
      "properties": {
        "count": {
          "type": "integer"
        },
        "data": {
          "properties": {
            "time_now": {
              "format": "date-time",
              "type": "string"
            },
            "timezone_name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "description": "Status of the response",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "x-amazon-apigateway-api-key-source": "HEADER"
}