@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,248 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "PDF Resource Upload API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Upload one or more PDF files to the server using multipart form-data. Returns an array of file metadata objects, one per uploaded file, each containing a `fileName` and a `fileId` for use in subsequent PDF processing operations (merge, split, compress, status checks, download, delete). Repeat the `file` form field to upload multiple files in a single request. Unsupported file types return a `415` error instead of a partial upload.",
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 Resource Upload API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/pdf/resource/upload": {
21
+ "post": {
22
+ "tags": [
23
+ "PDF Upload and Download APIs"
24
+ ],
25
+ "summary": "Upload multiple PDFs and get file IDs",
26
+ "description": "This API uploads multiple PDF files to the API Freaks server and generates their unique file IDs.",
27
+ "operationId": "uploadResource",
28
+ "parameters": [
29
+ {
30
+ "name": "format",
31
+ "in": "query",
32
+ "required": false,
33
+ "schema": {
34
+ "type": "string",
35
+ "enum": [
36
+ "json",
37
+ "xml"
38
+ ],
39
+ "default": "json"
40
+ },
41
+ "description": "Specifies the desired format for the API response. Choose 'json' for a JSON object or 'xml' for an XML structure."
42
+ }
43
+ ],
44
+ "requestBody": {
45
+ "description": "Multipart form-data body carrying the PDF file(s) to upload. Repeat the file field to upload multiple files in one request.",
46
+ "required": true,
47
+ "content": {
48
+ "multipart/form-data": {
49
+ "schema": {
50
+ "$ref": "#/components/schemas/ResourceUploadRequest"
51
+ },
52
+ "examples": {
53
+ "typicalUpload": {
54
+ "summary": "Upload a single PDF file",
55
+ "value": {
56
+ "file": "<binary PDF file content>"
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
63
+ "responses": {
64
+ "200": {
65
+ "description": "PDF upload successful",
66
+ "content": {
67
+ "application/json": {
68
+ "schema": {
69
+ "$ref": "#/components/schemas/ResourceUploadResponse"
70
+ },
71
+ "examples": {
72
+ "typicalSuccess": {
73
+ "summary": "Single file uploaded",
74
+ "value": {
75
+ "files": [
76
+ {
77
+ "fileName": "test.pdf",
78
+ "fileId": "b61a80d1-9b2d-4748-b3d1-04d747dedc8c"
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ "multipleFiles": {
84
+ "summary": "Multiple files uploaded in one request",
85
+ "value": {
86
+ "files": [
87
+ {
88
+ "fileName": "test.pdf",
89
+ "fileId": "9922d104-25a0-432c-8c26-2be2ba14798a"
90
+ },
91
+ {
92
+ "fileName": "test.pdf",
93
+ "fileId": "8a6b3332-6fe0-42b0-a808-df7a36926a79"
94
+ }
95
+ ]
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "400": {
103
+ "description": "Bad Request \u2014 Missing or invalid parameters",
104
+ "content": {
105
+ "application/json": {
106
+ "schema": {
107
+ "$ref": "#/components/schemas/ErrorResponse"
108
+ },
109
+ "examples": {
110
+ "missingFile": {
111
+ "summary": "No file provided in the request body",
112
+ "value": {
113
+ "timestamp": "2026-07-27T10:42:36.770Z",
114
+ "path": "/v1.0/pdf/upload",
115
+ "status": 400,
116
+ "error": "Missing or Invalid Parameters",
117
+ "message": "One or more required parameters are missing or incorrect."
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ },
124
+ "415": {
125
+ "description": "Unsupported Media Type \u2014 File type not supported",
126
+ "content": {
127
+ "application/json": {
128
+ "schema": {
129
+ "$ref": "#/components/schemas/ErrorResponse"
130
+ },
131
+ "examples": {
132
+ "unsupportedFileType": {
133
+ "summary": "Unsupported file type",
134
+ "value": {
135
+ "timestamp": "2026-07-27T10:47:37.481Z",
136
+ "path": "/v1.0/pdf/upload",
137
+ "status": 415,
138
+ "error": "Unsupported File Type",
139
+ "message": "The provided file type is not supported. Refer to the documentation for valid file types."
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+ },
150
+ "components": {
151
+ "securitySchemes": {
152
+ "ApiKeyAuthHeader": {
153
+ "type": "apiKey",
154
+ "in": "header",
155
+ "name": "X-apiKey",
156
+ "description": "Pass your API key via the X-apiKey request header."
157
+ },
158
+ "ApiKeyAuthQuery": {
159
+ "type": "apiKey",
160
+ "in": "query",
161
+ "name": "apiKey",
162
+ "description": "Pass your API key via the apiKey query parameter."
163
+ }
164
+ },
165
+ "schemas": {
166
+ "ResourceUploadResponse": {
167
+ "type": "object",
168
+ "required": [
169
+ "files"
170
+ ],
171
+ "properties": {
172
+ "files": {
173
+ "type": "array",
174
+ "items": {
175
+ "type": "object",
176
+ "required": [
177
+ "fileName",
178
+ "fileId"
179
+ ],
180
+ "properties": {
181
+ "fileName": {
182
+ "type": "string",
183
+ "description": "Name of the uploaded file."
184
+ },
185
+ "fileId": {
186
+ "type": "string",
187
+ "description": "Unique ID of the uploaded file, used to reference it in processing operations."
188
+ }
189
+ }
190
+ },
191
+ "description": "Array of uploaded file metadata objects."
192
+ }
193
+ },
194
+ "description": "Resource upload response containing file metadata."
195
+ },
196
+ "ResourceUploadRequest": {
197
+ "type": "object",
198
+ "description": "Multipart form-data request body containing the file to upload.",
199
+ "required": [],
200
+ "properties": {
201
+ "file": {
202
+ "type": "string",
203
+ "format": "binary",
204
+ "description": "Raw PDF file bytes sent as a multipart/form-data field named 'file'. Repeat this field to upload multiple files in one request."
205
+ }
206
+ }
207
+ },
208
+ "ErrorResponse": {
209
+ "type": "object",
210
+ "description": "Standard error envelope returned by the API on failed requests.",
211
+ "required": [
212
+ "message"
213
+ ],
214
+ "properties": {
215
+ "error": {
216
+ "type": "string",
217
+ "description": "Short error category or exception type."
218
+ },
219
+ "message": {
220
+ "type": "string",
221
+ "description": "Human-readable error message describing the failure."
222
+ },
223
+ "path": {
224
+ "type": "string",
225
+ "description": "API endpoint path that produced the error."
226
+ },
227
+ "status": {
228
+ "type": "integer",
229
+ "description": "HTTP status code returned with the error."
230
+ },
231
+ "timestamp": {
232
+ "type": "string",
233
+ "format": "date-time",
234
+ "description": "Timestamp when the error occurred (ISO 8601)."
235
+ }
236
+ }
237
+ }
238
+ }
239
+ },
240
+ "security": [
241
+ {
242
+ "ApiKeyAuthHeader": []
243
+ },
244
+ {
245
+ "ApiKeyAuthQuery": []
246
+ }
247
+ ]
248
+ }
@@ -0,0 +1,343 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "PDF Restrict API Reference",
5
+ "version": "1.0.0",
6
+ "description": "Restrict a PDF file with permission controls. Set printing, copying, and editing restrictions with an owner password.",
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 Restrict API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/pdf/restrict": {
21
+ "post": {
22
+ "tags": [
23
+ "PDF Security APIs"
24
+ ],
25
+ "summary": "Apply permission restrictions on a PDF file",
26
+ "description": "This API applies permission restrictions on a PDF file, such as disabling printing, copying, or editing. This can include password protection to enforce restrictions.",
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 name for the output restricted PDF file. If not provided, a default name will be assigned."
68
+ },
69
+ {
70
+ "name": "file_password",
71
+ "in": "query",
72
+ "required": false,
73
+ "schema": {
74
+ "type": "string"
75
+ },
76
+ "description": "The password to unlock the input file if it is already secured. Provide the owner password if available; otherwise, the user password. The owner password takes precedence. Password Length should be between 6 and 128 characters."
77
+ },
78
+ {
79
+ "name": "user_password",
80
+ "in": "query",
81
+ "required": true,
82
+ "schema": {
83
+ "type": "string"
84
+ },
85
+ "description": "Sets the password users will use to open the PDF. If this is not set, only the owner password will be configured, and anyone can open the PDF file with the provided restrictions enabled. Password Length should be between 6 and 128 characters."
86
+ },
87
+ {
88
+ "name": "owner_password",
89
+ "in": "query",
90
+ "required": false,
91
+ "schema": {
92
+ "type": "string"
93
+ },
94
+ "description": "Sets the password that allows full access to the PDF (e.g., removing restrictions). If not provided, the `user_password` (if set) will also be used as the owner password. Password Length should be between 6 and 128 characters."
95
+ },
96
+ {
97
+ "name": "restrictions",
98
+ "in": "query",
99
+ "required": true,
100
+ "schema": {
101
+ "type": "string"
102
+ },
103
+ "description": "A comma-separated list of restrictions to apply to the PDF. These define what the end-user is *not* allowed to do with the PDF. Available options are:\n\n\n* **print_high** \u2013 Disables high-quality printing.\n* **print_low** \u2013 Disables low-resolution printing.\n* **edit_document_assembly** \u2013 Prevents reordering or inserting pages.\n* **fill_form_fields** \u2013 Disallows filling in PDF form fields.\n* **edit_annotations** \u2013 Disables adding or modifying annotations or comments.\n* **modify_content** \u2013 Prevents modifying existing content in the PDF.\n* **copy_and_extract_content** \u2013 Disables copying text or images from the PDF.\n* **use_accessibility** \u2013 Prevents screen readers or accessibility tools from accessing content. An invalid restriction keyword returns a 400 with error \"Invalid PDF Restriction\"."
104
+ },
105
+ {
106
+ "name": "webhook_url",
107
+ "in": "query",
108
+ "required": false,
109
+ "schema": {
110
+ "type": "string"
111
+ },
112
+ "description": "The URL to which the webhook notification will be sent after the task is completed."
113
+ },
114
+ {
115
+ "name": "webhook_failure_notification",
116
+ "in": "query",
117
+ "required": false,
118
+ "schema": {
119
+ "type": "boolean"
120
+ },
121
+ "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."
122
+ },
123
+ {
124
+ "name": "X-Webhook-Authorization",
125
+ "in": "header",
126
+ "required": false,
127
+ "schema": {
128
+ "type": "string"
129
+ },
130
+ "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."
131
+ }
132
+ ],
133
+ "requestBody": {
134
+ "description": "Multipart form-data body carrying the PDF file to restrict. Alternatively, reference an already-uploaded file via the file_id query parameter instead of uploading here.",
135
+ "required": false,
136
+ "content": {
137
+ "multipart/form-data": {
138
+ "schema": {
139
+ "$ref": "#/components/schemas/PdfFileUploadRequest"
140
+ }
141
+ }
142
+ }
143
+ },
144
+ "responses": {
145
+ "200": {
146
+ "description": "PDF restrict successfully",
147
+ "content": {
148
+ "application/json": {
149
+ "schema": {
150
+ "$ref": "#/components/schemas/PDFResponse"
151
+ },
152
+ "examples": {
153
+ "success": {
154
+ "summary": "Task created",
155
+ "value": {
156
+ "taskId": "42839406-7e1b-4f64-96bb-d94bb054e8d3",
157
+ "inputIds": [
158
+ "2c682ade-eccc-4ab5-9c06-d16e415cbecb"
159
+ ]
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ },
166
+ "400": {
167
+ "description": "Bad Request \u2014 Missing/invalid parameters, file ID, or password",
168
+ "content": {
169
+ "application/json": {
170
+ "examples": {
171
+ "MissingParams": {
172
+ "summary": "Missing required user_password or restrictions parameter",
173
+ "value": {
174
+ "error": "Invalid Param Exception",
175
+ "message": "please pass correct parameters",
176
+ "path": "/v1.0/pdf/restrict",
177
+ "status": 400,
178
+ "timestamp": "2026-07-27T10:57:14.449Z"
179
+ }
180
+ },
181
+ "MissingFileOrID": {
182
+ "summary": "Neither a file nor a file ID was provided",
183
+ "value": {
184
+ "timestamp": "2026-07-27T10:57:25.953Z",
185
+ "path": "/v1.0/pdf/restrict-pdf",
186
+ "status": 400,
187
+ "error": "Missing File or ID",
188
+ "message": "Please provide either a file or a file ID."
189
+ }
190
+ },
191
+ "InvalidID": {
192
+ "summary": "file_id is malformed or does not exist",
193
+ "value": {
194
+ "timestamp": "2026-07-27T10:57:24.835Z",
195
+ "path": "/v1.0/pdf/restrict",
196
+ "status": 400,
197
+ "error": "Invalid File ID Provided",
198
+ "message": "Please provide a valid file ID"
199
+ }
200
+ },
201
+ "WeakPassword": {
202
+ "summary": "Password does not meet strength requirements",
203
+ "value": {
204
+ "timestamp": "2026-07-27T10:57:15.634Z",
205
+ "path": "/v1.0/pdf/restrict-pdf",
206
+ "status": 400,
207
+ "error": "Weak Password Provided",
208
+ "message": "Please provide a strong password. Refer to the documentation for password requirements."
209
+ }
210
+ },
211
+ "InvalidRestriction": {
212
+ "summary": "Unrecognized restriction keyword",
213
+ "value": {
214
+ "timestamp": "2026-07-27T10:57:16.268Z",
215
+ "path": "/v1.0/pdf/restrict-pdf",
216
+ "status": 400,
217
+ "error": "Invalid PDF Restriction",
218
+ "message": "Please provide valid PDF restrictions. Refer to the documentation for valid PDF restrictions."
219
+ }
220
+ }
221
+ },
222
+ "schema": {
223
+ "$ref": "#/components/schemas/ErrorResponse"
224
+ }
225
+ }
226
+ }
227
+ },
228
+ "415": {
229
+ "description": "Unsupported Media Type \u2014 File type not supported",
230
+ "content": {
231
+ "application/json": {
232
+ "schema": {
233
+ "$ref": "#/components/schemas/ErrorResponse"
234
+ },
235
+ "examples": {
236
+ "UnsupportedFileType": {
237
+ "summary": "Uploaded file is not a supported type",
238
+ "value": {
239
+ "timestamp": "2026-07-27T10:57:25.374Z",
240
+ "path": "/v1.0/pdf/restrict-pdf",
241
+ "status": 415,
242
+ "error": "Unsupported File Type",
243
+ "message": "The provided file type is not supported. Refer to the documentation for valid file types."
244
+ }
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ },
251
+ "operationId": "restrictPdf"
252
+ }
253
+ }
254
+ },
255
+ "components": {
256
+ "securitySchemes": {
257
+ "ApiKeyAuthHeader": {
258
+ "type": "apiKey",
259
+ "in": "header",
260
+ "name": "X-apiKey",
261
+ "description": "Pass your API key via the X-apiKey request header."
262
+ },
263
+ "ApiKeyAuthQuery": {
264
+ "type": "apiKey",
265
+ "in": "query",
266
+ "name": "apiKey",
267
+ "description": "Pass your API key via the apiKey query parameter."
268
+ }
269
+ },
270
+ "schemas": {
271
+ "PDFResponse": {
272
+ "type": "object",
273
+ "description": "Response containing the task ID and input file IDs for a PDF processing task.",
274
+ "required": [
275
+ "taskId"
276
+ ],
277
+ "properties": {
278
+ "taskId": {
279
+ "type": "string",
280
+ "description": "Task ID of the requested task, used to check the task status."
281
+ },
282
+ "inputIds": {
283
+ "type": "array",
284
+ "items": {
285
+ "type": "string"
286
+ },
287
+ "description": "File IDs for the input files provided for the task. Not returned when destroy parameter is true."
288
+ }
289
+ }
290
+ },
291
+ "PdfFileUploadRequest": {
292
+ "type": "object",
293
+ "description": "Multipart form-data request body containing the PDF file to process.",
294
+ "required": [],
295
+ "properties": {
296
+ "file": {
297
+ "type": "string",
298
+ "format": "binary",
299
+ "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."
300
+ }
301
+ }
302
+ },
303
+ "ErrorResponse": {
304
+ "type": "object",
305
+ "description": "Standard error envelope returned by the API on failed requests.",
306
+ "required": [
307
+ "message"
308
+ ],
309
+ "properties": {
310
+ "error": {
311
+ "type": "string",
312
+ "description": "Short error category or exception type."
313
+ },
314
+ "message": {
315
+ "type": "string",
316
+ "description": "Human-readable error message describing the failure."
317
+ },
318
+ "path": {
319
+ "type": "string",
320
+ "description": "API endpoint path that produced the error."
321
+ },
322
+ "status": {
323
+ "type": "integer",
324
+ "description": "HTTP status code returned with the error."
325
+ },
326
+ "timestamp": {
327
+ "type": "string",
328
+ "format": "date-time",
329
+ "description": "Timestamp when the error occurred (ISO 8601)."
330
+ }
331
+ }
332
+ }
333
+ }
334
+ },
335
+ "security": [
336
+ {
337
+ "ApiKeyAuthHeader": []
338
+ },
339
+ {
340
+ "ApiKeyAuthQuery": []
341
+ }
342
+ ]
343
+ }