forked from smartystreets/openapi-specification
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathus-zipcode-api.yml
239 lines (232 loc) · 7.04 KB
/
us-zipcode-api.yml
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
openapi: 3.0.1
info:
title: "US-ZIPCode-API"
description: |
Utilize the SmartyStreets RESTful API to search for a ZIPCode or City/State combo and access more relevant information than you could possibly need.
termsOfService: "https://smartystreets.com/legal/terms-of-service"
contact:
name: "the Smarty Pit-Crew"
email: "[email protected]"
version: 4.1.3
servers:
- url: https://us-zipcode.api.smartystreets.com/
paths:
/lookup:
get:
tags:
- lookup
summary: Search for a single ZIPCode
description: |
Provide either a 'city'/'state' combo or just a 'zipcode' and an optional 'input_id'
parameters:
- $ref: '#/components/parameters/city'
- $ref: '#/components/parameters/state'
- $ref: '#/components/parameters/zipcode'
- $ref: '#/components/parameters/input_id'
responses:
200:
description: OK(success!), The response body will be a JSON array containing zero or more matches for the input provided with the request. The structure of the response is the same for both GET and POST requests.
content:
application/json:
schema:
$ref: '#/components/schemas/200'
401:
description: Unauthorized
content:
text/plain:
schema:
example: The credentials were provided incorrectly or did not match any existing, active credentials.
type: string
402:
description: Payment Required
content:
text/plain:
schema:
example: There is no active subscription for the account associated with the credentials submitted with the request.
type: string
413:
description: Request Entity Too Large
content:
text/plain:
schema:
example: The maximum size for a request body to this API is 16K (16,384 bytes).
type: string
400:
description: Bad Request (Malformed Payload)
content:
text/plain:
schema:
example: The request body of a POST requeset contained no lookups or contained malformed JSON.
type: string
429:
description: Too Many Requests
content:
text/plain:
schema:
example: When using public "website key" authentication, we restrict the number of requests coming from a given source over too short of a time. If you use "website key" authentication, you can avoid this error by adding your IP address as an authorized host for the website key in question.
type: string
post:
tags:
- lookup
summary: Search for a batch of ZIPCodes
description: Search for a larger volume of data (up to 100 inputs or 16K per request)
requestBody:
description: 'Data should be encoded as a `JSON` array where each element in the array is a `JSON object with field names identical to those in the provided examples.'
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/LookupManyArray'
required: true
responses:
200:
description: successful operation
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/200'
403:
description: Invalid API key, or other reason why access is forbidden.
security:
- auth_id: []
auth_token: []
- website_key: []
tags:
- name: lookup
description: Search City/States or ZIPCodes
externalDocs:
description: "Extensive documentation for the US-ZIPCode-API"
url: https://smartystreets.com/docs/cloud/us-zipcode-api
components:
parameters:
city:
name: city
in: query
description: "**City** *Example: Provo* Must be paired with 'state' if no ZIPCode is provided."
schema:
type: string
state:
name: state
in: query
description: "**State** *Example: UT* State name or two-letter abbreviation. Must be paired with 'city' if no ZIPCode is provided."
schema:
type: string
zipcode:
name: zipcode
in: query
description: "**Zip code** *Example: 84604* The ZIP Code."
schema:
type: string
input_id:
name: input_id
in: query
example: 867-5309
description: "**Input ID** *Example: 867-5309* A unique identifier for this address used in your application; this field will be copied to the output"
schema:
type: string
schemas:
200:
title: Successful response
type: object
properties:
input_index:
type: integer
input_id:
type: string
city_states:
type: array
items:
$ref: '#/components/schemas/CityStates'
zipcodes:
type: array
items:
$ref: '#/components/schemas/ZIPCodes'
CityStates:
title: CityStates
type: object
properties:
city:
type: string
example: Provo
state_abbreviation:
type: string
example: 'UT'
state:
type: string
example: 'Utah'
mailable_city:
type: boolean
ZIPCodes:
title: ZIPCodes
type: object
properties:
zipcode:
type: string
example: '84604'
zipcode_type:
type: string
example: 'S'
default_city:
type: string
example: 'Provo'
county_fips:
type: string
example: '49049'
county_name:
type: string
example: 'Utah'
state_abbreviation:
type: string
example: 'UT'
state:
type: string
example: 'Utah'
latitude:
type: number
example: 40.26763
longitude:
type: number
example: -111.65763
precision:
type: string
example: 'Zip5'
alternate_counties:
type: array
items:
$ref: '#/components/schemas/AlternateCounties'
AlternateCounties:
title: AlternateCounties
type: object
properties:
county_fips:
type: string
example: '49051'
county_name:
type: string
example: 'Wasatch'
state_abbreviation:
type: string
example: 'UT'
state:
type: string
example: 'Utah'
LookupManyArray:
type: string
example:
- {"city": "North Pole", "state": "AK"}
- {"zipcode": "12345"}
- {"city": "cupertino", "state": "california", "zipcode": "95014"}
securitySchemes:
auth_id:
type: apiKey
name: auth-id
in: query
auth_token:
type: apiKey
name: auth-token
in: query
website_key:
type: apiKey
name: key
in: query