@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
@@ -0,0 +1,348 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: PDF Generator API - Create PDFs from Templates
4
+ version: 1.0.0
5
+ description: Generate PDFs from templates you design once in the APIFreaks PDF Template Builder. Send JSON in the request body or provide a data_url, and the API renders your template into a hosted PDF document. 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:
15
+ post:
16
+ tags:
17
+ - PDF Template APIs
18
+ summary: Generate a PDF from a template
19
+ description: Renders the template identified by template_id with the JSON data supplied in the request body (or fetched from data_url). Returns a hosted URL for the generated PDF. Provide either a request body or a data_url; one of the two is required. The keys of the data object are the fields you bound when you designed the template in the APIFreaks PDF Template Builder, so the exact shape is up to you. Pin the version parameter to a specific template version (e.g. version=v2) so later design changes never touch what is already live; omit it to use the latest version.
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
+ - name: data_url
35
+ in: query
36
+ required: false
37
+ schema:
38
+ type: string
39
+ format: uri
40
+ description: A URL the API fetches your JSON data from, instead of the request body. Provide this when you are not sending a request body.
41
+ requestBody:
42
+ description: The template's data as a JSON object. The keys are the fields you bound when you designed the template, so the exact shape is up to you. Provide the body when you are not passing a data_url; one of the two is required.
43
+ required: false
44
+ content:
45
+ application/json:
46
+ schema:
47
+ type: object
48
+ additionalProperties: true
49
+ description: Free-form JSON object whose keys map to the fields bound in the template.
50
+ examples:
51
+ resumeTemplate:
52
+ summary: Resume template data
53
+ value:
54
+ candidate_name: Ava Thompson
55
+ candidate_title: Senior Operations Analyst
56
+ email: ava.thompson@example.com
57
+ phone: +1 (555) 381-2048
58
+ city: Austin, TX
59
+ portfolio_url: portfolio.example.com
60
+ profile_summary: Analytical operations professional with 8+ years of experience improving reporting pipelines, streamlining process documentation, and coordinating cross-functional delivery for distributed teams across multiple time zones.
61
+ company_name: Northwind Logistics
62
+ job_title: Operations Analyst
63
+ employment_period: 2021 - Present
64
+ job_achievement_1: Led weekly KPI reporting for finance, fulfillment, and customer success stakeholders across three business units.
65
+ job_achievement_2: Reduced manual reconciliation work by 35% through workflow redesign and documentation automation.
66
+ job_achievement_3: Spearheaded a cross-team initiative that improved on-time delivery metrics by 18% within six months.
67
+ skills:
68
+ - skill: Process Improvement
69
+ level: Advanced
70
+ years: '7'
71
+ - skill: Stakeholder Reporting
72
+ level: Expert
73
+ years: '8'
74
+ - skill: Cross-functional Coordination
75
+ level: Advanced
76
+ years: '5'
77
+ - skill: Workflow Documentation
78
+ level: Advanced
79
+ years: '6'
80
+ degree: B.S. in Information Systems
81
+ institution: University of Texas
82
+ graduation_year: '2018'
83
+ certification_1: Certified Business Analysis Professional (CBAP)
84
+ certification_2: Six Sigma Green Belt
85
+ languages: English (Native), Spanish (Professional)
86
+ businessReport:
87
+ summary: Business report template data
88
+ value:
89
+ report_title: Quarterly Business Report
90
+ report_period: Q4 2024
91
+ prepared_by: Marketing Team
92
+ revenue: 125000
93
+ growth_rate: 15
94
+ customer_count: 520
95
+ monthly_comparison:
96
+ - metric: Revenue
97
+ previous: $108,000
98
+ current: $125,000
99
+ change: +15.7%
100
+ - metric: Active Customers
101
+ previous: '480'
102
+ current: '520'
103
+ change: +8.3%
104
+ responses:
105
+ '200':
106
+ description: PDF generated successfully. The response contains the hosted URL of the rendered PDF along with its creation and expiration times.
107
+ content:
108
+ application/json:
109
+ schema:
110
+ $ref: '#/components/schemas/TemplateGenerationResponse'
111
+ examples:
112
+ success:
113
+ summary: Generated PDF
114
+ value:
115
+ template_id: 73691bce-1c58-4370-acc6-64b2dd14f81c
116
+ pdf_url: https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/pdf_templates/73691bce-1c58-4370-acc6-64b2dd14f81c/Candidate%20Resume_20260810141214723405.pdf
117
+ created_at: '2026-08-10T14:12:17.673Z'
118
+ expiration_time: '2026-11-10T14:12:17.673Z'
119
+ headers:
120
+ X-AF-Credits-Cost:
121
+ $ref: '#/components/headers/X-AF-Credits-Cost'
122
+ '400':
123
+ description: Bad Request — Missing or malformed parameters, missing data, or an unreachable data_url.
124
+ content:
125
+ application/json:
126
+ schema:
127
+ $ref: '#/components/schemas/ErrorResponse'
128
+ examples:
129
+ MissingTemplateId:
130
+ summary: template_id is missing
131
+ value:
132
+ error: Invalid Param Exception
133
+ message: please pass correct parameters
134
+ path: /v1.0/pdf/template/generate
135
+ status: 400
136
+ timestamp: '2026-08-10T14:13:13.195Z'
137
+ InvalidVersion:
138
+ summary: version does not start with v
139
+ value:
140
+ timestamp: '2026-08-10T14:13:13.689Z'
141
+ path: /v1.0/generate-pdf
142
+ status: 400
143
+ error: Invalid Template Version
144
+ message: Please provide a valid template version starting with 'v'.
145
+ NoData:
146
+ summary: No data supplied to fill the template
147
+ value:
148
+ timestamp: '2026-08-10T14:13:14.172Z'
149
+ path: /v1.0/generate-pdf
150
+ status: 400
151
+ error: Template Data Not Provided
152
+ message: No data provided for the template. Please provide valid data to generate pdf.
153
+ headers:
154
+ X-AF-Credits-Cost:
155
+ $ref: '#/components/headers/X-AF-Credits-Cost'
156
+ '401':
157
+ description: Unauthorized — The API key is missing or invalid.
158
+ content:
159
+ application/json:
160
+ schema:
161
+ $ref: '#/components/schemas/ErrorResponse'
162
+ examples:
163
+ InvalidApiKey:
164
+ summary: Provided API key is invalid
165
+ value:
166
+ error: API Access Exception
167
+ message: 'Provided API key is invalid. [For Technical Support: support@apifreaks.com]'
168
+ path: /v1.0/pdf/template/generate
169
+ status: 401
170
+ timestamp: '2026-08-10T14:13:14.996Z'
171
+ headers:
172
+ X-AF-Credits-Cost:
173
+ $ref: '#/components/headers/X-AF-Credits-Cost'
174
+ '403':
175
+ description: Forbidden — The account does not have access to this template.
176
+ content:
177
+ application/json:
178
+ schema:
179
+ $ref: '#/components/schemas/ErrorResponse'
180
+ examples:
181
+ AccessDenied:
182
+ summary: No access to the template
183
+ value:
184
+ timestamp: '2026-08-10T14:13:15.000Z'
185
+ path: /v1.0/generate-pdf
186
+ status: 403
187
+ error: Template Access Denied
188
+ message: Your account does not have access to this template.
189
+ headers:
190
+ X-AF-Credits-Cost:
191
+ $ref: '#/components/headers/X-AF-Credits-Cost'
192
+ '404':
193
+ description: Not Found — No template matches the template_id, or the requested version does not exist.
194
+ content:
195
+ application/json:
196
+ schema:
197
+ $ref: '#/components/schemas/ErrorResponse'
198
+ examples:
199
+ TemplateNotFound:
200
+ summary: No template matches the template_id
201
+ value:
202
+ timestamp: '2026-08-10T14:13:14.677Z'
203
+ path: /v1.0/generate-pdf
204
+ status: 404
205
+ error: Template Not Found
206
+ message: Please provide a valid template ID.
207
+ headers:
208
+ X-AF-Credits-Cost:
209
+ $ref: '#/components/headers/X-AF-Credits-Cost'
210
+ '415':
211
+ description: Unsupported Media Type — The request Content-Type is not supported for this endpoint.
212
+ content:
213
+ application/json:
214
+ schema:
215
+ $ref: '#/components/schemas/ErrorResponse'
216
+ examples:
217
+ UnsupportedMediaType:
218
+ summary: Content-Type is not supported
219
+ value:
220
+ timestamp: '2026-08-10T14:13:15.500Z'
221
+ path: /v1.0/generate-pdf
222
+ status: 415
223
+ error: Unsupported Media Type
224
+ message: The request Content-Type is not supported for this endpoint.
225
+ headers:
226
+ X-AF-Credits-Cost:
227
+ $ref: '#/components/headers/X-AF-Credits-Cost'
228
+ '422':
229
+ description: Unprocessable Entity — The request contains invalid or missing data.
230
+ content:
231
+ application/json:
232
+ schema:
233
+ $ref: '#/components/schemas/ErrorResponse'
234
+ examples:
235
+ InvalidData:
236
+ summary: Invalid or missing data
237
+ value:
238
+ timestamp: '2026-08-10T14:13:16.100Z'
239
+ path: /v1.0/generate-pdf
240
+ status: 422
241
+ error: Invalid Template Data
242
+ message: The request contains invalid or missing data.
243
+ headers:
244
+ X-AF-Credits-Cost:
245
+ $ref: '#/components/headers/X-AF-Credits-Cost'
246
+ '500':
247
+ description: Internal Server Error — An unexpected error occurred, or the PDF could not be generated.
248
+ content:
249
+ application/json:
250
+ schema:
251
+ $ref: '#/components/schemas/ErrorResponse'
252
+ examples:
253
+ GenerationFailed:
254
+ summary: PDF could not be generated
255
+ value:
256
+ timestamp: '2026-08-10T14:13:16.700Z'
257
+ path: /v1.0/generate-pdf
258
+ status: 500
259
+ error: PDF Generation Failed
260
+ message: The PDF could not be generated. Try the request again.
261
+ headers:
262
+ X-AF-Credits-Cost:
263
+ $ref: '#/components/headers/X-AF-Credits-Cost'
264
+ '504':
265
+ description: Gateway Timeout — The request went past the 100 second processing limit.
266
+ content:
267
+ application/json:
268
+ schema:
269
+ $ref: '#/components/schemas/ErrorResponse'
270
+ examples:
271
+ ProcessingLimit:
272
+ summary: Request exceeded the 100 second processing limit
273
+ value:
274
+ timestamp: '2026-08-10T14:13:17.300Z'
275
+ path: /v1.0/generate-pdf
276
+ status: 504
277
+ error: Processing Timeout
278
+ message: The request went past the 100 second processing limit. Reduce the input size or retry.
279
+ headers:
280
+ X-AF-Credits-Cost:
281
+ $ref: '#/components/headers/X-AF-Credits-Cost'
282
+ operationId: generatePdfFromTemplate
283
+ components:
284
+ securitySchemes:
285
+ ApiKeyAuthHeader:
286
+ type: apiKey
287
+ in: header
288
+ name: X-apikey
289
+ description: Pass your API key via the X-apikey request header.
290
+ ApiKeyAuthQuery:
291
+ type: apiKey
292
+ in: query
293
+ name: apiKey
294
+ description: Pass your API key via the apiKey query parameter.
295
+ schemas:
296
+ TemplateGenerationResponse:
297
+ type: object
298
+ description: Result of a PDF generation request, containing the hosted URL of the generated PDF.
299
+ required:
300
+ - template_id
301
+ - pdf_url
302
+ - created_at
303
+ - expiration_time
304
+ properties:
305
+ template_id:
306
+ type: string
307
+ description: The template that was rendered.
308
+ pdf_url:
309
+ type: string
310
+ description: Hosted URL of the generated PDF.
311
+ created_at:
312
+ type: string
313
+ format: date-time
314
+ description: When the PDF was generated (ISO 8601).
315
+ expiration_time:
316
+ type: string
317
+ format: date-time
318
+ description: When the hosted PDF expires (ISO 8601).
319
+ ErrorResponse:
320
+ type: object
321
+ description: Standard error envelope returned by the API on failed requests.
322
+ required:
323
+ - message
324
+ properties:
325
+ error:
326
+ type: string
327
+ description: Short error category or exception type.
328
+ message:
329
+ type: string
330
+ description: Human-readable error message describing the failure.
331
+ path:
332
+ type: string
333
+ description: API endpoint path that produced the error.
334
+ status:
335
+ type: integer
336
+ description: HTTP status code returned with the error.
337
+ timestamp:
338
+ type: string
339
+ format: date-time
340
+ description: Timestamp when the error occurred (ISO 8601).
341
+ headers:
342
+ X-AF-Credits-Cost:
343
+ description: Specifies the number of credits consumed by the current request.
344
+ schema:
345
+ type: integer
346
+ security:
347
+ - ApiKeyAuthHeader: []
348
+ - ApiKeyAuthQuery: []
@@ -46,6 +46,9 @@ paths:
46
46
  schema:
47
47
  type: string
48
48
  format: binary
49
+ headers:
50
+ X-AF-Credits-Cost:
51
+ $ref: '#/components/headers/X-AF-Credits-Cost'
49
52
  '400':
50
53
  description: Bad Request — Missing required resource_id parameter
51
54
  content:
@@ -61,6 +64,9 @@ paths:
61
64
  timestamp: '2026-07-27T10:47:12.356Z'
62
65
  schema:
63
66
  $ref: '#/components/schemas/ErrorResponse'
67
+ headers:
68
+ X-AF-Credits-Cost:
69
+ $ref: '#/components/headers/X-AF-Credits-Cost'
64
70
  '404':
65
71
  description: Resource ID Not Found
66
72
  content:
@@ -76,6 +82,9 @@ paths:
76
82
  message: Please provide a valid resource ID.
77
83
  schema:
78
84
  $ref: '#/components/schemas/ErrorResponse'
85
+ headers:
86
+ X-AF-Credits-Cost:
87
+ $ref: '#/components/headers/X-AF-Credits-Cost'
79
88
  operationId: downloadResource
80
89
  components:
81
90
  securitySchemes:
@@ -112,6 +121,11 @@ components:
112
121
  type: string
113
122
  format: date-time
114
123
  description: Timestamp when the error occurred (ISO 8601).
124
+ headers:
125
+ X-AF-Credits-Cost:
126
+ description: Specifies the number of credits consumed by the current request.
127
+ schema:
128
+ type: integer
115
129
  security:
116
130
  - ApiKeyAuthHeader: []
117
131
  - ApiKeyAuthQuery: []
@@ -60,6 +60,9 @@ paths:
60
60
  value:
61
61
  fileName: binarytest.pdf
62
62
  fileId: b0fbf78c-8fe2-49b6-ad3d-63efb4ac8e58
63
+ headers:
64
+ X-AF-Credits-Cost:
65
+ $ref: '#/components/headers/X-AF-Credits-Cost'
63
66
  '400':
64
67
  description: Bad Request — Missing file_name or empty body
65
68
  content:
@@ -83,6 +86,9 @@ paths:
83
86
  message: Invalid parameter value provided for 'dataBufferFlux'.
84
87
  schema:
85
88
  $ref: '#/components/schemas/ErrorResponse'
89
+ headers:
90
+ X-AF-Credits-Cost:
91
+ $ref: '#/components/headers/X-AF-Credits-Cost'
86
92
  '415':
87
93
  description: Unsupported Media Type — File extension not supported
88
94
  content:
@@ -98,6 +104,9 @@ paths:
98
104
  message: The provided file type is not supported. Refer to the documentation for valid file types.
99
105
  schema:
100
106
  $ref: '#/components/schemas/ErrorResponse'
107
+ headers:
108
+ X-AF-Credits-Cost:
109
+ $ref: '#/components/headers/X-AF-Credits-Cost'
101
110
  operationId: uploadResourceBinary
102
111
  components:
103
112
  securitySchemes:
@@ -147,6 +156,11 @@ components:
147
156
  type: string
148
157
  format: date-time
149
158
  description: Timestamp when the error occurred (ISO 8601).
159
+ headers:
160
+ X-AF-Credits-Cost:
161
+ description: Specifies the number of credits consumed by the current request.
162
+ schema:
163
+ type: integer
150
164
  security:
151
165
  - ApiKeyAuthHeader: []
152
166
  - ApiKeyAuthQuery: []
@@ -63,6 +63,9 @@ paths:
63
63
  fileId: 9922d104-25a0-432c-8c26-2be2ba14798a
64
64
  - fileName: test.pdf
65
65
  fileId: 8a6b3332-6fe0-42b0-a808-df7a36926a79
66
+ headers:
67
+ X-AF-Credits-Cost:
68
+ $ref: '#/components/headers/X-AF-Credits-Cost'
66
69
  '400':
67
70
  description: Bad Request — Missing or invalid parameters
68
71
  content:
@@ -78,6 +81,9 @@ paths:
78
81
  status: 400
79
82
  error: Missing or Invalid Parameters
80
83
  message: One or more required parameters are missing or incorrect.
84
+ headers:
85
+ X-AF-Credits-Cost:
86
+ $ref: '#/components/headers/X-AF-Credits-Cost'
81
87
  '415':
82
88
  description: Unsupported Media Type — File type not supported
83
89
  content:
@@ -93,6 +99,9 @@ paths:
93
99
  status: 415
94
100
  error: Unsupported File Type
95
101
  message: The provided file type is not supported. Refer to the documentation for valid file types.
102
+ headers:
103
+ X-AF-Credits-Cost:
104
+ $ref: '#/components/headers/X-AF-Credits-Cost'
96
105
  components:
97
106
  securitySchemes:
98
107
  ApiKeyAuthHeader:
@@ -158,6 +167,11 @@ components:
158
167
  type: string
159
168
  format: date-time
160
169
  description: Timestamp when the error occurred (ISO 8601).
170
+ headers:
171
+ X-AF-Credits-Cost:
172
+ description: Specifies the number of credits consumed by the current request.
173
+ schema:
174
+ type: integer
161
175
  security:
162
176
  - ApiKeyAuthHeader: []
163
177
  - ApiKeyAuthQuery: []
@@ -120,6 +120,9 @@ paths:
120
120
  taskId: 42839406-7e1b-4f64-96bb-d94bb054e8d3
121
121
  inputIds:
122
122
  - 2c682ade-eccc-4ab5-9c06-d16e415cbecb
123
+ headers:
124
+ X-AF-Credits-Cost:
125
+ $ref: '#/components/headers/X-AF-Credits-Cost'
123
126
  '400':
124
127
  description: Bad Request — Missing/invalid parameters, file ID, or password
125
128
  content:
@@ -167,6 +170,9 @@ paths:
167
170
  message: Please provide valid PDF restrictions. Refer to the documentation for valid PDF restrictions.
168
171
  schema:
169
172
  $ref: '#/components/schemas/ErrorResponse'
173
+ headers:
174
+ X-AF-Credits-Cost:
175
+ $ref: '#/components/headers/X-AF-Credits-Cost'
170
176
  '415':
171
177
  description: Unsupported Media Type — File type not supported
172
178
  content:
@@ -182,6 +188,9 @@ paths:
182
188
  status: 415
183
189
  error: Unsupported File Type
184
190
  message: The provided file type is not supported. Refer to the documentation for valid file types.
191
+ headers:
192
+ X-AF-Credits-Cost:
193
+ $ref: '#/components/headers/X-AF-Credits-Cost'
185
194
  operationId: restrictPdf
186
195
  components:
187
196
  securitySchemes:
@@ -241,6 +250,11 @@ components:
241
250
  type: string
242
251
  format: date-time
243
252
  description: Timestamp when the error occurred (ISO 8601).
253
+ headers:
254
+ X-AF-Credits-Cost:
255
+ description: Specifies the number of credits consumed by the current request.
256
+ schema:
257
+ type: integer
244
258
  security:
245
259
  - ApiKeyAuthHeader: []
246
260
  - ApiKeyAuthQuery: []
@@ -114,6 +114,9 @@ paths:
114
114
  taskId: a533a95c-b3fb-49f0-abb1-bef2f3e805ef
115
115
  inputIds:
116
116
  - 62f910b6-69ce-4cbc-8285-eee5f16467be
117
+ headers:
118
+ X-AF-Credits-Cost:
119
+ $ref: '#/components/headers/X-AF-Credits-Cost'
117
120
  '400':
118
121
  description: Bad Request — Invalid file ID
119
122
  content:
@@ -129,6 +132,9 @@ paths:
129
132
  timestamp: '2026-07-27T10:54:00.793Z'
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: splitPdf
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: []
@@ -67,6 +67,9 @@ paths:
67
67
  error: Invalid Page Range
68
68
  message: One or more specified page numbers exceed the total number of pages in the PDF document.
69
69
  expiresAt: '2026-08-03 10:52:12'
70
+ headers:
71
+ X-AF-Credits-Cost:
72
+ $ref: '#/components/headers/X-AF-Credits-Cost'
70
73
  '400':
71
74
  description: Bad Request — Missing required task_id parameter
72
75
  content:
@@ -82,6 +85,9 @@ paths:
82
85
  timestamp: '2026-07-27T10:49:06.412Z'
83
86
  schema:
84
87
  $ref: '#/components/schemas/ErrorResponse'
88
+ headers:
89
+ X-AF-Credits-Cost:
90
+ $ref: '#/components/headers/X-AF-Credits-Cost'
85
91
  '404':
86
92
  description: Task ID Not Found
87
93
  content:
@@ -97,6 +103,9 @@ paths:
97
103
  message: Please provide a valid task ID.
98
104
  schema:
99
105
  $ref: '#/components/schemas/ErrorResponse'
106
+ headers:
107
+ X-AF-Credits-Cost:
108
+ $ref: '#/components/headers/X-AF-Credits-Cost'
100
109
  operationId: getTaskStatus
101
110
  components:
102
111
  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: []