@apifreaks/openapi-specs 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/index.cjs +133 -2
  2. package/dist/index.d.cts +140 -3
  3. package/dist/index.d.ts +140 -3
  4. package/dist/index.js +131 -2
  5. package/dist/specs/commodity/commodity-fluctuation.yaml +225 -0
  6. package/dist/specs/commodity/commodity-prices.yaml +236 -0
  7. package/dist/specs/commodity/commodity-symbols.yaml +159 -0
  8. package/dist/specs/commodity/commodity-time-series.yaml +238 -0
  9. package/dist/specs/commodity/historical-commodity-prices.yaml +208 -0
  10. package/dist/specs/currency/currency-converter.yaml +193 -0
  11. package/dist/specs/currency/currency-fluctuation.yaml +211 -0
  12. package/dist/specs/currency/currency-historical-data-limit.yaml +112 -0
  13. package/dist/specs/currency/currency-rate.yaml +173 -0
  14. package/dist/specs/currency/currency-supported.yaml +176 -0
  15. package/dist/specs/currency/currency-symbols.yaml +115 -0
  16. package/dist/specs/currency/currency-time-series.yaml +232 -0
  17. package/dist/specs/currency/geolocalized-currency-conversion.yaml +214 -0
  18. package/dist/specs/currency/historical-currency-converter.yaml +195 -0
  19. package/dist/specs/currency/historical-currency-rate.yaml +180 -0
  20. package/dist/specs/dns/bulk-dns-lookup.yaml +484 -0
  21. package/dist/specs/dns/dns-history-lookup.yaml +451 -0
  22. package/dist/specs/dns/dns-lookup.yaml +360 -0
  23. package/dist/specs/dns/reverse-dns-lookup.yaml +338 -0
  24. package/dist/specs/domain/bulk-domain-checker.yaml +198 -0
  25. package/dist/specs/domain/domain-search-with-suggestions.yaml +196 -0
  26. package/dist/specs/domain/domain-search.yaml +149 -0
  27. package/dist/specs/domain/subdomain-lookup.yaml +251 -0
  28. package/dist/specs/email-validation/bulk-email-validation.yaml +403 -0
  29. package/dist/specs/email-validation/email-checker.yaml +451 -0
  30. package/dist/specs/financial/bulk-vat-rates-country.yaml +250 -0
  31. package/dist/specs/financial/financial-apis-supported-countries.yaml +152 -0
  32. package/dist/specs/financial/iban-validation.yaml +270 -0
  33. package/dist/specs/financial/swift-code-finder.yaml +146 -0
  34. package/dist/specs/financial/swift-code-lookup.yaml +156 -0
  35. package/dist/specs/financial/vat-number-validation.yaml +205 -0
  36. package/dist/specs/financial/vat-rates-by-ip.yaml +200 -0
  37. package/dist/specs/financial/vat-rates-country.yaml +212 -0
  38. package/dist/specs/general/usage-credits.yaml +188 -0
  39. package/dist/specs/geocoding/forward-geocoding.yaml +292 -0
  40. package/dist/specs/geocoding/reverse-geocoding.yaml +237 -0
  41. package/dist/specs/geodb/administrative-units-details.yaml +180 -0
  42. package/dist/specs/geodb/administrative-units-levels.yaml +140 -0
  43. package/dist/specs/geodb/administrative-units.yaml +168 -0
  44. package/dist/specs/geodb/cities.yaml +209 -0
  45. package/dist/specs/geodb/countries-details.yaml +207 -0
  46. package/dist/specs/geodb/countries.yaml +199 -0
  47. package/dist/specs/geodb/flags-supported.yaml +119 -0
  48. package/dist/specs/geodb/flags.yaml +170 -0
  49. package/dist/specs/geodb/regions.yaml +76 -0
  50. package/dist/specs/geodb/subregions.yaml +158 -0
  51. package/dist/specs/ip-intelligence/bulk-ip-lookup.yaml +895 -0
  52. package/dist/specs/ip-intelligence/bulk-ip-threat-intelligence.yaml +310 -0
  53. package/dist/specs/ip-intelligence/ip-locator.yaml +708 -0
  54. package/dist/specs/ip-intelligence/ip-threat-intelligence.yaml +230 -0
  55. package/dist/specs/other/astronomy-data.yaml +632 -0
  56. package/dist/specs/pdf/delete-pdf-page.yaml +193 -0
  57. package/dist/specs/pdf/linearize-pdf.yaml +187 -0
  58. package/dist/specs/pdf/merge-pdf.yaml +193 -0
  59. package/dist/specs/pdf/pdf-compress.yaml +208 -0
  60. package/dist/specs/pdf/pdf-decrypt.yaml +202 -0
  61. package/dist/specs/pdf/pdf-encrypt.yaml +213 -0
  62. package/dist/specs/pdf/pdf-extract-pages.yaml +199 -0
  63. package/dist/specs/pdf/pdf-file-status.yaml +148 -0
  64. package/dist/specs/pdf/pdf-file.yaml +136 -0
  65. package/dist/specs/pdf/pdf-files.yaml +85 -0
  66. package/dist/specs/pdf/pdf-resource-download.yaml +117 -0
  67. package/dist/specs/pdf/pdf-resource-upload-binary.yaml +152 -0
  68. package/dist/specs/pdf/pdf-resource-upload.yaml +163 -0
  69. package/dist/specs/pdf/pdf-restrict.yaml +246 -0
  70. package/dist/specs/pdf/pdf-split-pages.yaml +208 -0
  71. package/dist/specs/pdf/pdf-task-status.yaml +187 -0
  72. package/dist/specs/pdf/pdf-to-image.yaml +844 -0
  73. package/dist/specs/pdf/pdf-unrestrict.yaml +221 -0
  74. package/dist/specs/pdf/rotate-pdf-pages.yaml +207 -0
  75. package/dist/specs/phone-validation/bulk-phone-number-validation.yaml +374 -0
  76. package/dist/specs/phone-validation/phone-number-validation.yaml +344 -0
  77. package/dist/specs/scraper/web-scraper.yaml +479 -0
  78. package/dist/specs/screenshot/bulk-screenshot.yaml +728 -0
  79. package/dist/specs/screenshot/website-screenshot.yaml +822 -0
  80. package/dist/specs/ssl/ssl-certificate-chain-lookup.yaml +593 -0
  81. package/dist/specs/ssl/ssl-certificate-lookup.yaml +478 -0
  82. package/dist/specs/timezone/timezone-converter.yaml +249 -0
  83. package/dist/specs/timezone/timezone-lookup.yaml +712 -0
  84. package/dist/specs/user-agent/bulk-user-agent-parser.yaml +340 -0
  85. package/dist/specs/user-agent/user-agent-parser.yaml +271 -0
  86. package/dist/specs/weather/air-quality.yaml +590 -0
  87. package/dist/specs/weather/bulk-live-weather.yaml +654 -0
  88. package/dist/specs/weather/flood-forecast.yaml +519 -0
  89. package/dist/specs/weather/historical-weather.yaml +842 -0
  90. package/dist/specs/weather/live-weather.yaml +633 -0
  91. package/dist/specs/weather/marine-weather.yaml +806 -0
  92. package/dist/specs/weather/time-series-weather.yaml +821 -0
  93. package/dist/specs/weather/weather-forecast.yaml +935 -0
  94. package/dist/specs/whois/asn-lookup.yaml +618 -0
  95. package/dist/specs/whois/bulk-whois-lookup.yaml +827 -0
  96. package/dist/specs/whois/domain-whois-history-lookup.yaml +445 -0
  97. package/dist/specs/whois/reverse-whois.yaml +566 -0
  98. package/dist/specs/whois/whois-domain-lookup.yaml +537 -0
  99. package/dist/specs/whois/whois-ip-lookup.yaml +1123 -0
  100. package/dist/specs/zip-code/bulk-zip-code-lookup.yaml +232 -0
  101. package/dist/specs/zip-code/zip-code-api.yaml +216 -0
  102. package/dist/specs/zip-code/zip-code-distance-match.yaml +239 -0
  103. package/dist/specs/zip-code/zip-code-distance.yaml +233 -0
  104. package/dist/specs/zip-code/zip-codes-by-city.yaml +201 -0
  105. package/dist/specs/zip-code/zip-codes-by-region.yaml +200 -0
  106. package/dist/specs/zip-code/zip-codes-radius-search.yaml +262 -0
  107. package/package.json +6 -2
  108. package/specs/pdf/merge-pdf.json +2 -2
@@ -0,0 +1,212 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: VAT Rates by Country API Reference
4
+ version: 1.0.0
5
+ description: Get VAT rates for a specific country including standard, reduced, and super-reduced rates. Covers all EU and major global jurisdictions.
6
+ contact:
7
+ name: APIFreaks Support
8
+ url: https://apifreaks.com/contact
9
+ email: support@apifreaks.com
10
+ servers:
11
+ - url: https://api.apifreaks.com/v1.0
12
+ description: VAT Rates by Country API Server
13
+ paths:
14
+ /vat/rates/country:
15
+ get:
16
+ tags:
17
+ - Financial APIs
18
+ summary: Get VAT rate by country code
19
+ description: Fetches VAT rates for a single country or state provided via query parameters.
20
+ operationId: getVatRatesByCountry
21
+ parameters:
22
+ - name: format
23
+ in: query
24
+ required: false
25
+ schema:
26
+ type: string
27
+ enum:
28
+ - json
29
+ - xml
30
+ default: json
31
+ description: 'Specify the desired response format. Options: ''json'' (default) or ''xml''.'
32
+ - name: country
33
+ in: query
34
+ required: true
35
+ schema:
36
+ type: string
37
+ description: Country identifier in Alpha-2 (PK), Alpha-3 (PAK), or full name (Pakistan). Combine with the optional "state" query for sub-national VAT; values are case-insensitive and may use underscores instead of spaces.
38
+ - name: state
39
+ in: query
40
+ required: false
41
+ schema:
42
+ type: string
43
+ description: Optional state or region in Alpha-2 (NY) or full name (New_York). Use with "country" for state-level VAT; values are case-insensitive and may use underscores.
44
+ responses:
45
+ '200':
46
+ description: Successful response with a JSON array containing VAT rate objects for the requested country or state.
47
+ content:
48
+ application/json:
49
+ schema:
50
+ $ref: '#/components/schemas/VatCountryResponse'
51
+ examples:
52
+ typicalSuccess:
53
+ summary: Country-level VAT rate
54
+ value:
55
+ - country: DE
56
+ type: vat
57
+ currency: EUR
58
+ standard_rate: 0.19
59
+ reduced_rate:
60
+ - 0.07
61
+ - 0
62
+ categories:
63
+ books: 0.07
64
+ newspapers: 0.07
65
+ periodicals: 0.07
66
+ broadcasting: 0
67
+ stateLevel:
68
+ summary: State/region-level sales tax rate
69
+ value:
70
+ - country: US
71
+ state: NY
72
+ type: vat
73
+ currency: ''
74
+ standard_rate: 0.04
75
+ '400':
76
+ description: Bad Request — Missing required country parameter
77
+ content:
78
+ application/json:
79
+ schema:
80
+ $ref: '#/components/schemas/ErrorResponse'
81
+ examples:
82
+ MissingCountry:
83
+ summary: Missing required country parameter
84
+ value:
85
+ error: Invalid Param Exception
86
+ message: please pass correct parameters
87
+ path: /v1.0/vat/rates/country
88
+ status: 400
89
+ timestamp: '2026-07-27T11:45:34.183Z'
90
+ '404':
91
+ description: Not Found — No VAT data for the given country/state
92
+ content:
93
+ application/json:
94
+ schema:
95
+ $ref: '#/components/schemas/ErrorResponse'
96
+ examples:
97
+ NotFound:
98
+ summary: No VAT data for the given country
99
+ value:
100
+ message: No VAT data found.
101
+ components:
102
+ securitySchemes:
103
+ ApiKeyAuthHeader:
104
+ type: apiKey
105
+ in: header
106
+ name: X-apiKey
107
+ description: Pass your API key via the X-apiKey request header.
108
+ ApiKeyAuthQuery:
109
+ type: apiKey
110
+ in: query
111
+ name: apiKey
112
+ description: Pass your API key via the apiKey query parameter.
113
+ schemas:
114
+ VatCountryResponse:
115
+ type: array
116
+ description: Array of VAT rate objects for the requested country or state.
117
+ items:
118
+ $ref: '#/components/schemas/VatRateItem'
119
+ VatRateItem:
120
+ type: object
121
+ required:
122
+ - country
123
+ - type
124
+ - currency
125
+ - standard_rate
126
+ properties:
127
+ country:
128
+ type: string
129
+ description: Country identifier returned by the API.
130
+ state:
131
+ type:
132
+ - string
133
+ - 'null'
134
+ description: State or region identifier for sub-national tax data.
135
+ type:
136
+ type: string
137
+ description: Tax type for the location (e.g., vat or none).
138
+ currency:
139
+ type: string
140
+ description: ISO 4217 currency code for the country or state.
141
+ standard_rate:
142
+ type: number
143
+ format: float
144
+ description: Standard VAT or sales tax rate as a decimal (e.g., 0.19 = 19%).
145
+ reduced_rate:
146
+ type: array
147
+ items:
148
+ $ref: '#/components/schemas/VatRateDecimal'
149
+ description: Reduced VAT rates when the country defines them (EU/UK only).
150
+ super_reduced_rate:
151
+ type: array
152
+ items:
153
+ $ref: '#/components/schemas/VatRateDecimal'
154
+ description: Super-reduced VAT rates for eligible categories (EU/UK only).
155
+ parking_rate:
156
+ type: number
157
+ format: float
158
+ description: Parking rate where defined (EU/UK only).
159
+ categories:
160
+ description: Category-specific VAT rates, where defined (EU/UK only). Keys vary by country - not every category below applies to every country.
161
+ $ref: '#/components/schemas/VatCategories'
162
+ description: Each item in the array represents a VAT rate object for the requested country or state.
163
+ VatRateDecimal:
164
+ type: number
165
+ format: float
166
+ description: A VAT rate expressed as a decimal (e.g., 0.19 = 19%).
167
+ VatCategories:
168
+ type: object
169
+ description: Category-specific VAT rates, where defined (EU/UK only). Keys vary by country.
170
+ properties:
171
+ books:
172
+ type: number
173
+ format: float
174
+ description: VAT rate for books, as a decimal (e.g., 0.07 = 7%).
175
+ newspapers:
176
+ type: number
177
+ format: float
178
+ description: VAT rate for newspapers, as a decimal (e.g., 0.07 = 7%).
179
+ periodicals:
180
+ type: number
181
+ format: float
182
+ description: VAT rate for periodicals, as a decimal (e.g., 0.07 = 7%).
183
+ broadcasting:
184
+ type: number
185
+ format: float
186
+ description: VAT rate for broadcasting services, as a decimal (e.g., 0.19 = 19%).
187
+ required: []
188
+ ErrorResponse:
189
+ type: object
190
+ required:
191
+ - message
192
+ properties:
193
+ error:
194
+ type: string
195
+ description: Short error category or exception type.
196
+ message:
197
+ type: string
198
+ description: Human-readable error message describing the failure.
199
+ path:
200
+ type: string
201
+ description: API endpoint path that produced the error.
202
+ status:
203
+ type: integer
204
+ description: HTTP status code returned with the error.
205
+ timestamp:
206
+ type: string
207
+ format: date-time
208
+ description: Timestamp when the error occurred (ISO 8601).
209
+ description: Standard error envelope returned by the API on failed requests.
210
+ security:
211
+ - ApiKeyAuthHeader: []
212
+ - ApiKeyAuthQuery: []
@@ -0,0 +1,188 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Credits Usage API
4
+ version: 1.0.0
5
+ description: Retrieve the remaining and consumed API credit balances for the authenticated organization. Returns subscription-plan credits, subscription surcharge (overage) credits, and one-off credit purchases as separate balances, each with allowed and used counts. Only an organization admin API key can call this endpoint; all other keys receive a 403. There are no optional data modules for this endpoint — the response always includes the full credit breakdown.
6
+ contact:
7
+ name: APIFreaks Support
8
+ url: https://apifreaks.com/contact
9
+ email: support@apifreaks.com
10
+ servers:
11
+ - url: https://api.apifreaks.com/v1.0
12
+ description: Credits Usage API Server
13
+ paths:
14
+ /credits/usage/info:
15
+ get:
16
+ tags:
17
+ - General APIs
18
+ summary: Get remaining and consumed API credit balances for the organization
19
+ description: Returns subscription, subscription-surcharge, and one-off credit balances for the authenticated organization's account.
20
+ operationId: getCreditsUsage
21
+ parameters:
22
+ - name: format
23
+ in: query
24
+ required: false
25
+ description: 'Format of the response. Possible values: json, xml.'
26
+ schema:
27
+ type: string
28
+ enum:
29
+ - json
30
+ - xml
31
+ default: json
32
+ responses:
33
+ '200':
34
+ description: Successful response with credit balances
35
+ content:
36
+ application/json:
37
+ schema:
38
+ $ref: '#/components/schemas/CreditsUsageResponse'
39
+ examples:
40
+ success:
41
+ summary: Typical response
42
+ value:
43
+ apiKey: demo
44
+ userStatus: active
45
+ subActive: true
46
+ subStatus: active
47
+ subAllowedCredits: 10000
48
+ subUsedCredits: 2500
49
+ subSurchargeStatus: none
50
+ subSurchargeAllowedCredits: 0
51
+ subSurchargeUsedCredits: 0
52
+ subSurchargeAllowed: false
53
+ oneOffCreditsActive: true
54
+ oneOffAllowedCredits: 5000
55
+ oneOffUsedCredits: 1000
56
+ '403':
57
+ description: Forbidden — Caller is not an organization admin
58
+ content:
59
+ application/json:
60
+ schema:
61
+ $ref: '#/components/schemas/ErrorResponse'
62
+ examples:
63
+ notOrgAdmin:
64
+ summary: Not an organization admin
65
+ value:
66
+ timestamp: '2026-07-27T10:23:16.548Z'
67
+ path: /v1.0/credits/usage/info
68
+ status: 403
69
+ error: API Access Exception
70
+ message: You need to be organization admin to access this endpoint.
71
+ components:
72
+ securitySchemes:
73
+ ApiKeyAuthHeader:
74
+ type: apiKey
75
+ in: header
76
+ name: X-apiKey
77
+ description: Pass your API key via the X-apiKey request header.
78
+ ApiKeyAuthQuery:
79
+ type: apiKey
80
+ in: query
81
+ name: apiKey
82
+ description: Pass your API key via the apiKey query parameter.
83
+ schemas:
84
+ CreditsUsageResponse:
85
+ type: object
86
+ description: Credit balances for the organization's subscription, subscription surcharge, and one-off purchases.
87
+ required:
88
+ - apiKey
89
+ - userStatus
90
+ - oneOffCreditsActive
91
+ - oneOffAllowedCredits
92
+ - oneOffUsedCredits
93
+ properties:
94
+ apiKey:
95
+ type: string
96
+ description: The API key the credit balances belong to.
97
+ userStatus:
98
+ type: string
99
+ enum:
100
+ - active
101
+ - inactive
102
+ - deleted
103
+ description: Status of the user account.
104
+ subActive:
105
+ type:
106
+ - boolean
107
+ - 'null'
108
+ description: Whether a subscription plan is currently active. Null if the account has no subscription.
109
+ subStatus:
110
+ type:
111
+ - string
112
+ - 'null'
113
+ enum:
114
+ - active
115
+ - overdue
116
+ - cancelled
117
+ - deactivated
118
+ - null
119
+ description: Status of the subscription credits. Null if the account has no subscription.
120
+ subAllowedCredits:
121
+ type:
122
+ - integer
123
+ - 'null'
124
+ description: Total credits allowed under the subscription plan. Null if the account has no subscription.
125
+ subUsedCredits:
126
+ type:
127
+ - integer
128
+ - 'null'
129
+ description: Credits consumed under the subscription plan. Null if the account has no subscription.
130
+ subSurchargeStatus:
131
+ type:
132
+ - string
133
+ - 'null'
134
+ enum:
135
+ - none
136
+ - payment_added
137
+ - payment_cleared
138
+ - null
139
+ description: Status of the subscription surcharge (overage) credits. Null if the account has no subscription.
140
+ subSurchargeAllowedCredits:
141
+ type:
142
+ - integer
143
+ - 'null'
144
+ description: Total surcharge credits allowed. Null if the account has no subscription.
145
+ subSurchargeUsedCredits:
146
+ type:
147
+ - integer
148
+ - 'null'
149
+ description: Surcharge credits consumed. Null if the account has no subscription.
150
+ subSurchargeAllowed:
151
+ type:
152
+ - boolean
153
+ - 'null'
154
+ description: Whether surcharge (overage) usage is allowed on the subscription. Null if the account has no subscription.
155
+ oneOffCreditsActive:
156
+ type: boolean
157
+ description: Whether the account has active one-off (pay-as-you-go) credits.
158
+ oneOffAllowedCredits:
159
+ type: integer
160
+ description: Total one-off credits purchased.
161
+ oneOffUsedCredits:
162
+ type: integer
163
+ description: One-off credits consumed.
164
+ ErrorResponse:
165
+ type: object
166
+ description: Standard error envelope returned by the API on failed requests.
167
+ required:
168
+ - message
169
+ properties:
170
+ error:
171
+ type: string
172
+ description: Short error category or exception type.
173
+ message:
174
+ type: string
175
+ description: Human-readable error message describing the failure.
176
+ path:
177
+ type: string
178
+ description: API endpoint path that produced the error.
179
+ status:
180
+ type: integer
181
+ description: HTTP status code returned with the error.
182
+ timestamp:
183
+ type: string
184
+ format: date-time
185
+ description: Timestamp when the error occurred (ISO 8601).
186
+ security:
187
+ - ApiKeyAuthHeader: []
188
+ - ApiKeyAuthQuery: []
@@ -0,0 +1,292 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Forward Geocoding API - Convert Address to Lat/Long Coordinates
4
+ version: 1.0.0
5
+ description: Convert a free-form address, place name, or point of interest into geographic coordinates. Returns up to 40 ranked matches per request, each with latitude/longitude, a structured address breakdown (street, city, state, country), a WGS84 bounding box, and any points of interest at that location. Use the `limit` parameter to control result count, the four `min_lat`/`max_lat`/`min_lon`/`max_lon` parameters together to bias results toward a geographic viewbox, and the `Accept-Language` header to localize result names. A query that matches nothing returns a `404` error rather than an empty array.
6
+ contact:
7
+ name: APIFreaks Support
8
+ url: https://apifreaks.com/contact
9
+ email: support@apifreaks.com
10
+ servers:
11
+ - url: https://api.apifreaks.com/v1.0
12
+ description: Forward Geocoding API Server
13
+ paths:
14
+ /geocoder/search:
15
+ get:
16
+ tags:
17
+ - Geocoder APIs
18
+ summary: Convert an address or place name into geographic coordinates
19
+ description: Search for a free-form address, place name, or point of interest and return matching locations with coordinates, structured address components, and a bounding box.
20
+ operationId: forwardGeocode
21
+ parameters:
22
+ - name: query
23
+ in: query
24
+ required: true
25
+ description: Free-form search query, e.g. `Wembley Stadium, London`.
26
+ schema:
27
+ type: string
28
+ - name: limit
29
+ in: query
30
+ required: false
31
+ description: Maximum number of results to return. May return fewer if matches are weak.
32
+ schema:
33
+ type: integer
34
+ minimum: 1
35
+ maximum: 40
36
+ default: 1
37
+ - name: min_lat
38
+ in: query
39
+ required: false
40
+ description: Minimum latitude of the viewbox used to bias results. Must be provided together with `max_lat`, `min_lon`, and `max_lon`, and must be less than or equal to `max_lat`.
41
+ schema:
42
+ type: number
43
+ format: float
44
+ minimum: -90
45
+ maximum: 90
46
+ - name: max_lat
47
+ in: query
48
+ required: false
49
+ description: Maximum latitude of the viewbox used to bias results. Must be provided together with `min_lat`, `min_lon`, and `max_lon`, and must be greater than or equal to `min_lat`.
50
+ schema:
51
+ type: number
52
+ format: float
53
+ minimum: -90
54
+ maximum: 90
55
+ - name: min_lon
56
+ in: query
57
+ required: false
58
+ description: Minimum longitude of the viewbox used to bias results. Must be provided together with `min_lat`, `max_lat`, and `max_lon`, and must be less than or equal to `max_lon`.
59
+ schema:
60
+ type: number
61
+ format: float
62
+ minimum: -180
63
+ maximum: 180
64
+ - name: max_lon
65
+ in: query
66
+ required: false
67
+ description: Maximum longitude of the viewbox used to bias results. Must be provided together with `min_lat`, `max_lat`, and `min_lon`, and must be greater than or equal to `min_lon`.
68
+ schema:
69
+ type: number
70
+ format: float
71
+ minimum: -180
72
+ maximum: 180
73
+ - name: Accept-Language
74
+ in: header
75
+ required: false
76
+ description: Preferred language order for result names, as a comma-separated list of language codes or a single code. Results are returned in the first matched language, falling back to `en` if none match.
77
+ schema:
78
+ type: string
79
+ responses:
80
+ '200':
81
+ description: Successful geocoding response
82
+ content:
83
+ application/json:
84
+ schema:
85
+ $ref: '#/components/schemas/ForwardGeocodeResponse'
86
+ examples:
87
+ typicalSuccess:
88
+ summary: Typical successful response
89
+ value:
90
+ - lat: 51.55606945
91
+ lon: -0.27960339379401444
92
+ name: Wembley Stadium
93
+ category: tourism
94
+ type: attraction
95
+ poi:
96
+ - name: Wembley Stadium
97
+ category: leisure
98
+ type: stadium
99
+ street: Pacific Crescent
100
+ area: London Borough of Brent
101
+ postcode: HA9 0SL
102
+ city: Greater London
103
+ state_code: GB-ENG
104
+ state: England
105
+ country_code: GB
106
+ country: United Kingdom
107
+ full_address: Wembley Stadium, Pacific Crescent, London Borough of Brent, Greater London, England, HA9 0SL, United Kingdom
108
+ bounding_box:
109
+ - '51.5547925'
110
+ - '51.5573402'
111
+ - '-0.2817245'
112
+ - '-0.2774831'
113
+ '400':
114
+ description: Bad Request — Invalid or missing parameters
115
+ content:
116
+ application/json:
117
+ schema:
118
+ $ref: '#/components/schemas/ErrorResponse'
119
+ examples:
120
+ missingQuery:
121
+ summary: Missing required `query` parameter
122
+ value:
123
+ error: Invalid Param Exception
124
+ message: please pass correct parameters
125
+ path: /v1.0/geocoder/search
126
+ status: 400
127
+ timestamp: '2026-07-22T14:29:30.362Z'
128
+ invalidLimit:
129
+ summary: '`limit` outside the 1-40 range'
130
+ value:
131
+ error: Invalid Query Limit Provided
132
+ message: Please provide a valid limit. Valid range is from 1 to 40.
133
+ path: /v1.0/geocoder/search
134
+ status: 400
135
+ timestamp: '2026-07-22T14:29:30.894Z'
136
+ invalidViewboxLatitudeOrder:
137
+ summary: '`min_lat` greater than `max_lat`'
138
+ value:
139
+ error: Invalid Viewbox Latitude
140
+ message: Minimum latitude cannot be greater than maximum latitude in the viewbox.
141
+ path: /v1.0/geocoder/search
142
+ status: 400
143
+ timestamp: '2026-07-22T14:30:11.104Z'
144
+ invalidViewboxLongitudeOrder:
145
+ summary: '`min_lon` greater than `max_lon`'
146
+ value:
147
+ error: Invalid Viewbox Longitude
148
+ message: Minimum longitude cannot be greater than maximum longitude in the viewbox.
149
+ path: /v1.0/geocoder/search
150
+ status: 400
151
+ timestamp: '2026-07-22T14:30:11.104Z'
152
+ '404':
153
+ description: Not Found — No results matched the query
154
+ content:
155
+ application/json:
156
+ schema:
157
+ $ref: '#/components/schemas/ErrorResponse'
158
+ examples:
159
+ noResults:
160
+ summary: Query matched no locations
161
+ value:
162
+ error: No Result Found
163
+ message: No results found for the given query.
164
+ path: /v1.0/geocoder/search
165
+ status: 404
166
+ timestamp: '2026-07-22T14:29:58.349Z'
167
+ components:
168
+ securitySchemes:
169
+ ApiKeyAuthHeader:
170
+ type: apiKey
171
+ in: header
172
+ name: X-apiKey
173
+ description: Pass your API key via the X-apiKey request header.
174
+ ApiKeyAuthQuery:
175
+ type: apiKey
176
+ in: query
177
+ name: apiKey
178
+ description: Pass your API key via the apiKey query parameter.
179
+ schemas:
180
+ ErrorResponse:
181
+ type: object
182
+ required:
183
+ - message
184
+ properties:
185
+ error:
186
+ type: string
187
+ description: Short error category or exception type.
188
+ message:
189
+ type: string
190
+ description: Human-readable error message describing the failure.
191
+ path:
192
+ type: string
193
+ description: API endpoint path that produced the error.
194
+ status:
195
+ type: integer
196
+ description: HTTP status code returned with the error.
197
+ timestamp:
198
+ type: string
199
+ format: date-time
200
+ description: Timestamp when the error occurred (ISO 8601).
201
+ ForwardGeocodeResponse:
202
+ type: array
203
+ title: Forward Geocoding Results
204
+ description: List of locations matching the search query, one entry per match, up to the number requested via `limit`.
205
+ items:
206
+ $ref: '#/components/schemas/GeocodeResponse'
207
+ GeocodeResponse:
208
+ type: object
209
+ description: A single geocoded location with coordinates and structured address components.
210
+ required:
211
+ - lat
212
+ - lon
213
+ - country_code
214
+ - country
215
+ - full_address
216
+ - bounding_box
217
+ properties:
218
+ lat:
219
+ type: number
220
+ format: float
221
+ description: WGS84 latitude value for the location.
222
+ lon:
223
+ type: number
224
+ format: float
225
+ description: WGS84 longitude value for the location.
226
+ name:
227
+ type: string
228
+ description: Name for the primary place searched.
229
+ category:
230
+ type: string
231
+ description: High-level category of the place, e.g. amenity, place, natural, building, highway.
232
+ type:
233
+ type: string
234
+ description: Specific kind within the category, e.g. fast_food, city, park, residential, house_number.
235
+ poi:
236
+ type: array
237
+ description: Points of interest at this location.
238
+ items:
239
+ $ref: '#/components/schemas/PointOfInterest'
240
+ street:
241
+ type: string
242
+ description: Street or road name.
243
+ area:
244
+ type: string
245
+ description: Intra-city area below city level, e.g. suburb, borough, ward, district, tehsil, neighbourhood.
246
+ postcode:
247
+ type: string
248
+ description: Postal code of the area.
249
+ city:
250
+ type: string
251
+ description: Settlement label appropriate to the country, e.g. city, town, municipality.
252
+ county:
253
+ type: string
254
+ description: Second-tier administrative area, e.g. county, district, prefecture.
255
+ state_code:
256
+ type: string
257
+ description: Subdivision code, typically ISO-3166-2 (e.g. US-TX, PK-PB).
258
+ state:
259
+ type: string
260
+ description: First-tier administrative area, e.g. state, region, province, division.
261
+ country_code:
262
+ type: string
263
+ description: Two-letter country code in upper case, ISO-3166-1 alpha-2.
264
+ country:
265
+ type: string
266
+ description: Country name of the searched place.
267
+ full_address:
268
+ type: string
269
+ description: Single-line, human-readable address of the location.
270
+ bounding_box:
271
+ type: array
272
+ description: Extent of the feature as `[lat_min, lat_max, lon_min, lon_max]` in WGS84 decimal degrees.
273
+ items:
274
+ type: string
275
+ minItems: 4
276
+ maxItems: 4
277
+ PointOfInterest:
278
+ type: object
279
+ description: A point of interest located at or near a geocoded result.
280
+ properties:
281
+ name:
282
+ type: string
283
+ description: Name of the point of interest.
284
+ category:
285
+ type: string
286
+ description: High-level category of the point of interest, e.g. amenity, place, natural, building, highway.
287
+ type:
288
+ type: string
289
+ description: Specific kind within the category, e.g. fast_food, city, park, residential, house_number.
290
+ security:
291
+ - ApiKeyAuthHeader: []
292
+ - ApiKeyAuthQuery: []