@apifreaks/openapi-specs 0.1.2 → 0.3.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 (214) hide show
  1. package/README.md +37 -37
  2. package/dist/index.cjs +4288 -1107
  3. package/dist/index.d.cts +2 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +4288 -1107
  6. package/dist/specs/commodity/commodity-fluctuation.yaml +14 -0
  7. package/dist/specs/commodity/commodity-prices.yaml +14 -0
  8. package/dist/specs/commodity/commodity-symbols.yaml +8 -0
  9. package/dist/specs/commodity/commodity-time-series.yaml +14 -0
  10. package/dist/specs/commodity/historical-commodity-prices.yaml +14 -0
  11. package/dist/specs/currency/currency-converter.yaml +14 -0
  12. package/dist/specs/currency/currency-fluctuation.yaml +14 -0
  13. package/dist/specs/currency/currency-historical-data-limit.yaml +11 -0
  14. package/dist/specs/currency/currency-rate.yaml +14 -0
  15. package/dist/specs/currency/currency-supported.yaml +11 -0
  16. package/dist/specs/currency/currency-symbols.yaml +11 -0
  17. package/dist/specs/currency/currency-time-series.yaml +14 -0
  18. package/dist/specs/currency/geolocalized-currency-conversion.yaml +14 -0
  19. package/dist/specs/currency/historical-currency-converter.yaml +14 -0
  20. package/dist/specs/currency/historical-currency-rate.yaml +14 -0
  21. package/dist/specs/dns/bulk-dns-lookup.yaml +14 -0
  22. package/dist/specs/dns/dns-history-lookup.yaml +14 -0
  23. package/dist/specs/dns/dns-lookup.yaml +11 -0
  24. package/dist/specs/dns/reverse-dns-lookup.yaml +34 -0
  25. package/dist/specs/domain/bulk-domain-checker.yaml +17 -0
  26. package/dist/specs/domain/domain-search-with-suggestions.yaml +14 -0
  27. package/dist/specs/domain/domain-search.yaml +14 -0
  28. package/dist/specs/domain/subdomain-lookup.yaml +14 -0
  29. package/dist/specs/email-validation/bulk-email-validation.yaml +17 -0
  30. package/dist/specs/email-validation/email-checker.yaml +41 -0
  31. package/dist/specs/financial/bulk-vat-rates-country.yaml +14 -0
  32. package/dist/specs/financial/financial-apis-supported-countries.yaml +8 -0
  33. package/dist/specs/financial/iban-validation.yaml +11 -0
  34. package/dist/specs/financial/swift-code-finder.yaml +11 -0
  35. package/dist/specs/financial/swift-code-lookup.yaml +14 -0
  36. package/dist/specs/financial/vat-number-validation.yaml +14 -0
  37. package/dist/specs/financial/vat-rates-by-ip.yaml +14 -0
  38. package/dist/specs/financial/vat-rates-country.yaml +14 -0
  39. package/dist/specs/general/usage-credits.yaml +11 -0
  40. package/dist/specs/geocoding/forward-geocoding.yaml +14 -0
  41. package/dist/specs/geocoding/reverse-geocoding.yaml +11 -0
  42. package/dist/specs/geodb/administrative-units-details.yaml +14 -0
  43. package/dist/specs/geodb/administrative-units-levels.yaml +14 -0
  44. package/dist/specs/geodb/administrative-units.yaml +14 -0
  45. package/dist/specs/geodb/cities.yaml +14 -0
  46. package/dist/specs/geodb/countries-details.yaml +11 -0
  47. package/dist/specs/geodb/countries.yaml +11 -0
  48. package/dist/specs/geodb/flags-supported.yaml +8 -0
  49. package/dist/specs/geodb/flags.yaml +14 -0
  50. package/dist/specs/geodb/regions.yaml +8 -0
  51. package/dist/specs/geodb/subregions.yaml +14 -0
  52. package/dist/specs/ip-intelligence/bulk-ip-lookup.yaml +14 -0
  53. package/dist/specs/ip-intelligence/bulk-ip-threat-intelligence.yaml +11 -0
  54. package/dist/specs/ip-intelligence/ip-locator.yaml +17 -0
  55. package/dist/specs/ip-intelligence/ip-threat-intelligence.yaml +14 -0
  56. package/dist/specs/other/astronomy-data.yaml +14 -0
  57. package/dist/specs/pdf/bulk-pdf-generator.yaml +231 -0
  58. package/dist/specs/pdf/delete-pdf-page.yaml +14 -0
  59. package/dist/specs/pdf/linearize-pdf.yaml +14 -0
  60. package/dist/specs/pdf/merge-pdf.yaml +14 -0
  61. package/dist/specs/pdf/pdf-compress.yaml +14 -0
  62. package/dist/specs/pdf/pdf-decrypt.yaml +14 -0
  63. package/dist/specs/pdf/pdf-encrypt.yaml +14 -0
  64. package/dist/specs/pdf/pdf-extract-pages.yaml +14 -0
  65. package/dist/specs/pdf/pdf-file-status.yaml +14 -0
  66. package/dist/specs/pdf/pdf-file.yaml +14 -0
  67. package/dist/specs/pdf/pdf-files.yaml +8 -0
  68. package/dist/specs/pdf/pdf-generator.yaml +348 -0
  69. package/dist/specs/pdf/pdf-resource-download.yaml +14 -0
  70. package/dist/specs/pdf/pdf-resource-upload-binary.yaml +14 -0
  71. package/dist/specs/pdf/pdf-resource-upload.yaml +14 -0
  72. package/dist/specs/pdf/pdf-restrict.yaml +14 -0
  73. package/dist/specs/pdf/pdf-split-pages.yaml +14 -0
  74. package/dist/specs/pdf/pdf-task-status.yaml +14 -0
  75. package/dist/specs/pdf/pdf-to-image.yaml +35 -0
  76. package/dist/specs/pdf/pdf-unrestrict.yaml +14 -0
  77. package/dist/specs/pdf/rotate-pdf-pages.yaml +14 -0
  78. package/dist/specs/phone-validation/bulk-phone-number-validation.yaml +23 -0
  79. package/dist/specs/phone-validation/phone-number-validation.yaml +20 -0
  80. package/dist/specs/scraper/web-scraper.yaml +34 -0
  81. package/dist/specs/screenshot/bulk-screenshot.yaml +34 -0
  82. package/dist/specs/screenshot/website-screenshot.yaml +34 -0
  83. package/dist/specs/ssl/ssl-certificate-chain-lookup.yaml +17 -0
  84. package/dist/specs/ssl/ssl-certificate-lookup.yaml +17 -0
  85. package/dist/specs/timezone/timezone-converter.yaml +14 -0
  86. package/dist/specs/timezone/timezone-lookup.yaml +14 -0
  87. package/dist/specs/user-agent/bulk-user-agent-parser.yaml +11 -0
  88. package/dist/specs/user-agent/user-agent-parser.yaml +11 -0
  89. package/dist/specs/weather/air-quality.yaml +14 -0
  90. package/dist/specs/weather/bulk-live-weather.yaml +11 -0
  91. package/dist/specs/weather/flood-forecast.yaml +14 -0
  92. package/dist/specs/weather/historical-weather.yaml +14 -0
  93. package/dist/specs/weather/live-weather.yaml +14 -0
  94. package/dist/specs/weather/marine-weather.yaml +14 -0
  95. package/dist/specs/weather/time-series-weather.yaml +11 -0
  96. package/dist/specs/weather/weather-forecast.yaml +11 -0
  97. package/dist/specs/whois/asn-lookup.yaml +14 -0
  98. package/dist/specs/whois/bulk-whois-lookup.yaml +17 -0
  99. package/dist/specs/whois/domain-whois-history-lookup.yaml +14 -0
  100. package/dist/specs/whois/reverse-whois.yaml +34 -0
  101. package/dist/specs/whois/whois-domain-lookup.yaml +17 -0
  102. package/dist/specs/whois/whois-ip-lookup.yaml +14 -0
  103. package/dist/specs/zip-code/bulk-zip-code-lookup.yaml +14 -0
  104. package/dist/specs/zip-code/zip-code-api.yaml +14 -0
  105. package/dist/specs/zip-code/zip-code-distance-match.yaml +14 -0
  106. package/dist/specs/zip-code/zip-code-distance.yaml +14 -0
  107. package/dist/specs/zip-code/zip-codes-by-city.yaml +14 -0
  108. package/dist/specs/zip-code/zip-codes-by-region.yaml +14 -0
  109. package/dist/specs/zip-code/zip-codes-radius-search.yaml +34 -0
  110. package/package.json +1 -1
  111. package/specs/commodity/commodity-fluctuation.json +23 -0
  112. package/specs/commodity/commodity-prices.json +23 -0
  113. package/specs/commodity/commodity-symbols.json +13 -0
  114. package/specs/commodity/commodity-time-series.json +27 -13
  115. package/specs/commodity/historical-commodity-prices.json +23 -0
  116. package/specs/currency/currency-converter.json +23 -0
  117. package/specs/currency/currency-fluctuation.json +23 -0
  118. package/specs/currency/currency-historical-data-limit.json +18 -0
  119. package/specs/currency/currency-rate.json +23 -0
  120. package/specs/currency/currency-supported.json +18 -0
  121. package/specs/currency/currency-symbols.json +18 -0
  122. package/specs/currency/currency-time-series.json +23 -0
  123. package/specs/currency/geolocalized-currency-conversion.json +23 -0
  124. package/specs/currency/historical-currency-converter.json +23 -0
  125. package/specs/currency/historical-currency-rate.json +23 -0
  126. package/specs/dns/bulk-dns-lookup.json +23 -0
  127. package/specs/dns/dns-history-lookup.json +23 -0
  128. package/specs/dns/dns-lookup.json +18 -0
  129. package/specs/dns/reverse-dns-lookup.json +61 -1
  130. package/specs/domain/bulk-domain-checker.json +28 -0
  131. package/specs/domain/domain-search-with-suggestions.json +23 -0
  132. package/specs/domain/domain-search.json +23 -0
  133. package/specs/domain/subdomain-lookup.json +23 -0
  134. package/specs/email-validation/bulk-email-validation.json +28 -0
  135. package/specs/email-validation/email-checker.json +64 -0
  136. package/specs/financial/bulk-vat-rates-country.json +23 -0
  137. package/specs/financial/financial-apis-supported-countries.json +34 -5
  138. package/specs/financial/iban-validation.json +18 -0
  139. package/specs/financial/swift-code-finder.json +31 -2
  140. package/specs/financial/swift-code-lookup.json +23 -0
  141. package/specs/financial/vat-number-validation.json +23 -0
  142. package/specs/financial/vat-rates-by-ip.json +23 -0
  143. package/specs/financial/vat-rates-country.json +23 -0
  144. package/specs/general/usage-credits.json +18 -0
  145. package/specs/geocoding/forward-geocoding.json +23 -0
  146. package/specs/geocoding/reverse-geocoding.json +18 -0
  147. package/specs/geodb/administrative-units-details.json +23 -0
  148. package/specs/geodb/administrative-units-levels.json +23 -0
  149. package/specs/geodb/administrative-units.json +23 -0
  150. package/specs/geodb/cities.json +23 -0
  151. package/specs/geodb/countries-details.json +18 -0
  152. package/specs/geodb/countries.json +18 -0
  153. package/specs/geodb/flags-supported.json +13 -0
  154. package/specs/geodb/flags.json +23 -0
  155. package/specs/geodb/regions.json +13 -0
  156. package/specs/geodb/subregions.json +23 -0
  157. package/specs/ip-intelligence/bulk-ip-lookup.json +23 -0
  158. package/specs/ip-intelligence/bulk-ip-threat-intelligence.json +18 -0
  159. package/specs/ip-intelligence/ip-locator.json +33 -5
  160. package/specs/ip-intelligence/ip-threat-intelligence.json +23 -0
  161. package/specs/other/astronomy-data.json +24 -2
  162. package/specs/pdf/bulk-pdf-generator.json +343 -0
  163. package/specs/pdf/delete-pdf-page.json +33 -21
  164. package/specs/pdf/linearize-pdf.json +31 -19
  165. package/specs/pdf/merge-pdf.json +30 -18
  166. package/specs/pdf/pdf-compress.json +32 -25
  167. package/specs/pdf/pdf-decrypt.json +32 -21
  168. package/specs/pdf/pdf-encrypt.json +31 -19
  169. package/specs/pdf/pdf-extract-pages.json +33 -21
  170. package/specs/pdf/pdf-file-status.json +23 -0
  171. package/specs/pdf/pdf-file.json +23 -0
  172. package/specs/pdf/pdf-files.json +13 -0
  173. package/specs/pdf/pdf-generator.json +497 -0
  174. package/specs/pdf/pdf-resource-download.json +23 -0
  175. package/specs/pdf/pdf-resource-upload-binary.json +29 -16
  176. package/specs/pdf/pdf-resource-upload.json +30 -19
  177. package/specs/pdf/pdf-restrict.json +32 -20
  178. package/specs/pdf/pdf-split-pages.json +33 -21
  179. package/specs/pdf/pdf-task-status.json +23 -0
  180. package/specs/pdf/pdf-to-image.json +90 -101
  181. package/specs/pdf/pdf-unrestrict.json +32 -20
  182. package/specs/pdf/rotate-pdf-pages.json +32 -20
  183. package/specs/phone-validation/bulk-phone-number-validation.json +54 -16
  184. package/specs/phone-validation/phone-number-validation.json +33 -0
  185. package/specs/scraper/web-scraper.json +53 -0
  186. package/specs/screenshot/bulk-screenshot.json +53 -0
  187. package/specs/screenshot/website-screenshot.json +53 -0
  188. package/specs/ssl/ssl-certificate-chain-lookup.json +28 -0
  189. package/specs/ssl/ssl-certificate-lookup.json +28 -0
  190. package/specs/timezone/timezone-converter.json +23 -0
  191. package/specs/timezone/timezone-lookup.json +25 -2
  192. package/specs/user-agent/bulk-user-agent-parser.json +20 -2
  193. package/specs/user-agent/user-agent-parser.json +18 -0
  194. package/specs/weather/air-quality.json +23 -0
  195. package/specs/weather/bulk-live-weather.json +18 -0
  196. package/specs/weather/flood-forecast.json +23 -0
  197. package/specs/weather/historical-weather.json +23 -0
  198. package/specs/weather/live-weather.json +23 -0
  199. package/specs/weather/marine-weather.json +23 -0
  200. package/specs/weather/time-series-weather.json +18 -0
  201. package/specs/weather/weather-forecast.json +18 -0
  202. package/specs/whois/asn-lookup.json +23 -0
  203. package/specs/whois/bulk-whois-lookup.json +28 -0
  204. package/specs/whois/domain-whois-history-lookup.json +23 -0
  205. package/specs/whois/reverse-whois.json +53 -0
  206. package/specs/whois/whois-domain-lookup.json +28 -0
  207. package/specs/whois/whois-ip-lookup.json +23 -0
  208. package/specs/zip-code/bulk-zip-code-lookup.json +23 -0
  209. package/specs/zip-code/zip-code-api.json +23 -0
  210. package/specs/zip-code/zip-code-distance-match.json +23 -0
  211. package/specs/zip-code/zip-code-distance.json +23 -0
  212. package/specs/zip-code/zip-codes-by-city.json +23 -0
  213. package/specs/zip-code/zip-codes-by-region.json +24 -7
  214. package/specs/zip-code/zip-codes-radius-search.json +53 -0
@@ -287,6 +287,9 @@ paths:
287
287
  moon_parallactic_angle: 53.576490644915204
288
288
  moon_illumination_percentage: '77.00'
289
289
  moon_angle: 122.67689249117335
290
+ headers:
291
+ X-AF-Credits-Cost:
292
+ $ref: '#/components/headers/X-AF-Credits-Cost'
290
293
  '400':
291
294
  description: Bad Request – Invalid parameters provided
292
295
  content:
@@ -306,6 +309,9 @@ paths:
306
309
  summary: Invalid date format
307
310
  value:
308
311
  message: You must provide date in the 'yyyy-MM-dd' format
312
+ headers:
313
+ X-AF-Credits-Cost:
314
+ $ref: '#/components/headers/X-AF-Credits-Cost'
309
315
  '404':
310
316
  description: Not Found
311
317
  content:
@@ -317,6 +323,9 @@ paths:
317
323
  summary: Location not found
318
324
  value:
319
325
  message: We couldn't find the location (ZZZNOTEXIST). Try a city or state level location address only.
326
+ headers:
327
+ X-AF-Credits-Cost:
328
+ $ref: '#/components/headers/X-AF-Credits-Cost'
320
329
  components:
321
330
  securitySchemes:
322
331
  ApiKeyAuthHeader:
@@ -627,6 +636,11 @@ components:
627
636
  type: string
628
637
  format: date-time
629
638
  description: Timestamp when the error occurred (ISO 8601).
639
+ headers:
640
+ X-AF-Credits-Cost:
641
+ description: Specifies the number of credits consumed by the current request.
642
+ schema:
643
+ type: integer
630
644
  security:
631
645
  - ApiKeyAuthHeader: []
632
646
  - ApiKeyAuthQuery: []
@@ -0,0 +1,231 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: PDF Generator API - Bulk PDF Generation from CSV
4
+ version: 1.0.0
5
+ description: Generate one PDF per row from an uploaded CSV file against a template you designed in the APIFreaks PDF Template Builder. Each row is processed independently, and the response returns an array of results, each with its own pdf_url. Authentication is done with your APIFreaks API key passed in the X-apikey header.
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: PDF Generator API Server
13
+ paths:
14
+ /pdf/template/generate/bulk:
15
+ post:
16
+ tags:
17
+ - PDF Template APIs
18
+ summary: Generate PDFs in bulk from a CSV
19
+ description: Upload a CSV file where each row is one record. The API generates one PDF per row and returns an array of results, each with its own pdf_url. Rows are processed independently, so a failure in one row does not block the rest of the batch. The response gives a row-by-row breakdown of which PDFs succeeded and which failed.
20
+ parameters:
21
+ - name: template_id
22
+ in: query
23
+ required: true
24
+ schema:
25
+ type: string
26
+ description: The template to render, from the APIFreaks PDF Template Builder. Copy it from your dashboard when you save the template.
27
+ - name: version
28
+ in: query
29
+ required: false
30
+ schema:
31
+ type: string
32
+ pattern: ^v
33
+ description: Template version to render, e.g. v2. Must start with v. Omit this parameter entirely to use the latest version; the literal value 'latest' is not accepted by the API.
34
+ requestBody:
35
+ description: Multipart form-data body carrying the CSV file to render. Each row in the CSV is one record and produces one PDF.
36
+ required: true
37
+ content:
38
+ multipart/form-data:
39
+ schema:
40
+ $ref: '#/components/schemas/CsvUploadRequest'
41
+ responses:
42
+ '200':
43
+ description: PDFs generated successfully. The response is an array of results, one entry per CSV row, each with its own pdf_url.
44
+ content:
45
+ application/json:
46
+ schema:
47
+ type: array
48
+ items:
49
+ $ref: '#/components/schemas/TemplateGenerationResponse'
50
+ examples:
51
+ success:
52
+ summary: Generated PDFs for two rows
53
+ value:
54
+ - template_id: 73691bce-1c58-4370-acc6-64b2dd14f81c
55
+ pdf_url: https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/pdf_templates/73691bce-1c58-4370-acc6-64b2dd14f81c/Candidate%20Resume_20260810141245054106_1.pdf
56
+ created_at: '2026-08-10T14:12:47.887Z'
57
+ expiration_time: '2026-11-10T14:12:47.887Z'
58
+ - template_id: 73691bce-1c58-4370-acc6-64b2dd14f81c
59
+ pdf_url: https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/pdf_templates/73691bce-1c58-4370-acc6-64b2dd14f81c/Candidate%20Resume_20260810141245054154_2.pdf
60
+ created_at: '2026-08-10T14:12:47.940Z'
61
+ expiration_time: '2026-11-10T14:12:47.940Z'
62
+ headers:
63
+ X-AF-Credits-Cost:
64
+ $ref: '#/components/headers/X-AF-Credits-Cost'
65
+ '400':
66
+ description: Bad Request — Missing parameters, a file that is not a CSV, or data larger than 10 MB.
67
+ content:
68
+ application/json:
69
+ schema:
70
+ $ref: '#/components/schemas/ErrorResponse'
71
+ examples:
72
+ CsvFileRequired:
73
+ summary: Uploaded file is not a CSV
74
+ value:
75
+ timestamp: '2026-08-10T14:13:14.497Z'
76
+ path: /v1.0/generate-pdf/bulk
77
+ status: 400
78
+ error: CSV File Required
79
+ message: Only CSV files are supported. Please upload a valid CSV file.
80
+ headers:
81
+ X-AF-Credits-Cost:
82
+ $ref: '#/components/headers/X-AF-Credits-Cost'
83
+ '401':
84
+ description: Unauthorized — The API key is missing or invalid.
85
+ content:
86
+ application/json:
87
+ schema:
88
+ $ref: '#/components/schemas/ErrorResponse'
89
+ examples:
90
+ InvalidApiKey:
91
+ summary: Provided API key is invalid
92
+ value:
93
+ error: API Access Exception
94
+ message: 'Provided API key is invalid. [For Technical Support: support@apifreaks.com]'
95
+ path: /v1.0/pdf/template/generate/bulk
96
+ status: 401
97
+ timestamp: '2026-08-10T14:13:14.996Z'
98
+ headers:
99
+ X-AF-Credits-Cost:
100
+ $ref: '#/components/headers/X-AF-Credits-Cost'
101
+ '403':
102
+ description: Forbidden — The account does not have access to this template.
103
+ content:
104
+ application/json:
105
+ schema:
106
+ $ref: '#/components/schemas/ErrorResponse'
107
+ headers:
108
+ X-AF-Credits-Cost:
109
+ $ref: '#/components/headers/X-AF-Credits-Cost'
110
+ '404':
111
+ description: Not Found — No template matches the template_id, or the requested version does not exist.
112
+ content:
113
+ application/json:
114
+ schema:
115
+ $ref: '#/components/schemas/ErrorResponse'
116
+ headers:
117
+ X-AF-Credits-Cost:
118
+ $ref: '#/components/headers/X-AF-Credits-Cost'
119
+ '415':
120
+ description: Unsupported Media Type — The request Content-Type is not supported for this endpoint.
121
+ content:
122
+ application/json:
123
+ schema:
124
+ $ref: '#/components/schemas/ErrorResponse'
125
+ headers:
126
+ X-AF-Credits-Cost:
127
+ $ref: '#/components/headers/X-AF-Credits-Cost'
128
+ '422':
129
+ description: Unprocessable Entity — The request contains invalid or missing data.
130
+ content:
131
+ application/json:
132
+ schema:
133
+ $ref: '#/components/schemas/ErrorResponse'
134
+ headers:
135
+ X-AF-Credits-Cost:
136
+ $ref: '#/components/headers/X-AF-Credits-Cost'
137
+ '500':
138
+ description: Internal Server Error — An unexpected error occurred, or the PDF could not be generated.
139
+ content:
140
+ application/json:
141
+ schema:
142
+ $ref: '#/components/schemas/ErrorResponse'
143
+ headers:
144
+ X-AF-Credits-Cost:
145
+ $ref: '#/components/headers/X-AF-Credits-Cost'
146
+ '504':
147
+ description: Gateway Timeout — The request went past the 100 second processing limit.
148
+ content:
149
+ application/json:
150
+ schema:
151
+ $ref: '#/components/schemas/ErrorResponse'
152
+ headers:
153
+ X-AF-Credits-Cost:
154
+ $ref: '#/components/headers/X-AF-Credits-Cost'
155
+ operationId: generatePdfsFromCsv
156
+ components:
157
+ securitySchemes:
158
+ ApiKeyAuthHeader:
159
+ type: apiKey
160
+ in: header
161
+ name: X-apikey
162
+ description: Pass your API key via the X-apikey request header.
163
+ ApiKeyAuthQuery:
164
+ type: apiKey
165
+ in: query
166
+ name: apiKey
167
+ description: Pass your API key via the apiKey query parameter.
168
+ schemas:
169
+ TemplateGenerationResponse:
170
+ type: object
171
+ description: Result of a PDF generation request, containing the hosted URL of the generated PDF.
172
+ required:
173
+ - template_id
174
+ - pdf_url
175
+ - created_at
176
+ - expiration_time
177
+ properties:
178
+ template_id:
179
+ type: string
180
+ description: The template that was rendered.
181
+ pdf_url:
182
+ type: string
183
+ description: Hosted URL of the generated PDF.
184
+ created_at:
185
+ type: string
186
+ format: date-time
187
+ description: When the PDF was generated (ISO 8601).
188
+ expiration_time:
189
+ type: string
190
+ format: date-time
191
+ description: When the hosted PDF expires (ISO 8601).
192
+ CsvUploadRequest:
193
+ type: object
194
+ description: Multipart form-data request body containing the CSV file to render in bulk.
195
+ required:
196
+ - file
197
+ properties:
198
+ file:
199
+ type: string
200
+ format: binary
201
+ description: A CSV file uploaded as form-data where each row is one record. One PDF is generated per row.
202
+ ErrorResponse:
203
+ type: object
204
+ description: Standard error envelope returned by the API on failed requests.
205
+ required:
206
+ - message
207
+ properties:
208
+ error:
209
+ type: string
210
+ description: Short error category or exception type.
211
+ message:
212
+ type: string
213
+ description: Human-readable error message describing the failure.
214
+ path:
215
+ type: string
216
+ description: API endpoint path that produced the error.
217
+ status:
218
+ type: integer
219
+ description: HTTP status code returned with the error.
220
+ timestamp:
221
+ type: string
222
+ format: date-time
223
+ description: Timestamp when the error occurred (ISO 8601).
224
+ headers:
225
+ X-AF-Credits-Cost:
226
+ description: Specifies the number of credits consumed by the current request.
227
+ schema:
228
+ type: integer
229
+ security:
230
+ - ApiKeyAuthHeader: []
231
+ - ApiKeyAuthQuery: []
@@ -91,6 +91,9 @@ paths:
91
91
  taskId: 04a06cd5-158d-4191-a45b-6f58249c599d
92
92
  inputIds:
93
93
  - 7a9e4b12-f3c8-4d56-b7e1-8c2f9d0a3e6f
94
+ headers:
95
+ X-AF-Credits-Cost:
96
+ $ref: '#/components/headers/X-AF-Credits-Cost'
94
97
  '400':
95
98
  description: Bad Request — Missing/invalid parameters or file ID
96
99
  content:
@@ -114,6 +117,9 @@ paths:
114
117
  message: Please provide a valid file ID
115
118
  schema:
116
119
  $ref: '#/components/schemas/ErrorResponse'
120
+ headers:
121
+ X-AF-Credits-Cost:
122
+ $ref: '#/components/headers/X-AF-Credits-Cost'
117
123
  '415':
118
124
  description: Unsupported Media Type — File type not supported
119
125
  content:
@@ -129,6 +135,9 @@ paths:
129
135
  message: The provided file type is not supported. Refer to the documentation for valid file types.
130
136
  schema:
131
137
  $ref: '#/components/schemas/ErrorResponse'
138
+ headers:
139
+ X-AF-Credits-Cost:
140
+ $ref: '#/components/headers/X-AF-Credits-Cost'
132
141
  operationId: deletePdfPage
133
142
  components:
134
143
  securitySchemes:
@@ -188,6 +197,11 @@ components:
188
197
  type: string
189
198
  format: date-time
190
199
  description: Timestamp when the error occurred (ISO 8601).
200
+ headers:
201
+ X-AF-Credits-Cost:
202
+ description: Specifies the number of credits consumed by the current request.
203
+ schema:
204
+ type: integer
191
205
  security:
192
206
  - ApiKeyAuthHeader: []
193
207
  - ApiKeyAuthQuery: []
@@ -85,6 +85,9 @@ paths:
85
85
  taskId: 8750f9bb-4cb9-45fd-80a6-e1adf6556618
86
86
  inputIds:
87
87
  - 5f214118-f848-41f8-809d-8c6058b4b74a
88
+ headers:
89
+ X-AF-Credits-Cost:
90
+ $ref: '#/components/headers/X-AF-Credits-Cost'
88
91
  '400':
89
92
  description: Bad Request — Missing/invalid file or file ID
90
93
  content:
@@ -108,6 +111,9 @@ paths:
108
111
  timestamp: '2026-07-27T10:55:08.238Z'
109
112
  schema:
110
113
  $ref: '#/components/schemas/ErrorResponse'
114
+ headers:
115
+ X-AF-Credits-Cost:
116
+ $ref: '#/components/headers/X-AF-Credits-Cost'
111
117
  '415':
112
118
  description: Unsupported Media Type — File type not supported
113
119
  content:
@@ -123,6 +129,9 @@ paths:
123
129
  message: The provided file type is not supported. Refer to the documentation for valid file types.
124
130
  schema:
125
131
  $ref: '#/components/schemas/ErrorResponse'
132
+ headers:
133
+ X-AF-Credits-Cost:
134
+ $ref: '#/components/headers/X-AF-Credits-Cost'
126
135
  operationId: linearizePdf
127
136
  components:
128
137
  securitySchemes:
@@ -182,6 +191,11 @@ components:
182
191
  type: string
183
192
  format: date-time
184
193
  description: Timestamp when the error occurred (ISO 8601).
194
+ headers:
195
+ X-AF-Credits-Cost:
196
+ description: Specifies the number of credits consumed by the current request.
197
+ schema:
198
+ type: integer
185
199
  security:
186
200
  - ApiKeyAuthHeader: []
187
201
  - ApiKeyAuthQuery: []
@@ -89,6 +89,9 @@ paths:
89
89
  taskId: 04a06cd5-158d-4191-a45b-6f58249c599d
90
90
  inputIds:
91
91
  - 7a9e4b12-f3c8-4d56-b7e1-8c2f9d0a3e6f
92
+ headers:
93
+ X-AF-Credits-Cost:
94
+ $ref: '#/components/headers/X-AF-Credits-Cost'
92
95
  '400':
93
96
  description: Bad Request
94
97
  content:
@@ -112,6 +115,9 @@ paths:
112
115
  message: Please provide either a file or a file ID.
113
116
  schema:
114
117
  $ref: '#/components/schemas/ErrorResponse'
118
+ headers:
119
+ X-AF-Credits-Cost:
120
+ $ref: '#/components/headers/X-AF-Credits-Cost'
115
121
  '415':
116
122
  description: Unsupported Media Type — File type not supported
117
123
  content:
@@ -127,6 +133,9 @@ paths:
127
133
  message: The provided file type is not supported. Refer to the documentation for valid file types.
128
134
  schema:
129
135
  $ref: '#/components/schemas/ErrorResponse'
136
+ headers:
137
+ X-AF-Credits-Cost:
138
+ $ref: '#/components/headers/X-AF-Credits-Cost'
130
139
  operationId: mergePdf
131
140
  components:
132
141
  securitySchemes:
@@ -188,6 +197,11 @@ components:
188
197
  type: string
189
198
  format: date-time
190
199
  description: Timestamp when the error occurred (ISO 8601).
200
+ headers:
201
+ X-AF-Credits-Cost:
202
+ description: Specifies the number of credits consumed by the current request.
203
+ schema:
204
+ type: integer
191
205
  security:
192
206
  - ApiKeyAuthHeader: []
193
207
  - ApiKeyAuthQuery: []
@@ -98,6 +98,9 @@ paths:
98
98
  taskId: ce4b1a38-6cfc-4373-9bd7-ff186fbd8e7e
99
99
  inputIds:
100
100
  - f2ba4b50-6f8a-43ae-b42d-96937f50cd89
101
+ headers:
102
+ X-AF-Credits-Cost:
103
+ $ref: '#/components/headers/X-AF-Credits-Cost'
101
104
  '400':
102
105
  description: Bad Request — Missing/invalid parameters or file ID
103
106
  content:
@@ -129,6 +132,9 @@ paths:
129
132
  timestamp: '2026-07-27T10:50:25.910Z'
130
133
  schema:
131
134
  $ref: '#/components/schemas/ErrorResponse'
135
+ headers:
136
+ X-AF-Credits-Cost:
137
+ $ref: '#/components/headers/X-AF-Credits-Cost'
132
138
  '415':
133
139
  description: Unsupported Media Type — File type not supported
134
140
  content:
@@ -144,6 +150,9 @@ paths:
144
150
  message: The provided file type is not supported. Refer to the documentation for valid file types.
145
151
  schema:
146
152
  $ref: '#/components/schemas/ErrorResponse'
153
+ headers:
154
+ X-AF-Credits-Cost:
155
+ $ref: '#/components/headers/X-AF-Credits-Cost'
147
156
  operationId: compressPdf
148
157
  components:
149
158
  securitySchemes:
@@ -203,6 +212,11 @@ components:
203
212
  type: string
204
213
  format: date-time
205
214
  description: Timestamp when the error occurred (ISO 8601).
215
+ headers:
216
+ X-AF-Credits-Cost:
217
+ description: Specifies the number of credits consumed by the current request.
218
+ schema:
219
+ type: integer
206
220
  security:
207
221
  - ApiKeyAuthHeader: []
208
222
  - ApiKeyAuthQuery: []
@@ -91,6 +91,9 @@ paths:
91
91
  taskId: f91ec747-1dc6-4be5-be4b-4d6ff66ed386
92
92
  inputIds:
93
93
  - a5f8aca9-d19a-4ee0-90e3-d15f62df1e06
94
+ headers:
95
+ X-AF-Credits-Cost:
96
+ $ref: '#/components/headers/X-AF-Credits-Cost'
94
97
  '400':
95
98
  description: Bad Request — Missing/invalid parameters or file ID
96
99
  content:
@@ -122,6 +125,9 @@ paths:
122
125
  message: Please provide a valid file ID
123
126
  schema:
124
127
  $ref: '#/components/schemas/ErrorResponse'
128
+ headers:
129
+ X-AF-Credits-Cost:
130
+ $ref: '#/components/headers/X-AF-Credits-Cost'
125
131
  '415':
126
132
  description: Unsupported Media Type — File type not supported
127
133
  content:
@@ -137,6 +143,9 @@ paths:
137
143
  status: 415
138
144
  error: Unsupported File Type
139
145
  message: The provided file type is not supported. Refer to the documentation for valid file types.
146
+ headers:
147
+ X-AF-Credits-Cost:
148
+ $ref: '#/components/headers/X-AF-Credits-Cost'
140
149
  operationId: decryptPdf
141
150
  components:
142
151
  securitySchemes:
@@ -197,6 +206,11 @@ components:
197
206
  type: string
198
207
  format: date-time
199
208
  description: Timestamp when the error occurred (ISO 8601).
209
+ headers:
210
+ X-AF-Credits-Cost:
211
+ description: Specifies the number of credits consumed by the current request.
212
+ schema:
213
+ type: integer
200
214
  security:
201
215
  - ApiKeyAuthHeader: []
202
216
  - ApiKeyAuthQuery: []
@@ -103,6 +103,9 @@ paths:
103
103
  taskId: c11f7d84-33f5-46da-a64c-e70b3704284e
104
104
  inputIds:
105
105
  - 2d11e722-85cc-4105-b345-f395d48b326e
106
+ headers:
107
+ X-AF-Credits-Cost:
108
+ $ref: '#/components/headers/X-AF-Credits-Cost'
106
109
  '400':
107
110
  description: Bad Request — Missing/invalid parameters, file ID, or password
108
111
  content:
@@ -134,6 +137,9 @@ paths:
134
137
  message: Please provide a valid file ID
135
138
  schema:
136
139
  $ref: '#/components/schemas/ErrorResponse'
140
+ headers:
141
+ X-AF-Credits-Cost:
142
+ $ref: '#/components/headers/X-AF-Credits-Cost'
137
143
  '415':
138
144
  description: Unsupported Media Type — File type not supported
139
145
  content:
@@ -149,6 +155,9 @@ paths:
149
155
  message: The provided file type is not supported. Refer to the documentation for valid file types.
150
156
  schema:
151
157
  $ref: '#/components/schemas/ErrorResponse'
158
+ headers:
159
+ X-AF-Credits-Cost:
160
+ $ref: '#/components/headers/X-AF-Credits-Cost'
152
161
  operationId: encryptPdf
153
162
  components:
154
163
  securitySchemes:
@@ -208,6 +217,11 @@ components:
208
217
  type: string
209
218
  format: date-time
210
219
  description: Timestamp when the error occurred (ISO 8601).
220
+ headers:
221
+ X-AF-Credits-Cost:
222
+ description: Specifies the number of credits consumed by the current request.
223
+ schema:
224
+ type: integer
211
225
  security:
212
226
  - ApiKeyAuthHeader: []
213
227
  - ApiKeyAuthQuery: []
@@ -97,6 +97,9 @@ paths:
97
97
  taskId: dabcbcf5-d4ba-4143-bc34-3a8db6c8476e
98
98
  inputIds:
99
99
  - 01a77122-c457-475d-a6f2-f88cd4ad8924
100
+ headers:
101
+ X-AF-Credits-Cost:
102
+ $ref: '#/components/headers/X-AF-Credits-Cost'
100
103
  '400':
101
104
  description: Bad Request — Missing/invalid parameters or file ID
102
105
  content:
@@ -120,6 +123,9 @@ paths:
120
123
  timestamp: '2026-07-27T10:53:19.182Z'
121
124
  schema:
122
125
  $ref: '#/components/schemas/ErrorResponse'
126
+ headers:
127
+ X-AF-Credits-Cost:
128
+ $ref: '#/components/headers/X-AF-Credits-Cost'
123
129
  '415':
124
130
  description: Unsupported Media Type — File type not supported
125
131
  content:
@@ -135,6 +141,9 @@ paths:
135
141
  message: The provided file type is not supported. Refer to the documentation for valid file types.
136
142
  schema:
137
143
  $ref: '#/components/schemas/ErrorResponse'
144
+ headers:
145
+ X-AF-Credits-Cost:
146
+ $ref: '#/components/headers/X-AF-Credits-Cost'
138
147
  operationId: extractPdfPages
139
148
  components:
140
149
  securitySchemes:
@@ -194,6 +203,11 @@ components:
194
203
  type: string
195
204
  format: date-time
196
205
  description: Timestamp when the error occurred (ISO 8601).
206
+ headers:
207
+ X-AF-Credits-Cost:
208
+ description: Specifies the number of credits consumed by the current request.
209
+ schema:
210
+ type: integer
197
211
  security:
198
212
  - ApiKeyAuthHeader: []
199
213
  - ApiKeyAuthQuery: []
@@ -50,6 +50,9 @@ paths:
50
50
  fileType: pdf
51
51
  fileCreationTime: '2026-07-27T10:46:36'
52
52
  fileDeletionTime: '2026-08-26'
53
+ headers:
54
+ X-AF-Credits-Cost:
55
+ $ref: '#/components/headers/X-AF-Credits-Cost'
53
56
  '400':
54
57
  description: Bad Request — Missing required file_id parameter
55
58
  content:
@@ -65,6 +68,9 @@ paths:
65
68
  timestamp: '2026-07-27T10:46:38.333Z'
66
69
  schema:
67
70
  $ref: '#/components/schemas/ErrorResponse'
71
+ headers:
72
+ X-AF-Credits-Cost:
73
+ $ref: '#/components/headers/X-AF-Credits-Cost'
68
74
  '404':
69
75
  description: File ID Not Found
70
76
  content:
@@ -80,6 +86,9 @@ paths:
80
86
  message: Please provide a valid file ID.
81
87
  schema:
82
88
  $ref: '#/components/schemas/ErrorResponse'
89
+ headers:
90
+ X-AF-Credits-Cost:
91
+ $ref: '#/components/headers/X-AF-Credits-Cost'
83
92
  operationId: getFileStatus
84
93
  components:
85
94
  securitySchemes:
@@ -143,6 +152,11 @@ components:
143
152
  type: string
144
153
  format: date-time
145
154
  description: Timestamp when the error occurred (ISO 8601).
155
+ headers:
156
+ X-AF-Credits-Cost:
157
+ description: Specifies the number of credits consumed by the current request.
158
+ schema:
159
+ type: integer
146
160
  security:
147
161
  - ApiKeyAuthHeader: []
148
162
  - ApiKeyAuthQuery: []
@@ -48,6 +48,9 @@ paths:
48
48
  fileId: abc123
49
49
  success: true
50
50
  message: File deleted successfully.
51
+ headers:
52
+ X-AF-Credits-Cost:
53
+ $ref: '#/components/headers/X-AF-Credits-Cost'
51
54
  '400':
52
55
  description: Bad Request — Missing required file_id parameter
53
56
  content:
@@ -63,6 +66,9 @@ paths:
63
66
  timestamp: '2026-07-27T10:45:56.656Z'
64
67
  schema:
65
68
  $ref: '#/components/schemas/ErrorResponse'
69
+ headers:
70
+ X-AF-Credits-Cost:
71
+ $ref: '#/components/headers/X-AF-Credits-Cost'
66
72
  '404':
67
73
  description: File ID Not Found
68
74
  content:
@@ -78,6 +84,9 @@ paths:
78
84
  message: Please provide a valid file ID.
79
85
  schema:
80
86
  $ref: '#/components/schemas/ErrorResponse'
87
+ headers:
88
+ X-AF-Credits-Cost:
89
+ $ref: '#/components/headers/X-AF-Credits-Cost'
81
90
  operationId: deleteFile
82
91
  components:
83
92
  securitySchemes:
@@ -131,6 +140,11 @@ components:
131
140
  type: string
132
141
  format: date-time
133
142
  description: Timestamp when the error occurred (ISO 8601).
143
+ headers:
144
+ X-AF-Credits-Cost:
145
+ description: Specifies the number of credits consumed by the current request.
146
+ schema:
147
+ type: integer
134
148
  security:
135
149
  - ApiKeyAuthHeader: []
136
150
  - ApiKeyAuthQuery: []
@@ -44,6 +44,9 @@ paths:
44
44
  fileName: document.pdf
45
45
  - fileId: def456
46
46
  fileName: report.pdf
47
+ headers:
48
+ X-AF-Credits-Cost:
49
+ $ref: '#/components/headers/X-AF-Credits-Cost'
47
50
  operationId: getFiles
48
51
  components:
49
52
  securitySchemes:
@@ -80,6 +83,11 @@ components:
80
83
  type: string
81
84
  description: Original name of the uploaded file.
82
85
  required: []
86
+ headers:
87
+ X-AF-Credits-Cost:
88
+ description: Specifies the number of credits consumed by the current request.
89
+ schema:
90
+ type: integer
83
91
  security:
84
92
  - ApiKeyAuthHeader: []
85
93
  - ApiKeyAuthQuery: []