File: uber.yaml

package info (click to toggle)
openapi-specification 3.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,412 kB
  • sloc: javascript: 25; makefile: 5
file content (273 lines) | stat: -rw-r--r-- 9,395 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
# this is an example of the Uber API
# as a demonstration of an API spec in YAML
swagger: "2.0"
info:
  title: Uber API
  description: Move your app forward with the Uber API
  version: "1.0.0"
# the domain of the service
host: api.uber.com
# array of all schemes that your API supports
schemes:
  - https
# will be prefixed to all paths
basePath: /v1
securityDefinitions:
  apikey:
    type: apiKey
    name: server_token
    in: query
produces:
  - application/json
paths:
  /products:
    get:
      summary: Product Types
      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.
      parameters:
        - name: latitude
          in: query
          description: Latitude component of location.
          required: true
          type: number
          format: double
        - name: longitude
          in: query
          description: Longitude component of location.
          required: true
          type: number
          format: double
      security: 
        - apikey: []
      tags: 
        - Products
      responses:  
        "200":
          description: An array of products
          schema:
            type: array
            items:
              $ref: '#/definitions/Product'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /estimates/price:
    get:
      summary: Price Estimates
      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.
      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'
  /me:
    get:
      summary: User Profile
      description: The User Profile endpoint returns information about the Uber user that has authorized with the application.
      tags: 
        - User
      responses:
        "200":
          description: Profile information for a user
          schema:
            $ref: '#/definitions/Profile'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /history:
    get:
      summary: User Activity
      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.
      parameters:
        - name: offset
          in: query
          type: integer
          format: int32
          description: Offset the list of returned results by this amount. Default is zero.
        - name: limit
          in: query
          type: integer
          format: int32 
          description: Number of items to retrieve. Default is 5, maximum is 100.
      tags: 
        - User
      responses:
        "200":
          description: History information for the given user
          schema:
            $ref: '#/definitions/Activities'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
definitions:
  Product:
    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: integer
        description: Capacity of product. For example, 4 people.
      image:
        type: string
        description: Image URL representing the product.
  ProductList:
    properties:
      products:
        description: Contains the list of products
        type: array
        items: 
          $ref: "#/definitions/Product"
  PriceEstimate:
    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.
  Profile:
    properties:
      first_name:
        type: string
        description: First name of the Uber user.
      last_name:
        type: string
        description: Last name of the Uber user.
      email:
        type: string
        description: Email address of the Uber user
      picture:
        type: string
        description: Image URL of the Uber user.
      promo_code:
        type: string
        description: Promo code of the Uber user.   
  Activity:
    properties:
      uuid:
        type: string
        description: Unique identifier for the activity
  Activities:
    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:
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
      fields:
        type: string