1{
2  "swagger": "2.0",
3  "info": {
4    "title": "Uber API",
5    "description": "Move your app forward with the Uber API",
6    "version": "1.0.0"
7  },
8  "host": "api.uber.com",
9  "schemes": [
10    "https"
11  ],
12  "basePath": "/v1",
13  "produces": [
14    "application/json"
15  ],
16  "paths": {
17    "/products": {
18      "get": {
19        "summary": "Product Types",
20        "description": "The Products endpoint returns information about the Uber products offered at a given location. The response includes the display name and other details about each product, and lists the products in the proper display order.",
21        "parameters": [
22          {
23            "name": "latitude",
24            "in": "query",
25            "description": "Latitude component of location.",
26            "required": true,
27            "type": "number",
28            "format": "double"
29          },
30          {
31            "name": "longitude",
32            "in": "query",
33            "description": "Longitude component of location.",
34            "required": true,
35            "type": "number",
36            "format": "double"
37          }
38        ],
39        "tags": [
40          "Products"
41        ],
42        "responses": {
43          "200": {
44            "description": "An array of products",
45            "schema": {
46              "type": "array",
47              "items": {
48                "$ref": "#/definitions/Product"
49              }
50            }
51          },
52          "default": {
53            "description": "Unexpected error",
54            "schema": {
55              "$ref": "#/definitions/Error"
56            }
57          }
58        }
59      }
60    },
61    "/estimates/price": {
62      "get": {
63        "summary": "Price Estimates",
64        "description": "The Price Estimates endpoint returns an estimated price range for each product offered at a given location. The price estimate is provided as a formatted string with the full price range and the localized currency symbol.<br><br>The response also includes low and high estimates, and the [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code for situations requiring currency conversion. When surge is active for a particular product, its surge_multiplier will be greater than 1, but the price estimate already factors in this multiplier.",
65        "parameters": [
66          {
67            "name": "start_latitude",
68            "in": "query",
69            "description": "Latitude component of start location.",
70            "required": true,
71            "type": "number",
72            "format": "double"
73          },
74          {
75            "name": "start_longitude",
76            "in": "query",
77            "description": "Longitude component of start location.",
78            "required": true,
79            "type": "number",
80            "format": "double"
81          },
82          {
83            "name": "end_latitude",
84            "in": "query",
85            "description": "Latitude component of end location.",
86            "required": true,
87            "type": "number",
88            "format": "double"
89          },
90          {
91            "name": "end_longitude",
92            "in": "query",
93            "description": "Longitude component of end location.",
94            "required": true,
95            "type": "number",
96            "format": "double"
97          }
98        ],
99        "tags": [
100          "Estimates"
101        ],
102        "responses": {
103          "200": {
104            "description": "An array of price estimates by product",
105            "schema": {
106              "type": "array",
107              "items": {
108                "$ref": "#/definitions/PriceEstimate"
109              }
110            }
111          },
112          "default": {
113            "description": "Unexpected error",
114            "schema": {
115              "$ref": "#/definitions/Error"
116            }
117          }
118        }
119      }
120    },
121    "/estimates/time": {
122      "get": {
123        "summary": "Time Estimates",
124        "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.",
125        "parameters": [
126          {
127            "name": "start_latitude",
128            "in": "query",
129            "description": "Latitude component of start location.",
130            "required": true,
131            "type": "number",
132            "format": "double"
133          },
134          {
135            "name": "start_longitude",
136            "in": "query",
137            "description": "Longitude component of start location.",
138            "required": true,
139            "type": "number",
140            "format": "double"
141          },
142          {
143            "name": "customer_uuid",
144            "in": "query",
145            "type": "string",
146            "format": "uuid",
147            "description": "Unique customer identifier to be used for experience customization."
148          },
149          {
150            "name": "product_id",
151            "in": "query",
152            "type": "string",
153            "description": "Unique identifier representing a specific product for a given latitude & longitude."
154          }
155        ],
156        "tags": [
157          "Estimates"
158        ],
159        "responses": {
160          "200": {
161            "description": "An array of products",
162            "schema": {
163              "type": "array",
164              "items": {
165                "$ref": "#/definitions/Product"
166              }
167            }
168          },
169          "default": {
170            "description": "Unexpected error",
171            "schema": {
172              "$ref": "#/definitions/Error"
173            }
174          }
175        }
176      }
177    },
178    "/me": {
179      "get": {
180        "summary": "User Profile",
181        "description": "The User Profile endpoint returns information about the Uber user that has authorized with the application.",
182        "tags": [
183          "User"
184        ],
185        "responses": {
186          "200": {
187            "description": "Profile information for a user",
188            "schema": {
189              "$ref": "#/definitions/Profile"
190            }
191          },
192          "default": {
193            "description": "Unexpected error",
194            "schema": {
195              "$ref": "#/definitions/Error"
196            }
197          }
198        }
199      }
200    },
201    "/history": {
202      "get": {
203        "summary": "User Activity",
204        "description": "The User Activity endpoint returns data about a user's lifetime activity with Uber. The response will include pickup locations and times, dropoff locations and times, the distance of past requests, and information about which products were requested.<br><br>The history array in the response will have a maximum length based on the limit parameter. The response value count may exceed limit, therefore subsequent API requests may be necessary.",
205        "parameters": [
206          {
207            "name": "offset",
208            "in": "query",
209            "type": "integer",
210            "format": "int32",
211            "description": "Offset the list of returned results by this amount. Default is zero."
212          },
213          {
214            "name": "limit",
215            "in": "query",
216            "type": "integer",
217            "format": "int32",
218            "description": "Number of items to retrieve. Default is 5, maximum is 100."
219          }
220        ],
221        "tags": [
222          "User"
223        ],
224        "responses": {
225          "200": {
226            "description": "History information for the given user",
227            "schema": {
228              "$ref": "#/definitions/Activities"
229            }
230          },
231          "default": {
232            "description": "Unexpected error",
233            "schema": {
234              "$ref": "#/definitions/Error"
235            }
236          }
237        }
238      }
239    }
240  },
241  "definitions": {
242    "Product": {
243      "properties": {
244        "product_id": {
245          "type": "string",
246          "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."
247        },
248        "description": {
249          "type": "string",
250          "description": "Description of product."
251        },
252        "display_name": {
253          "type": "string",
254          "description": "Display name of product."
255        },
256        "capacity": {
257          "type": "string",
258          "description": "Capacity of product. For example, 4 people."
259        },
260        "image": {
261          "type": "string",
262          "description": "Image URL representing the product."
263        }
264      }
265    },
266    "PriceEstimate": {
267      "properties": {
268        "product_id": {
269          "type": "string",
270          "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"
271        },
272        "currency_code": {
273          "type": "string",
274          "description": "[ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code."
275        },
276        "display_name": {
277          "type": "string",
278          "description": "Display name of product."
279        },
280        "estimate": {
281          "type": "string",
282          "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."
283        },
284        "low_estimate": {
285          "type": "number",
286          "description": "Lower bound of the estimated price."
287        },
288        "high_estimate": {
289          "type": "number",
290          "description": "Upper bound of the estimated price."
291        },
292        "surge_multiplier": {
293          "type": "number",
294          "description": "Expected surge multiplier. Surge is active if surge_multiplier is greater than 1. Price estimate already factors in the surge multiplier."
295        }
296      }
297    },
298    "Profile": {
299      "properties": {
300        "first_name": {
301          "type": "string",
302          "description": "First name of the Uber user."
303        },
304        "last_name": {
305          "type": "string",
306          "description": "Last name of the Uber user."
307        },
308        "email": {
309          "type": "string",
310          "description": "Email address of the Uber user"
311        },
312        "picture": {
313          "type": "string",
314          "description": "Image URL of the Uber user."
315        },
316        "promo_code": {
317          "type": "string",
318          "description": "Promo code of the Uber user."
319        }
320      }
321    },
322    "Activity": {
323      "properties": {
324        "uuid": {
325          "type": "string",
326          "description": "Unique identifier for the activity"
327        }
328      }
329    },
330    "Activities": {
331      "properties": {
332        "offset": {
333          "type": "integer",
334          "format": "int32",
335          "description": "Position in pagination."
336        },
337        "limit": {
338          "type": "integer",
339          "format": "int32",
340          "description": "Number of items to retrieve (100 max)."
341        },
342        "count": {
343          "type": "integer",
344          "format": "int32",
345          "description": "Total number of items available."
346        },
347        "history": {
348          "type": "array",
349          "items": {
350              "$ref": "#/definitions/Activity"
351           }
352        }
353      }
354    },
355    "Error": {
356      "properties": {
357        "code": {
358          "type": "integer",
359          "format": "int32"
360        },
361        "message": {
362          "type": "string"
363        },
364        "fields": {
365          "type": "string"
366        }
367      }
368    }
369  }
370}