{
  "swagger": "2.0",
  "info": {
    "title": "Uber API",
    "description": "Move your app forward with the Uber API",
    "version": "1.0.0"
  },
  "host": "api.uber.com",
  "schemes": [
    "https"
  ],
  "basePath": "/v1",
  "produces": [
    "application/json"
  ],
  "paths": {
    "/estimates/price": {
      "get": {
        "summary": "Price Estimates",
        "description": "The Price Estimates endpoint returns an estimated price range\nfor each product offered at a given location. The price estimate is\nprovided as a formatted string with the full price range and the localized\ncurrency symbol.<br><br>The response also includes low and high estimates,\nand the [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code for\nsituations requiring currency conversion. When surge is active for a particular\nproduct, its surge_multiplier will be greater than 1, but the price estimate\nalready factors in this multiplier.\n",
        "parameters": [
          {
            "name": "start_latitude",
            "in": "query",
            "description": "Latitude component of start location.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "start_longitude",
            "in": "query",
            "description": "Longitude component of start location.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "end_latitude",
            "in": "query",
            "description": "Latitude component of end location.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "end_longitude",
            "in": "query",
            "description": "Longitude component of end location.",
            "required": true,
            "type": "number",
            "format": "double"
          }
        ],
        "tags": [
          "Estimates"
        ],
        "responses": {
          "200": {
            "description": "An array of price estimates by product",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PriceEstimate"
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/estimates/time": {
      "get": {
        "summary": "Time Estimates",
        "description": "The Time Estimates endpoint returns ETAs for all products offered at a given location, with the responses expressed as integers in seconds. We recommend that this endpoint be called every minute to provide the most accurate, up-to-date ETAs.",
        "parameters": [
          {
            "name": "start_latitude",
            "in": "query",
            "description": "Latitude component of start location.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "start_longitude",
            "in": "query",
            "description": "Longitude component of start location.",
            "required": true,
            "type": "number",
            "format": "double"
          },
          {
            "name": "customer_uuid",
            "in": "query",
            "type": "string",
            "format": "uuid",
            "description": "Unique customer identifier to be used for experience customization."
          },
          {
            "name": "product_id",
            "in": "query",
            "type": "string",
            "description": "Unique identifier representing a specific product for a given latitude & longitude."
          }
        ],
        "tags": [
          "Estimates"
        ],
        "responses": {
          "200": {
            "description": "An array of products",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Product"
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Product": {
      "type": "object",
      "properties": {
        "product_id": {
          "type": "string",
          "description": "Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles."
        },
        "description": {
          "type": "string",
          "description": "Description of product."
        },
        "display_name": {
          "type": "string",
          "description": "Display name of product."
        },
        "capacity": {
          "type": "string",
          "description": "Capacity of product. For example, 4 people."
        },
        "image": {
          "type": "string",
          "description": "Image URL representing the product."
        },
        "history": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Activities"
          }
        }
      }
    },
    "PriceEstimate": {
      "type": "object",
      "properties": {
        "product_id": {
          "type": "string",
          "description": "Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles"
        },
        "currency_code": {
          "type": "string",
          "description": "[ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code."
        },
        "display_name": {
          "type": "string",
          "description": "Display name of product."
        },
        "estimate": {
          "type": "string",
          "description": "Formatted string of estimate in local currency of the start location. Estimate could be a range, a single number (flat rate) or \"Metered\" for TAXI."
        },
        "low_estimate": {
          "type": "number",
          "description": "Lower bound of the estimated price."
        },
        "high_estimate": {
          "type": "number",
          "description": "Upper bound of the estimated price."
        },
        "surge_multiplier": {
          "type": "number",
          "description": "Expected surge multiplier. Surge is active if surge_multiplier is greater than 1. Price estimate already factors in the surge multiplier."
        }
      }
    },
    "Activity": {
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "Unique identifier for the activity"
        }
      }
    },
    "Activities": {
      "type": "object",
      "properties": {
        "offset": {
          "type": "integer",
          "format": "int32",
          "description": "Position in pagination."
        },
        "limit": {
          "type": "integer",
          "format": "int32",
          "description": "Number of items to retrieve (100 max)."
        },
        "count": {
          "type": "integer",
          "format": "int32",
          "description": "Total number of items available."
        },
        "history": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Activity"
          }
        }
      }
    },
    "Error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "type": "string"
        },
        "fields": {
          "type": "string"
        }
      }
    }
  }
}