@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,340 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Bulk User Agent Parser - Multi User Agent Parsing
4
+ version: 1.0.0
5
+ description: Parse multiple User-Agent strings in a single POST request to obtain detailed browser, device, operating system, and rendering engine information for each string. Supports up to 50,000 User-Agent strings per request. Each entry in the response array mirrors the shape of a single User Agent Parser result --- including browser/app name and version, device hardware (name, type, brand, CPU), layout engine data, and operating system metadata --- in the same order as the request. A malformed/unparsable (but non-empty) string does not fail the batch; it simply comes back with every classification field set to `Hacker`, just like the single-lookup endpoint. An empty string or `null` anywhere in the array does fail the whole request with a `400`, not a per-item error --- there is no partial-failure array shape for this endpoint.
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: Bulk User Agent Parser API Server
13
+ paths:
14
+ /user-agent/lookup:
15
+ post:
16
+ tags:
17
+ - User Agent APIs
18
+ summary: Parse multiple User-Agent strings in a single request to obtain browser, device, and operating system details
19
+ description: Parse up to 50,000 User-Agent strings simultaneously in a single request. Returns structured details about the browser, device, layout engine, and operating system for each string.
20
+ operationId: bulkParseUserAgent
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
+ requestBody:
33
+ required: true
34
+ content:
35
+ application/json:
36
+ schema:
37
+ $ref: '#/components/schemas/BulkUserAgentRequest'
38
+ examples:
39
+ typicalRequest:
40
+ summary: Example request body
41
+ value:
42
+ uaStrings:
43
+ - Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36
44
+ - Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+
45
+ - Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)
46
+ responses:
47
+ '200':
48
+ description: Successful response with parsed user agent data for each input string
49
+ content:
50
+ application/json:
51
+ schema:
52
+ $ref: '#/components/schemas/BulkUserAgentParserResponse'
53
+ examples:
54
+ typicalSuccess:
55
+ summary: Typical successful response
56
+ value:
57
+ - user_agent_string: Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36
58
+ name: Chrome
59
+ type: Browser
60
+ version: 62.0.3202.84
61
+ version_major: '62'
62
+ device:
63
+ name: Samsung SM-G960F
64
+ type: Phone
65
+ brand: Samsung
66
+ cpu: Unknown
67
+ engine:
68
+ name: Blink
69
+ type: Browser
70
+ version: '62.0'
71
+ version_major: '62'
72
+ operating_system:
73
+ name: Android
74
+ type: Mobile
75
+ version: 8.0.0
76
+ version_major: '8'
77
+ build: R16NW
78
+ - user_agent_string: Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+
79
+ name: Kindle
80
+ type: Browser
81
+ version: '3.0'
82
+ version_major: '3'
83
+ device:
84
+ name: Amazon Kindle
85
+ type: eReader
86
+ brand: Amazon
87
+ cpu: ARMv7l
88
+ engine:
89
+ name: AppleWebKit
90
+ type: Browser
91
+ version: '531.2'
92
+ version_major: '531'
93
+ operating_system:
94
+ name: FireOS
95
+ type: Mobile
96
+ version: ??
97
+ version_major: ??
98
+ build: ??
99
+ - user_agent_string: Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)
100
+ name: Kindle
101
+ type: Browser
102
+ version: '3.0'
103
+ version_major: '3'
104
+ device:
105
+ name: Amazon Kindle
106
+ type: eReader
107
+ brand: Amazon
108
+ cpu: Unknown
109
+ engine:
110
+ name: AppleWebKit
111
+ type: Browser
112
+ version: '528.5'
113
+ version_major: '528'
114
+ operating_system:
115
+ name: FireOS
116
+ type: Mobile
117
+ version: ??
118
+ version_major: ??
119
+ build: ??
120
+ mixedWithUnparsable:
121
+ summary: Batch with a malformed (non-empty) string — still 200, that entry comes back as Hacker
122
+ value:
123
+ - user_agent_string: asdkjaslkdjaslkdj12312
124
+ name: Hacker
125
+ type: Hacker
126
+ version: Hacker
127
+ version_major: Hacker
128
+ device:
129
+ name: Hacker
130
+ type: Hacker
131
+ brand: Hacker
132
+ cpu: Unknown
133
+ engine:
134
+ name: Hacker
135
+ type: Hacker
136
+ version: Hacker
137
+ version_major: Hacker
138
+ operating_system:
139
+ name: Hacker
140
+ type: Hacker
141
+ version: Hacker
142
+ version_major: Hacker
143
+ build: ??
144
+ - user_agent_string: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
145
+ name: Googlebot
146
+ type: Robot
147
+ version: '2.1'
148
+ version_major: '2'
149
+ device:
150
+ name: Google
151
+ type: Robot
152
+ brand: Google
153
+ cpu: Unknown
154
+ engine:
155
+ name: Googlebot
156
+ type: Robot
157
+ version: ??
158
+ version_major: ??
159
+ operating_system:
160
+ name: Google Cloud
161
+ type: Cloud
162
+ version: ??
163
+ version_major: ??
164
+ build: ??
165
+ '400':
166
+ description: Bad Request — Invalid/missing request body, or an empty/null string anywhere in uaStrings (fails the whole batch, not a per-item error)
167
+ content:
168
+ application/json:
169
+ schema:
170
+ $ref: '#/components/schemas/ErrorResponse'
171
+ examples:
172
+ missingRequestBody:
173
+ summary: Missing, empty, or wrong-type request body
174
+ value:
175
+ error: Invalid request body Exception
176
+ message: Please provide data in required format in request body
177
+ path: /v1.0/user-agent/lookup
178
+ status: 400
179
+ timestamp: '2026-07-24T10:16:11.030Z'
180
+ emptyUserAgentString:
181
+ summary: Empty string or null inside uaStrings array
182
+ value:
183
+ message: '''userAgentString'' must not be empty or null'
184
+ components:
185
+ securitySchemes:
186
+ ApiKeyAuthHeader:
187
+ type: apiKey
188
+ in: header
189
+ name: X-apiKey
190
+ description: Pass your API key via the X-apiKey request header.
191
+ ApiKeyAuthQuery:
192
+ type: apiKey
193
+ in: query
194
+ name: apiKey
195
+ description: Pass your API key via the apiKey query parameter.
196
+ schemas:
197
+ BulkUserAgentRequest:
198
+ type: object
199
+ description: Request body containing an array of User-Agent strings to parse.
200
+ required:
201
+ - uaStrings
202
+ properties:
203
+ uaStrings:
204
+ type: array
205
+ description: Array of User-Agent strings to parse. Maximum 50,000 strings per request.
206
+ maxItems: 50000
207
+ items:
208
+ type: string
209
+ BulkUserAgentParserResponse:
210
+ title: UserAgentParserResponse
211
+ type: array
212
+ description: 'Array of per-string parsed User-Agent results, one entry per input string, in the same order as the request. Unlike the bulk IP lookup endpoint, there is no per-item error variant here: a malformed (non-empty) string still parses to a full result with every field set to "Hacker" (see UserAgentParserResponse). An empty string or null anywhere in the request array fails the entire request with a 400 instead of producing a per-item error entry --- see the 400 response.'
213
+ items:
214
+ $ref: '#/components/schemas/UserAgentParserResponse'
215
+ UserAgentParserResponse:
216
+ type: object
217
+ description: Parsed User-Agent result containing browser, device, engine, and operating system information. When the User-Agent string is malformed or cannot be parsed, every field across this object and its nested device/engine/operating_system objects is set to the literal string "Hacker" instead of the request failing.
218
+ required:
219
+ - user_agent_string
220
+ - name
221
+ - type
222
+ - version
223
+ - version_major
224
+ - device
225
+ - engine
226
+ - operating_system
227
+ properties:
228
+ user_agent_string:
229
+ type: string
230
+ description: The raw User-Agent string that was parsed for browser, device, and operating system details.
231
+ name:
232
+ type: string
233
+ description: Name of the browser, crawler, or application identified from the User-Agent string.
234
+ type:
235
+ type: string
236
+ description: 'Category of the agent. Possible values: Browser, Browser Webview, Mobile App, Robot Mobile, Cloud Application, Email Client, Voice, Special, Testclient, Hacker, Unknown.'
237
+ version:
238
+ type: string
239
+ description: Full version string of the browser or application. "??" when the version could not be determined; "Hacker" when the User-Agent string itself is malformed/unparsable.
240
+ version_major:
241
+ type: string
242
+ description: Major version number extracted from the version string. "??" when the version could not be determined; "Hacker" when the User-Agent string itself is malformed/unparsable.
243
+ device:
244
+ $ref: '#/components/schemas/Device'
245
+ engine:
246
+ $ref: '#/components/schemas/Engine'
247
+ operating_system:
248
+ $ref: '#/components/schemas/OperatingSystem'
249
+ Device:
250
+ type: object
251
+ description: Hardware device information extracted from the User-Agent string.
252
+ required:
253
+ - name
254
+ - type
255
+ - brand
256
+ - cpu
257
+ properties:
258
+ name:
259
+ type: string
260
+ description: Device name or model identifier of the hardware used.
261
+ type:
262
+ type: string
263
+ description: 'Device category. Possible values: Desktop, Mobile, Tablet, Phone, Watch, Virtual Reality, eReader, Set-top box, TV, Game Console, Handheld Game Console, Voice, Robot, Robot Mobile, Robot Imitator, Hacker, Anonymized, Unknown.'
264
+ brand:
265
+ type: string
266
+ description: Device manufacturer or brand name.
267
+ cpu:
268
+ type: string
269
+ description: CPU architecture or model identifier of the device.
270
+ Engine:
271
+ type: object
272
+ description: Layout or rendering engine information extracted from the User-Agent string.
273
+ required:
274
+ - name
275
+ - type
276
+ - version
277
+ - version_major
278
+ properties:
279
+ name:
280
+ type: string
281
+ description: Name of the layout or rendering engine (e.g., Blink, Gecko, WebKit).
282
+ type:
283
+ type: string
284
+ description: 'Engine category. Possible values: Browser, Mobile App, Hacker, Robot, Unknown.'
285
+ version:
286
+ type: string
287
+ description: Full version string of the layout engine. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
288
+ version_major:
289
+ type: string
290
+ description: Major version number of the layout engine. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
291
+ OperatingSystem:
292
+ type: object
293
+ description: Operating system information extracted from the User-Agent string.
294
+ required:
295
+ - name
296
+ - type
297
+ - version
298
+ - version_major
299
+ - build
300
+ properties:
301
+ name:
302
+ type: string
303
+ description: Name of the operating system (e.g., Windows, Android, Ubuntu).
304
+ type:
305
+ type: string
306
+ description: 'Operating system category. Possible values: Desktop, Mobile, Game Console, Embedded, Cloud, Hacker, Anonymized, Unknown.'
307
+ version:
308
+ type: string
309
+ description: Full version string of the operating system. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
310
+ version_major:
311
+ type: string
312
+ description: Major version number of the operating system. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
313
+ build:
314
+ type: string
315
+ description: Build number or identifier of the operating system. "??" when unknown.
316
+ ErrorResponse:
317
+ type: object
318
+ description: Standard error envelope returned by the API on failed requests. Request-body-level errors (missing/empty/wrong-type body) include all five fields; per-item validation errors (empty/null string in uaStrings) include only message.
319
+ required:
320
+ - message
321
+ properties:
322
+ error:
323
+ type: string
324
+ description: Short error category or exception type.
325
+ message:
326
+ type: string
327
+ description: Human-readable error message describing the failure.
328
+ path:
329
+ type: string
330
+ description: API endpoint path that produced the error.
331
+ status:
332
+ type: integer
333
+ description: HTTP status code returned with the error.
334
+ timestamp:
335
+ type: string
336
+ format: date-time
337
+ description: Timestamp when the error occurred (ISO 8601).
338
+ security:
339
+ - ApiKeyAuthHeader: []
340
+ - ApiKeyAuthQuery: []
@@ -0,0 +1,271 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: User Agent Parser - Parse User Agent into Readable Format
4
+ version: 1.0.0
5
+ description: Parse any User-Agent string to obtain detailed browser, device, operating system, and rendering engine information. Returns the browser or application name and version, device hardware details (name, type, brand, CPU), layout engine data, and operating system metadata by default. Supports desktop, mobile, tablet, eReader, game console, and crawler detection across all major platforms. Pass the User-Agent string via the `User-Agent` request header to get a structured JSON response with individual fields for each component. A malformed or unparsable User-Agent string still returns a `200` response with every classification field set to `Hacker` rather than failing the request; a missing or empty `User-Agent` header returns a `400` error instead. Unresolvable version-like fields (`version`, `version_major`, `build`) are returned as the literal string `??` rather than being omitted.
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: User Agent Parser API Server
13
+ paths:
14
+ /user-agent/lookup:
15
+ get:
16
+ tags:
17
+ - User Agent APIs
18
+ summary: Parse a User-Agent string to obtain browser, device, and operating system details
19
+ description: Parse any User-Agent string to obtain detailed information about the browser, device, layout engine, and operating system. Supports desktop, mobile, tablet, and crawler detection.
20
+ operationId: parseUserAgent
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
+ - name: User-Agent
33
+ in: header
34
+ required: true
35
+ description: The User-Agent string to parse for browser, device, and operating system details.
36
+ schema:
37
+ type: string
38
+ responses:
39
+ '200':
40
+ description: Successful response with parsed user agent data
41
+ content:
42
+ application/json:
43
+ schema:
44
+ $ref: '#/components/schemas/UserAgentParserResponse'
45
+ examples:
46
+ typicalSuccess:
47
+ summary: Desktop browser User-Agent
48
+ value:
49
+ user_agent_string: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0
50
+ name: Firefox
51
+ type: Browser
52
+ version: '142.0'
53
+ version_major: '142'
54
+ device:
55
+ name: Linux Desktop
56
+ type: Desktop
57
+ brand: Unknown
58
+ cpu: Intel x86_64
59
+ engine:
60
+ name: Gecko
61
+ type: Browser
62
+ version: '142.0'
63
+ version_major: '142'
64
+ operating_system:
65
+ name: Ubuntu
66
+ type: Desktop
67
+ version: ??
68
+ version_major: ??
69
+ build: ??
70
+ crawlerUserAgent:
71
+ summary: Search engine crawler User-Agent — Robot/Cloud classification
72
+ value:
73
+ user_agent_string: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
74
+ name: Googlebot
75
+ type: Robot
76
+ version: '2.1'
77
+ version_major: '2'
78
+ device:
79
+ name: Google
80
+ type: Robot
81
+ brand: Google
82
+ cpu: Unknown
83
+ engine:
84
+ name: Googlebot
85
+ type: Robot
86
+ version: ??
87
+ version_major: ??
88
+ operating_system:
89
+ name: Google Cloud
90
+ type: Cloud
91
+ version: ??
92
+ version_major: ??
93
+ build: ??
94
+ unparsableUserAgent:
95
+ summary: Malformed/unparsable User-Agent — still 200, every field set to Hacker
96
+ value:
97
+ user_agent_string: asdkjaslkdjaslkdj12312
98
+ name: Hacker
99
+ type: Hacker
100
+ version: Hacker
101
+ version_major: Hacker
102
+ device:
103
+ name: Hacker
104
+ type: Hacker
105
+ brand: Hacker
106
+ cpu: Unknown
107
+ engine:
108
+ name: Hacker
109
+ type: Hacker
110
+ version: Hacker
111
+ version_major: Hacker
112
+ operating_system:
113
+ name: Hacker
114
+ type: Hacker
115
+ version: Hacker
116
+ version_major: Hacker
117
+ build: ??
118
+ '400':
119
+ description: Bad Request — Missing or empty User-Agent header
120
+ content:
121
+ application/json:
122
+ schema:
123
+ $ref: '#/components/schemas/ErrorResponse'
124
+ examples:
125
+ missingHeader:
126
+ summary: User-Agent header missing or empty
127
+ value:
128
+ error: Invalid Header Exception
129
+ message: Please provide correct headers
130
+ path: /v1.0/user-agent/lookup
131
+ status: 400
132
+ timestamp: '2026-07-24T10:12:15.828Z'
133
+ components:
134
+ securitySchemes:
135
+ ApiKeyAuthHeader:
136
+ type: apiKey
137
+ in: header
138
+ name: X-apiKey
139
+ description: Pass your API key via the X-apiKey request header.
140
+ ApiKeyAuthQuery:
141
+ type: apiKey
142
+ in: query
143
+ name: apiKey
144
+ description: Pass your API key via the apiKey query parameter.
145
+ schemas:
146
+ UserAgentParserResponse:
147
+ type: object
148
+ description: Parsed User-Agent result containing browser, device, engine, and operating system information. When the User-Agent string is malformed or cannot be parsed, every field across this object and its nested device/engine/operating_system objects is set to the literal string "Hacker" instead of the request failing.
149
+ required:
150
+ - user_agent_string
151
+ - name
152
+ - type
153
+ - version
154
+ - version_major
155
+ - device
156
+ - engine
157
+ - operating_system
158
+ properties:
159
+ user_agent_string:
160
+ type: string
161
+ description: The raw User-Agent string that was parsed for browser, device, and operating system details.
162
+ name:
163
+ type: string
164
+ description: Name of the browser, crawler, or application identified from the User-Agent string.
165
+ type:
166
+ type: string
167
+ description: 'Category of the agent. Possible values: Browser, Browser Webview, Mobile App, Robot Mobile, Cloud Application, Email Client, Voice, Special, Testclient, Hacker, Unknown.'
168
+ version:
169
+ type: string
170
+ description: Full version string of the browser or application. "??" when the version could not be determined; "Hacker" when the User-Agent string itself is malformed/unparsable.
171
+ version_major:
172
+ type: string
173
+ description: Major version number extracted from the version string. "??" when the version could not be determined; "Hacker" when the User-Agent string itself is malformed/unparsable.
174
+ device:
175
+ $ref: '#/components/schemas/Device'
176
+ engine:
177
+ $ref: '#/components/schemas/Engine'
178
+ operating_system:
179
+ $ref: '#/components/schemas/OperatingSystem'
180
+ Device:
181
+ type: object
182
+ description: Hardware device information extracted from the User-Agent string.
183
+ required:
184
+ - name
185
+ - type
186
+ - brand
187
+ - cpu
188
+ properties:
189
+ name:
190
+ type: string
191
+ description: Device name or model identifier of the hardware used.
192
+ type:
193
+ type: string
194
+ description: 'Device category. Possible values: Desktop, Mobile, Tablet, Phone, Watch, Virtual Reality, eReader, Set-top box, TV, Game Console, Handheld Game Console, Voice, Robot, Robot Mobile, Robot Imitator, Hacker, Anonymized, Unknown.'
195
+ brand:
196
+ type: string
197
+ description: Device manufacturer or brand name.
198
+ cpu:
199
+ type: string
200
+ description: CPU architecture or model identifier of the device.
201
+ Engine:
202
+ type: object
203
+ description: Layout or rendering engine information extracted from the User-Agent string.
204
+ required:
205
+ - name
206
+ - type
207
+ - version
208
+ - version_major
209
+ properties:
210
+ name:
211
+ type: string
212
+ description: Name of the layout or rendering engine (e.g., Blink, Gecko, WebKit).
213
+ type:
214
+ type: string
215
+ description: 'Engine category. Possible values: Browser, Mobile App, Hacker, Robot, Unknown.'
216
+ version:
217
+ type: string
218
+ description: Full version string of the layout engine. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
219
+ version_major:
220
+ type: string
221
+ description: Major version number of the layout engine. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
222
+ OperatingSystem:
223
+ type: object
224
+ description: Operating system information extracted from the User-Agent string.
225
+ required:
226
+ - name
227
+ - type
228
+ - version
229
+ - version_major
230
+ - build
231
+ properties:
232
+ name:
233
+ type: string
234
+ description: Name of the operating system (e.g., Windows, Android, Ubuntu).
235
+ type:
236
+ type: string
237
+ description: 'Operating system category. Possible values: Desktop, Mobile, Game Console, Embedded, Cloud, Hacker, Anonymized, Unknown.'
238
+ version:
239
+ type: string
240
+ description: Full version string of the operating system. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
241
+ version_major:
242
+ type: string
243
+ description: Major version number of the operating system. "??" when unknown; "Hacker" when the User-Agent string itself is malformed/unparsable.
244
+ build:
245
+ type: string
246
+ description: Build number or identifier of the operating system. "??" when unknown.
247
+ ErrorResponse:
248
+ type: object
249
+ description: Standard error envelope returned by the API on failed requests.
250
+ required:
251
+ - message
252
+ properties:
253
+ error:
254
+ type: string
255
+ description: Short error category or exception type.
256
+ message:
257
+ type: string
258
+ description: Human-readable error message describing the failure.
259
+ path:
260
+ type: string
261
+ description: API endpoint path that produced the error.
262
+ status:
263
+ type: integer
264
+ description: HTTP status code returned with the error.
265
+ timestamp:
266
+ type: string
267
+ format: date-time
268
+ description: Timestamp when the error occurred (ISO 8601).
269
+ security:
270
+ - ApiKeyAuthHeader: []
271
+ - ApiKeyAuthQuery: []