uber.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  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. }