@apifreaks/openapi-specs 0.1.0

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 (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/index.cjs +44663 -0
  4. package/dist/index.d.cts +30 -0
  5. package/dist/index.d.ts +30 -0
  6. package/dist/index.js +44631 -0
  7. package/package.json +81 -0
  8. package/specs/commodity/commodity-fluctuation.json +301 -0
  9. package/specs/commodity/commodity-prices.json +317 -0
  10. package/specs/commodity/commodity-symbols.json +215 -0
  11. package/specs/commodity/commodity-time-series.json +329 -0
  12. package/specs/commodity/historical-commodity-prices.json +273 -0
  13. package/specs/currency/currency-converter.json +261 -0
  14. package/specs/currency/currency-fluctuation.json +282 -0
  15. package/specs/currency/currency-historical-data-limit.json +158 -0
  16. package/specs/currency/currency-rate.json +229 -0
  17. package/specs/currency/currency-supported.json +234 -0
  18. package/specs/currency/currency-symbols.json +161 -0
  19. package/specs/currency/currency-time-series.json +325 -0
  20. package/specs/currency/geolocalized-currency-conversion.json +287 -0
  21. package/specs/currency/historical-currency-converter.json +269 -0
  22. package/specs/currency/historical-currency-rate.json +246 -0
  23. package/specs/dns/bulk-dns-lookup.json +624 -0
  24. package/specs/dns/dns-history-lookup.json +579 -0
  25. package/specs/dns/dns-lookup.json +466 -0
  26. package/specs/dns/reverse-dns-lookup.json +414 -0
  27. package/specs/domain/bulk-domain-checker.json +284 -0
  28. package/specs/domain/domain-search-with-suggestions.json +280 -0
  29. package/specs/domain/domain-search.json +206 -0
  30. package/specs/domain/subdomain-lookup.json +343 -0
  31. package/specs/email-validation/bulk-email-validation.json +534 -0
  32. package/specs/email-validation/email-checker.json +586 -0
  33. package/specs/financial/bulk-vat-rates-country.json +341 -0
  34. package/specs/financial/financial-apis-supported-countries.json +204 -0
  35. package/specs/financial/iban-validation.json +328 -0
  36. package/specs/financial/swift-code-finder.json +192 -0
  37. package/specs/financial/swift-code-lookup.json +220 -0
  38. package/specs/financial/vat-number-validation.json +283 -0
  39. package/specs/financial/vat-rates-by-ip.json +275 -0
  40. package/specs/financial/vat-rates-country.json +288 -0
  41. package/specs/general/usage-credits.json +218 -0
  42. package/specs/geocoding/forward-geocoding.json +402 -0
  43. package/specs/geocoding/reverse-geocoding.json +326 -0
  44. package/specs/geodb/administrative-units-details.json +250 -0
  45. package/specs/geodb/administrative-units-levels.json +198 -0
  46. package/specs/geodb/administrative-units.json +237 -0
  47. package/specs/geodb/cities.json +288 -0
  48. package/specs/geodb/countries-details.json +274 -0
  49. package/specs/geodb/countries.json +276 -0
  50. package/specs/geodb/flags-supported.json +166 -0
  51. package/specs/geodb/flags.json +227 -0
  52. package/specs/geodb/regions.json +109 -0
  53. package/specs/geodb/subregions.json +217 -0
  54. package/specs/ip-intelligence/bulk-ip-lookup.json +1162 -0
  55. package/specs/ip-intelligence/bulk-ip-threat-intelligence.json +417 -0
  56. package/specs/ip-intelligence/ip-locator.json +941 -0
  57. package/specs/ip-intelligence/ip-threat-intelligence.json +316 -0
  58. package/specs/other/astronomy-data.json +803 -0
  59. package/specs/pdf/delete-pdf-page.json +286 -0
  60. package/specs/pdf/linearize-pdf.json +277 -0
  61. package/specs/pdf/merge-pdf.json +285 -0
  62. package/specs/pdf/pdf-compress.json +304 -0
  63. package/specs/pdf/pdf-decrypt.json +297 -0
  64. package/specs/pdf/pdf-encrypt.json +314 -0
  65. package/specs/pdf/pdf-extract-pages.json +295 -0
  66. package/specs/pdf/pdf-file-status.json +208 -0
  67. package/specs/pdf/pdf-file.json +190 -0
  68. package/specs/pdf/pdf-files.json +126 -0
  69. package/specs/pdf/pdf-resource-download.json +168 -0
  70. package/specs/pdf/pdf-resource-upload-binary.json +218 -0
  71. package/specs/pdf/pdf-resource-upload.json +248 -0
  72. package/specs/pdf/pdf-restrict.json +343 -0
  73. package/specs/pdf/pdf-split-pages.json +281 -0
  74. package/specs/pdf/pdf-task-status.json +252 -0
  75. package/specs/pdf/pdf-to-image.json +1219 -0
  76. package/specs/pdf/pdf-unrestrict.json +324 -0
  77. package/specs/pdf/rotate-pdf-pages.json +305 -0
  78. package/specs/phone-validation/bulk-phone-number-validation.json +518 -0
  79. package/specs/phone-validation/phone-number-validation.json +456 -0
  80. package/specs/scraper/web-scraper.json +674 -0
  81. package/specs/screenshot/bulk-screenshot.json +949 -0
  82. package/specs/screenshot/website-screenshot.json +1147 -0
  83. package/specs/ssl/ssl-certificate-chain-lookup.json +756 -0
  84. package/specs/ssl/ssl-certificate-lookup.json +634 -0
  85. package/specs/timezone/timezone-converter.json +362 -0
  86. package/specs/timezone/timezone-lookup.json +910 -0
  87. package/specs/user-agent/bulk-user-agent-parser.json +441 -0
  88. package/specs/user-agent/user-agent-parser.json +346 -0
  89. package/specs/weather/air-quality.json +779 -0
  90. package/specs/weather/bulk-live-weather.json +834 -0
  91. package/specs/weather/flood-forecast.json +693 -0
  92. package/specs/weather/historical-weather.json +1019 -0
  93. package/specs/weather/live-weather.json +789 -0
  94. package/specs/weather/marine-weather.json +940 -0
  95. package/specs/weather/time-series-weather.json +1056 -0
  96. package/specs/weather/weather-forecast.json +1202 -0
  97. package/specs/whois/asn-lookup.json +729 -0
  98. package/specs/whois/bulk-whois-lookup.json +698 -0
  99. package/specs/whois/domain-whois-history-lookup.json +500 -0
  100. package/specs/whois/reverse-whois.json +625 -0
  101. package/specs/whois/whois-domain-lookup.json +533 -0
  102. package/specs/whois/whois-ip-lookup.json +1110 -0
  103. package/specs/zip-code/bulk-zip-code-lookup.json +318 -0
  104. package/specs/zip-code/zip-code-api.json +299 -0
  105. package/specs/zip-code/zip-code-distance-match.json +311 -0
  106. package/specs/zip-code/zip-code-distance.json +307 -0
  107. package/specs/zip-code/zip-codes-by-city.json +279 -0
  108. package/specs/zip-code/zip-codes-by-region.json +278 -0
  109. package/specs/zip-code/zip-codes-radius-search.json +349 -0
@@ -0,0 +1,281 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "PDF Split API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Split a PDF file into individual pages or groups of pages. Returns a task ID for tracking the split progress.",
7
+ "contact": {
8
+ "name": "APIFreaks Support",
9
+ "url": "https://apifreaks.com/contact",
10
+ "email": "support@apifreaks.com"
11
+ }
12
+ },
13
+ "servers": [
14
+ {
15
+ "url": "https://api.apifreaks.com/v1.0",
16
+ "description": "PDF Split API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/pdf/split": {
21
+ "post": {
22
+ "tags": [
23
+ "PDF Operations APIs"
24
+ ],
25
+ "summary": "Split a PDF into smaller files",
26
+ "description": "This API splits a PDF into multiple parts based on specified page numbers or ranges.",
27
+ "parameters": [
28
+ {
29
+ "name": "format",
30
+ "in": "query",
31
+ "required": false,
32
+ "schema": {
33
+ "type": "string",
34
+ "enum": [
35
+ "json",
36
+ "xml"
37
+ ],
38
+ "default": "json"
39
+ },
40
+ "description": "Specifies the desired format for the API response. Choose 'json' for a JSON object or 'xml' for an XML structure."
41
+ },
42
+ {
43
+ "name": "file_id",
44
+ "in": "query",
45
+ "required": false,
46
+ "schema": {
47
+ "type": "string"
48
+ },
49
+ "description": "The unique ID of a PDF file already uploaded to the API Freaks server. Use this as an alternative to uploading a new file directly."
50
+ },
51
+ {
52
+ "name": "destroy",
53
+ "in": "query",
54
+ "required": false,
55
+ "schema": {
56
+ "type": "boolean"
57
+ },
58
+ "description": "If set to `true`, the input file(s) will be permanently deleted from the server immediately after the output PDF is generated."
59
+ },
60
+ {
61
+ "name": "output",
62
+ "in": "query",
63
+ "required": false,
64
+ "schema": {
65
+ "type": "string"
66
+ },
67
+ "description": "The desired base name for the output PDF files after splitting. If not provided, a default naming convention will be used."
68
+ },
69
+ {
70
+ "name": "pages",
71
+ "in": "query",
72
+ "required": false,
73
+ "schema": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string",
77
+ "default": ""
78
+ },
79
+ "default": []
80
+ },
81
+ "description": "Defines the page numbers or ranges where the PDF should be split. Provide individual pages and/or ranges in any order (for example: \"1-4,9-5,16-last\"). Separate entries with commas and use hyphens for ranges.\n\nSpecial keywords (use alone):\n\n\u2022 `even` \u2014 split at every even-numbered page\n\n\u2022 `odd` \u2014 split at every odd-numbered page\n\n\u2022 `all` \u2014 split the PDF into single-page files\n\nThe keyword `last` can be used anywhere in the string, in combination with page numbers or ranges (for example: \"5-last\", \"last-2\", \"1,last,9\").\n\nExamples:\n- \"1,4-2,last\"\n- \"odd\"\n- \"all\"\n- \"last,2-5\"\n\nInvalid example: \"1,odd\" (mixing a keyword other than \"last\" with specific pages/ranges is not allowed). You can pass multiple pages entries to produce multiple output files."
82
+ },
83
+ {
84
+ "name": "webhook_url",
85
+ "in": "query",
86
+ "required": false,
87
+ "schema": {
88
+ "type": "string"
89
+ },
90
+ "description": "The URL to which the webhook notification will be sent after the task is completed."
91
+ },
92
+ {
93
+ "name": "webhook_failure_notification",
94
+ "in": "query",
95
+ "required": false,
96
+ "schema": {
97
+ "type": "boolean"
98
+ },
99
+ "description": "If true, a notification will also be sent by email in case the webhook request fails all the retries. The email notification will be sent to the requesting user or their organization\u2019s admin if part of one."
100
+ },
101
+ {
102
+ "name": "X-Webhook-Authorization",
103
+ "in": "header",
104
+ "required": false,
105
+ "schema": {
106
+ "type": "string"
107
+ },
108
+ "description": "Optional custom header for webhook requests. Format: `Key:Value` (e.g., `Authorization:Bearer token123`). This will be sent as an HTTP header in the webhook call."
109
+ }
110
+ ],
111
+ "requestBody": {
112
+ "description": "Multipart form-data body carrying the PDF file to split. Alternatively, reference an already-uploaded file via the file_id query parameter instead of uploading here.",
113
+ "required": false,
114
+ "content": {
115
+ "multipart/form-data": {
116
+ "schema": {
117
+ "$ref": "#/components/schemas/PdfFileUploadRequest"
118
+ }
119
+ }
120
+ }
121
+ },
122
+ "responses": {
123
+ "200": {
124
+ "description": "Split task created successfully. Malformed or out-of-range page specifications are not rejected synchronously \u2014 the task is created, then fails asynchronously; poll the task status endpoint and check for status \"failed\" with an error/message pair.",
125
+ "content": {
126
+ "application/json": {
127
+ "schema": {
128
+ "$ref": "#/components/schemas/PDFResponse"
129
+ },
130
+ "examples": {
131
+ "success": {
132
+ "summary": "Task created",
133
+ "value": {
134
+ "taskId": "a533a95c-b3fb-49f0-abb1-bef2f3e805ef",
135
+ "inputIds": [
136
+ "62f910b6-69ce-4cbc-8285-eee5f16467be"
137
+ ]
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ },
144
+ "400": {
145
+ "description": "Bad Request \u2014 Invalid file ID",
146
+ "content": {
147
+ "application/json": {
148
+ "examples": {
149
+ "InvalidID": {
150
+ "summary": "file_id is malformed or does not exist",
151
+ "value": {
152
+ "error": "Invalid File ID Provided",
153
+ "message": "Please provide a valid file ID",
154
+ "path": "/v1.0/pdf/split",
155
+ "status": 400,
156
+ "timestamp": "2026-07-27T10:54:00.793Z"
157
+ }
158
+ }
159
+ },
160
+ "schema": {
161
+ "$ref": "#/components/schemas/ErrorResponse"
162
+ }
163
+ }
164
+ }
165
+ },
166
+ "415": {
167
+ "description": "Unsupported Media Type \u2014 File type not supported",
168
+ "content": {
169
+ "application/json": {
170
+ "examples": {
171
+ "UnsupportedFileType": {
172
+ "summary": "Uploaded file is not a supported type",
173
+ "value": {
174
+ "timestamp": "2026-07-27T10:54:01.347Z",
175
+ "path": "/v1.0/pdf/split-pdf",
176
+ "status": 415,
177
+ "error": "Unsupported File Type",
178
+ "message": "The provided file type is not supported. Refer to the documentation for valid file types."
179
+ }
180
+ }
181
+ },
182
+ "schema": {
183
+ "$ref": "#/components/schemas/ErrorResponse"
184
+ }
185
+ }
186
+ }
187
+ }
188
+ },
189
+ "operationId": "splitPdf"
190
+ }
191
+ }
192
+ },
193
+ "components": {
194
+ "securitySchemes": {
195
+ "ApiKeyAuthHeader": {
196
+ "type": "apiKey",
197
+ "in": "header",
198
+ "name": "X-apiKey",
199
+ "description": "Pass your API key via the X-apiKey request header."
200
+ },
201
+ "ApiKeyAuthQuery": {
202
+ "type": "apiKey",
203
+ "in": "query",
204
+ "name": "apiKey",
205
+ "description": "Pass your API key via the apiKey query parameter."
206
+ }
207
+ },
208
+ "schemas": {
209
+ "PDFResponse": {
210
+ "type": "object",
211
+ "description": "Response containing the task ID and input file IDs for a PDF processing task.",
212
+ "required": [
213
+ "taskId"
214
+ ],
215
+ "properties": {
216
+ "taskId": {
217
+ "type": "string",
218
+ "description": "Task ID of the requested task, used to check the task status."
219
+ },
220
+ "inputIds": {
221
+ "type": "array",
222
+ "items": {
223
+ "type": "string"
224
+ },
225
+ "description": "File IDs for the input files provided for the task. Not returned when destroy parameter is true."
226
+ }
227
+ }
228
+ },
229
+ "PdfFileUploadRequest": {
230
+ "type": "object",
231
+ "description": "Multipart form-data request body containing the PDF file to process.",
232
+ "required": [],
233
+ "properties": {
234
+ "file": {
235
+ "type": "string",
236
+ "format": "binary",
237
+ "description": "Raw PDF file bytes sent as a multipart/form-data field named 'file'. Omit this field entirely and pass file_id in the query string instead to use an already-uploaded file."
238
+ }
239
+ }
240
+ },
241
+ "ErrorResponse": {
242
+ "type": "object",
243
+ "description": "Standard error envelope returned by the API on failed requests.",
244
+ "required": [
245
+ "message"
246
+ ],
247
+ "properties": {
248
+ "error": {
249
+ "type": "string",
250
+ "description": "Short error category or exception type."
251
+ },
252
+ "message": {
253
+ "type": "string",
254
+ "description": "Human-readable error message describing the failure."
255
+ },
256
+ "path": {
257
+ "type": "string",
258
+ "description": "API endpoint path that produced the error."
259
+ },
260
+ "status": {
261
+ "type": "integer",
262
+ "description": "HTTP status code returned with the error."
263
+ },
264
+ "timestamp": {
265
+ "type": "string",
266
+ "format": "date-time",
267
+ "description": "Timestamp when the error occurred (ISO 8601)."
268
+ }
269
+ }
270
+ }
271
+ }
272
+ },
273
+ "security": [
274
+ {
275
+ "ApiKeyAuthHeader": []
276
+ },
277
+ {
278
+ "ApiKeyAuthQuery": []
279
+ }
280
+ ]
281
+ }
@@ -0,0 +1,252 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "PDF Task Status API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Check the status of a previously initiated PDF processing task using its unique task ID. Returns task status, creation and expiry timestamps, output file URLs and IDs, and input file IDs. Supports status values: queued, processing, completed, failed.",
7
+ "contact": {
8
+ "name": "APIFreaks Support",
9
+ "url": "https://apifreaks.com/contact",
10
+ "email": "support@apifreaks.com"
11
+ }
12
+ },
13
+ "servers": [
14
+ {
15
+ "url": "https://api.apifreaks.com/v1.0",
16
+ "description": "PDF Task Status API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/pdf/task-status": {
21
+ "get": {
22
+ "tags": ["Task Status and File Info APIs"],
23
+ "summary": "Check PDF task status",
24
+ "description": "This API checks the status of a previously initiated PDF processing task using its unique task ID.",
25
+ "parameters": [
26
+ {
27
+ "name": "format",
28
+ "in": "query",
29
+ "required": false,
30
+ "schema": {
31
+ "type": "string",
32
+ "enum": ["json", "xml"],
33
+ "default": "json"
34
+ },
35
+ "description": "Specifies the desired format for the API response. Choose 'json' for a JSON object or 'xml' for an XML structure."
36
+ },
37
+ {
38
+ "name": "task_id",
39
+ "in": "query",
40
+ "description": "The unique ID of the PDF processing task for which the status is requested.",
41
+ "required": true,
42
+ "schema": {
43
+ "type": "string"
44
+ }
45
+ }
46
+ ],
47
+ "responses": {
48
+ "200": {
49
+ "description": "Task status retrieved successfully",
50
+ "content": {
51
+ "application/json": {
52
+ "schema": {
53
+ "$ref": "#/components/schemas/TaskStatusResponse"
54
+ },
55
+ "examples": {
56
+ "success": {
57
+ "summary": "Task completed",
58
+ "value": {
59
+ "taskId": "74004a68-ec05-4681-8d10-698304206065",
60
+ "status": "completed",
61
+ "createdAt": "2026-07-27 10:48:51",
62
+ "outputUrls": [
63
+ "https://api.apifreaks.com/v1.0/pdf/resource/download?resource_id=21e3bb30-f98e-47ca-9d52-b221857d1f48"
64
+ ],
65
+ "outputIds": ["21e3bb30-f98e-47ca-9d52-b221857d1f48"],
66
+ "inputIds": [
67
+ "0deab2f6-927c-451e-81e2-e8565206690e",
68
+ "5b6a4836-8c4c-4379-8b3c-0867be35db71"
69
+ ],
70
+ "expiresAt": "2026-08-03 10:48:51"
71
+ }
72
+ },
73
+ "failed": {
74
+ "summary": "Task failed (e.g. invalid page range/format caught during processing)",
75
+ "value": {
76
+ "taskId": "9d8d803b-e23a-4431-901b-98b1f337355c",
77
+ "status": "failed",
78
+ "createdAt": "2026-07-27 10:52:12",
79
+ "inputIds": ["63ea4110-b007-475b-9211-2fa7138b8ba1"],
80
+ "error": "Invalid Page Range",
81
+ "message": "One or more specified page numbers exceed the total number of pages in the PDF document.",
82
+ "expiresAt": "2026-08-03 10:52:12"
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "400": {
90
+ "description": "Bad Request — Missing required task_id parameter",
91
+ "content": {
92
+ "application/json": {
93
+ "examples": {
94
+ "missingTaskId": {
95
+ "summary": "Missing task_id parameter",
96
+ "value": {
97
+ "error": "Invalid Param Exception",
98
+ "message": "please pass correct parameters",
99
+ "path": "/v1.0/pdf/task-status",
100
+ "status": 400,
101
+ "timestamp": "2026-07-27T10:49:06.412Z"
102
+ }
103
+ }
104
+ },
105
+ "schema": {
106
+ "$ref": "#/components/schemas/ErrorResponse"
107
+ }
108
+ }
109
+ }
110
+ },
111
+ "404": {
112
+ "description": "Task ID Not Found",
113
+ "content": {
114
+ "application/json": {
115
+ "examples": {
116
+ "error": {
117
+ "summary": "Task ID not found",
118
+ "value": {
119
+ "timestamp": "2026-07-27T10:49:05.829Z",
120
+ "path": "/v1.0/pdf/task-status",
121
+ "status": 404,
122
+ "error": "Task ID Not Found",
123
+ "message": "Please provide a valid task ID."
124
+ }
125
+ }
126
+ },
127
+ "schema": {
128
+ "$ref": "#/components/schemas/ErrorResponse"
129
+ }
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "operationId": "getTaskStatus"
135
+ }
136
+ }
137
+ },
138
+ "components": {
139
+ "securitySchemes": {
140
+ "ApiKeyAuthHeader": {
141
+ "type": "apiKey",
142
+ "in": "header",
143
+ "name": "X-apiKey",
144
+ "description": "Pass your API key via the X-apiKey request header."
145
+ },
146
+ "ApiKeyAuthQuery": {
147
+ "type": "apiKey",
148
+ "in": "query",
149
+ "name": "apiKey",
150
+ "description": "Pass your API key via the apiKey query parameter."
151
+ }
152
+ },
153
+ "schemas": {
154
+ "TaskStatusResponse": {
155
+ "type": "object",
156
+ "required": ["taskId", "status", "createdAt", "inputIds", "expiresAt"],
157
+ "properties": {
158
+ "taskId": {
159
+ "type": "string",
160
+ "description": "The unique identifier of the PDF processing task."
161
+ },
162
+ "status": {
163
+ "type": "string",
164
+ "description": "The current status of the task (e.g., 'queued', 'processing', 'completed', 'failed')."
165
+ },
166
+ "createdAt": {
167
+ "type": "string",
168
+ "description": "The timestamp when the task status was created, formatted as 'yyyy-MM-dd HH:mm:ss'."
169
+ },
170
+ "zipFileId": {
171
+ "type": "string",
172
+ "description": "The unique identifier for the ZIP file. This is present only when the task status is 'COMPLETED'."
173
+ },
174
+ "outputUrls": {
175
+ "type": "array",
176
+ "items": {
177
+ "type": "string"
178
+ },
179
+ "description": "A list of URLs for each individual output file. This is present only when the task is 'COMPLETED'."
180
+ },
181
+ "outputIds": {
182
+ "type": "array",
183
+ "items": {
184
+ "type": "string"
185
+ },
186
+ "description": "A list of unique IDs for the output files. This is present only when the task is 'COMPLETED'."
187
+ },
188
+ "inputIds": {
189
+ "type": "array",
190
+ "items": {
191
+ "type": "string"
192
+ },
193
+ "description": "A list of unique IDs for the input files submitted with the task. If the task was initiated with the `destroy` parameter set to `true`, `inputIds` will not be generated."
194
+ },
195
+ "error": {
196
+ "type": "string",
197
+ "description": "The error code for the PDF Task. This is included only if the task fails."
198
+ },
199
+ "message": {
200
+ "type": "string",
201
+ "description": "A descriptive message indicating the reason for task failure. This is included only if the task fails."
202
+ },
203
+ "expiresAt": {
204
+ "type": "string",
205
+ "description": "The timestamp when the task status will expire and be removed from the system, formatted as 'yyyy-MM-dd HH:mm:ss'."
206
+ },
207
+ "zipFileUrl": {
208
+ "type": "string",
209
+ "description": "The URL to download all output files as a single ZIP archive. Present only when the task status is completed."
210
+ }
211
+ },
212
+ "description": "Task status response containing the current state of a PDF processing task."
213
+ },
214
+ "ErrorResponse": {
215
+ "type": "object",
216
+ "description": "Standard error envelope returned by the API on failed requests.",
217
+ "required": ["message"],
218
+ "properties": {
219
+ "error": {
220
+ "type": "string",
221
+ "description": "Short error category or exception type."
222
+ },
223
+ "message": {
224
+ "type": "string",
225
+ "description": "Human-readable error message describing the failure."
226
+ },
227
+ "path": {
228
+ "type": "string",
229
+ "description": "API endpoint path that produced the error."
230
+ },
231
+ "status": {
232
+ "type": "integer",
233
+ "description": "HTTP status code returned with the error."
234
+ },
235
+ "timestamp": {
236
+ "type": "string",
237
+ "format": "date-time",
238
+ "description": "Timestamp when the error occurred (ISO 8601)."
239
+ }
240
+ }
241
+ }
242
+ }
243
+ },
244
+ "security": [
245
+ {
246
+ "ApiKeyAuthHeader": []
247
+ },
248
+ {
249
+ "ApiKeyAuthQuery": []
250
+ }
251
+ ]
252
+ }