@apifreaks/openapi-specs 0.1.1 → 0.2.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.
package/dist/index.cjs CHANGED
@@ -17293,6 +17293,298 @@ var astronomy_data_default = {
17293
17293
  ]
17294
17294
  };
17295
17295
 
17296
+ // specs/pdf/bulk-pdf-generator.json
17297
+ var bulk_pdf_generator_default = {
17298
+ openapi: "3.1.1",
17299
+ info: {
17300
+ title: "PDF Generator API - Bulk PDF Generation from CSV",
17301
+ version: "1.0.0",
17302
+ 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.",
17303
+ contact: {
17304
+ name: "APIFreaks Support",
17305
+ url: "https://apifreaks.com/contact",
17306
+ email: "support@apifreaks.com"
17307
+ }
17308
+ },
17309
+ servers: [
17310
+ {
17311
+ url: "https://api.apifreaks.com/v1.0",
17312
+ description: "PDF Generator API Server"
17313
+ }
17314
+ ],
17315
+ paths: {
17316
+ "/pdf/template/generate/bulk": {
17317
+ post: {
17318
+ tags: ["PDF Template APIs"],
17319
+ summary: "Generate PDFs in bulk from a CSV",
17320
+ 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.",
17321
+ parameters: [
17322
+ {
17323
+ name: "template_id",
17324
+ in: "query",
17325
+ required: true,
17326
+ schema: {
17327
+ type: "string"
17328
+ },
17329
+ description: "The template to render, from the APIFreaks PDF Template Builder. Copy it from your dashboard when you save the template."
17330
+ },
17331
+ {
17332
+ name: "version",
17333
+ in: "query",
17334
+ required: false,
17335
+ schema: {
17336
+ type: "string",
17337
+ pattern: "^v"
17338
+ },
17339
+ 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."
17340
+ }
17341
+ ],
17342
+ requestBody: {
17343
+ description: "Multipart form-data body carrying the CSV file to render. Each row in the CSV is one record and produces one PDF.",
17344
+ required: true,
17345
+ content: {
17346
+ "multipart/form-data": {
17347
+ schema: {
17348
+ $ref: "#/components/schemas/CsvUploadRequest"
17349
+ }
17350
+ }
17351
+ }
17352
+ },
17353
+ responses: {
17354
+ "200": {
17355
+ description: "PDFs generated successfully. The response is an array of results, one entry per CSV row, each with its own pdf_url.",
17356
+ content: {
17357
+ "application/json": {
17358
+ schema: {
17359
+ type: "array",
17360
+ items: {
17361
+ $ref: "#/components/schemas/TemplateGenerationResponse"
17362
+ }
17363
+ },
17364
+ examples: {
17365
+ success: {
17366
+ summary: "Generated PDFs for two rows",
17367
+ value: [
17368
+ {
17369
+ template_id: "73691bce-1c58-4370-acc6-64b2dd14f81c",
17370
+ 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",
17371
+ created_at: "2026-08-10T14:12:47.887Z",
17372
+ expiration_time: "2026-11-10T14:12:47.887Z"
17373
+ },
17374
+ {
17375
+ template_id: "73691bce-1c58-4370-acc6-64b2dd14f81c",
17376
+ 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",
17377
+ created_at: "2026-08-10T14:12:47.940Z",
17378
+ expiration_time: "2026-11-10T14:12:47.940Z"
17379
+ }
17380
+ ]
17381
+ }
17382
+ }
17383
+ }
17384
+ }
17385
+ },
17386
+ "400": {
17387
+ description: "Bad Request \u2014 Missing parameters, a file that is not a CSV, or data larger than 10 MB.",
17388
+ content: {
17389
+ "application/json": {
17390
+ schema: {
17391
+ $ref: "#/components/schemas/ErrorResponse"
17392
+ },
17393
+ examples: {
17394
+ CsvFileRequired: {
17395
+ summary: "Uploaded file is not a CSV",
17396
+ value: {
17397
+ timestamp: "2026-08-10T14:13:14.497Z",
17398
+ path: "/v1.0/generate-pdf/bulk",
17399
+ status: 400,
17400
+ error: "CSV File Required",
17401
+ message: "Only CSV files are supported. Please upload a valid CSV file."
17402
+ }
17403
+ }
17404
+ }
17405
+ }
17406
+ }
17407
+ },
17408
+ "401": {
17409
+ description: "Unauthorized \u2014 The API key is missing or invalid.",
17410
+ content: {
17411
+ "application/json": {
17412
+ schema: {
17413
+ $ref: "#/components/schemas/ErrorResponse"
17414
+ },
17415
+ examples: {
17416
+ InvalidApiKey: {
17417
+ summary: "Provided API key is invalid",
17418
+ value: {
17419
+ error: "API Access Exception",
17420
+ message: "Provided API key is invalid. [For Technical Support: support@apifreaks.com]",
17421
+ path: "/v1.0/pdf/template/generate/bulk",
17422
+ status: 401,
17423
+ timestamp: "2026-08-10T14:13:14.996Z"
17424
+ }
17425
+ }
17426
+ }
17427
+ }
17428
+ }
17429
+ },
17430
+ "403": {
17431
+ description: "Forbidden \u2014 The account does not have access to this template.",
17432
+ content: {
17433
+ "application/json": {
17434
+ schema: {
17435
+ $ref: "#/components/schemas/ErrorResponse"
17436
+ }
17437
+ }
17438
+ }
17439
+ },
17440
+ "404": {
17441
+ description: "Not Found \u2014 No template matches the template_id, or the requested version does not exist.",
17442
+ content: {
17443
+ "application/json": {
17444
+ schema: {
17445
+ $ref: "#/components/schemas/ErrorResponse"
17446
+ }
17447
+ }
17448
+ }
17449
+ },
17450
+ "415": {
17451
+ description: "Unsupported Media Type \u2014 The request Content-Type is not supported for this endpoint.",
17452
+ content: {
17453
+ "application/json": {
17454
+ schema: {
17455
+ $ref: "#/components/schemas/ErrorResponse"
17456
+ }
17457
+ }
17458
+ }
17459
+ },
17460
+ "422": {
17461
+ description: "Unprocessable Entity \u2014 The request contains invalid or missing data.",
17462
+ content: {
17463
+ "application/json": {
17464
+ schema: {
17465
+ $ref: "#/components/schemas/ErrorResponse"
17466
+ }
17467
+ }
17468
+ }
17469
+ },
17470
+ "500": {
17471
+ description: "Internal Server Error \u2014 An unexpected error occurred, or the PDF could not be generated.",
17472
+ content: {
17473
+ "application/json": {
17474
+ schema: {
17475
+ $ref: "#/components/schemas/ErrorResponse"
17476
+ }
17477
+ }
17478
+ }
17479
+ },
17480
+ "504": {
17481
+ description: "Gateway Timeout \u2014 The request went past the 100 second processing limit.",
17482
+ content: {
17483
+ "application/json": {
17484
+ schema: {
17485
+ $ref: "#/components/schemas/ErrorResponse"
17486
+ }
17487
+ }
17488
+ }
17489
+ }
17490
+ },
17491
+ operationId: "generatePdfsFromCsv"
17492
+ }
17493
+ }
17494
+ },
17495
+ components: {
17496
+ securitySchemes: {
17497
+ ApiKeyAuthHeader: {
17498
+ type: "apiKey",
17499
+ in: "header",
17500
+ name: "X-apikey",
17501
+ description: "Pass your API key via the X-apikey request header."
17502
+ },
17503
+ ApiKeyAuthQuery: {
17504
+ type: "apiKey",
17505
+ in: "query",
17506
+ name: "apiKey",
17507
+ description: "Pass your API key via the apiKey query parameter."
17508
+ }
17509
+ },
17510
+ schemas: {
17511
+ TemplateGenerationResponse: {
17512
+ type: "object",
17513
+ description: "Result of a PDF generation request, containing the hosted URL of the generated PDF.",
17514
+ required: ["template_id", "pdf_url", "created_at", "expiration_time"],
17515
+ properties: {
17516
+ template_id: {
17517
+ type: "string",
17518
+ description: "The template that was rendered."
17519
+ },
17520
+ pdf_url: {
17521
+ type: "string",
17522
+ description: "Hosted URL of the generated PDF."
17523
+ },
17524
+ created_at: {
17525
+ type: "string",
17526
+ format: "date-time",
17527
+ description: "When the PDF was generated (ISO 8601)."
17528
+ },
17529
+ expiration_time: {
17530
+ type: "string",
17531
+ format: "date-time",
17532
+ description: "When the hosted PDF expires (ISO 8601)."
17533
+ }
17534
+ }
17535
+ },
17536
+ CsvUploadRequest: {
17537
+ type: "object",
17538
+ description: "Multipart form-data request body containing the CSV file to render in bulk.",
17539
+ required: ["file"],
17540
+ properties: {
17541
+ file: {
17542
+ type: "string",
17543
+ format: "binary",
17544
+ description: "A CSV file uploaded as form-data where each row is one record. One PDF is generated per row."
17545
+ }
17546
+ }
17547
+ },
17548
+ ErrorResponse: {
17549
+ type: "object",
17550
+ description: "Standard error envelope returned by the API on failed requests.",
17551
+ required: ["message"],
17552
+ properties: {
17553
+ error: {
17554
+ type: "string",
17555
+ description: "Short error category or exception type."
17556
+ },
17557
+ message: {
17558
+ type: "string",
17559
+ description: "Human-readable error message describing the failure."
17560
+ },
17561
+ path: {
17562
+ type: "string",
17563
+ description: "API endpoint path that produced the error."
17564
+ },
17565
+ status: {
17566
+ type: "integer",
17567
+ description: "HTTP status code returned with the error."
17568
+ },
17569
+ timestamp: {
17570
+ type: "string",
17571
+ format: "date-time",
17572
+ description: "Timestamp when the error occurred (ISO 8601)."
17573
+ }
17574
+ }
17575
+ }
17576
+ }
17577
+ },
17578
+ security: [
17579
+ {
17580
+ ApiKeyAuthHeader: []
17581
+ },
17582
+ {
17583
+ ApiKeyAuthQuery: []
17584
+ }
17585
+ ]
17586
+ };
17587
+
17296
17588
  // specs/pdf/delete-pdf-page.json
17297
17589
  var delete_pdf_page_default = {
17298
17590
  openapi: "3.1.1",
@@ -17865,8 +18157,8 @@ var merge_pdf_default = {
17865
18157
  openapi: "3.1.1",
17866
18158
  info: {
17867
18159
  title: "Merge PDF API - Instantly Combine PDFs at Scale",
17868
- version: "1.0.0",
17869
- description: "Merge multiple PDF files into a single PDF document in the order they are provided. Accepts up to 100 files per request via file upload or existing file IDs. Returns a task ID for tracking the merge progress.",
18160
+ version: "1.0.1",
18161
+ description: "Merge multiple PDF files into a single PDF document in the order they are provided. Accepts input files up to 1GB in size via file upload or existing file IDs. Returns a task ID for tracking the merge progress.",
17870
18162
  contact: {
17871
18163
  name: "APIFreaks Support",
17872
18164
  url: "https://apifreaks.com/contact",
@@ -19895,6 +20187,452 @@ var pdf_files_default = {
19895
20187
  ]
19896
20188
  };
19897
20189
 
20190
+ // specs/pdf/pdf-generator.json
20191
+ var pdf_generator_default = {
20192
+ openapi: "3.1.1",
20193
+ info: {
20194
+ title: "PDF Generator API - Create PDFs from Templates",
20195
+ version: "1.0.0",
20196
+ 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.",
20197
+ contact: {
20198
+ name: "APIFreaks Support",
20199
+ url: "https://apifreaks.com/contact",
20200
+ email: "support@apifreaks.com"
20201
+ }
20202
+ },
20203
+ servers: [
20204
+ {
20205
+ url: "https://api.apifreaks.com/v1.0",
20206
+ description: "PDF Generator API Server"
20207
+ }
20208
+ ],
20209
+ paths: {
20210
+ "/pdf/template/generate": {
20211
+ post: {
20212
+ tags: ["PDF Template APIs"],
20213
+ summary: "Generate a PDF from a template",
20214
+ 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.",
20215
+ parameters: [
20216
+ {
20217
+ name: "template_id",
20218
+ in: "query",
20219
+ required: true,
20220
+ schema: {
20221
+ type: "string"
20222
+ },
20223
+ description: "The template to render, from the APIFreaks PDF Template Builder. Copy it from your dashboard when you save the template."
20224
+ },
20225
+ {
20226
+ name: "version",
20227
+ in: "query",
20228
+ required: false,
20229
+ schema: {
20230
+ type: "string",
20231
+ pattern: "^v"
20232
+ },
20233
+ 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."
20234
+ },
20235
+ {
20236
+ name: "data_url",
20237
+ in: "query",
20238
+ required: false,
20239
+ schema: {
20240
+ type: "string",
20241
+ format: "uri"
20242
+ },
20243
+ 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."
20244
+ }
20245
+ ],
20246
+ requestBody: {
20247
+ 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.",
20248
+ required: false,
20249
+ content: {
20250
+ "application/json": {
20251
+ schema: {
20252
+ type: "object",
20253
+ additionalProperties: true,
20254
+ description: "Free-form JSON object whose keys map to the fields bound in the template."
20255
+ },
20256
+ examples: {
20257
+ resumeTemplate: {
20258
+ summary: "Resume template data",
20259
+ value: {
20260
+ candidate_name: "Ava Thompson",
20261
+ candidate_title: "Senior Operations Analyst",
20262
+ email: "ava.thompson@example.com",
20263
+ phone: "+1 (555) 381-2048",
20264
+ city: "Austin, TX",
20265
+ portfolio_url: "portfolio.example.com",
20266
+ 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.",
20267
+ company_name: "Northwind Logistics",
20268
+ job_title: "Operations Analyst",
20269
+ employment_period: "2021 - Present",
20270
+ job_achievement_1: "Led weekly KPI reporting for finance, fulfillment, and customer success stakeholders across three business units.",
20271
+ job_achievement_2: "Reduced manual reconciliation work by 35% through workflow redesign and documentation automation.",
20272
+ job_achievement_3: "Spearheaded a cross-team initiative that improved on-time delivery metrics by 18% within six months.",
20273
+ skills: [
20274
+ {
20275
+ skill: "Process Improvement",
20276
+ level: "Advanced",
20277
+ years: "7"
20278
+ },
20279
+ {
20280
+ skill: "Stakeholder Reporting",
20281
+ level: "Expert",
20282
+ years: "8"
20283
+ },
20284
+ {
20285
+ skill: "Cross-functional Coordination",
20286
+ level: "Advanced",
20287
+ years: "5"
20288
+ },
20289
+ {
20290
+ skill: "Workflow Documentation",
20291
+ level: "Advanced",
20292
+ years: "6"
20293
+ }
20294
+ ],
20295
+ degree: "B.S. in Information Systems",
20296
+ institution: "University of Texas",
20297
+ graduation_year: "2018",
20298
+ certification_1: "Certified Business Analysis Professional (CBAP)",
20299
+ certification_2: "Six Sigma Green Belt",
20300
+ languages: "English (Native), Spanish (Professional)"
20301
+ }
20302
+ },
20303
+ businessReport: {
20304
+ summary: "Business report template data",
20305
+ value: {
20306
+ report_title: "Quarterly Business Report",
20307
+ report_period: "Q4 2024",
20308
+ prepared_by: "Marketing Team",
20309
+ revenue: 125e3,
20310
+ growth_rate: 15,
20311
+ customer_count: 520,
20312
+ monthly_comparison: [
20313
+ {
20314
+ metric: "Revenue",
20315
+ previous: "$108,000",
20316
+ current: "$125,000",
20317
+ change: "+15.7%"
20318
+ },
20319
+ {
20320
+ metric: "Active Customers",
20321
+ previous: "480",
20322
+ current: "520",
20323
+ change: "+8.3%"
20324
+ }
20325
+ ]
20326
+ }
20327
+ }
20328
+ }
20329
+ }
20330
+ }
20331
+ },
20332
+ responses: {
20333
+ "200": {
20334
+ description: "PDF generated successfully. The response contains the hosted URL of the rendered PDF along with its creation and expiration times.",
20335
+ content: {
20336
+ "application/json": {
20337
+ schema: {
20338
+ $ref: "#/components/schemas/TemplateGenerationResponse"
20339
+ },
20340
+ examples: {
20341
+ success: {
20342
+ summary: "Generated PDF",
20343
+ value: {
20344
+ template_id: "73691bce-1c58-4370-acc6-64b2dd14f81c",
20345
+ pdf_url: "https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/pdf_templates/73691bce-1c58-4370-acc6-64b2dd14f81c/Candidate%20Resume_20260810141214723405.pdf",
20346
+ created_at: "2026-08-10T14:12:17.673Z",
20347
+ expiration_time: "2026-11-10T14:12:17.673Z"
20348
+ }
20349
+ }
20350
+ }
20351
+ }
20352
+ }
20353
+ },
20354
+ "400": {
20355
+ description: "Bad Request \u2014 Missing or malformed parameters, missing data, or an unreachable data_url.",
20356
+ content: {
20357
+ "application/json": {
20358
+ schema: {
20359
+ $ref: "#/components/schemas/ErrorResponse"
20360
+ },
20361
+ examples: {
20362
+ MissingTemplateId: {
20363
+ summary: "template_id is missing",
20364
+ value: {
20365
+ error: "Invalid Param Exception",
20366
+ message: "please pass correct parameters",
20367
+ path: "/v1.0/pdf/template/generate",
20368
+ status: 400,
20369
+ timestamp: "2026-08-10T14:13:13.195Z"
20370
+ }
20371
+ },
20372
+ InvalidVersion: {
20373
+ summary: "version does not start with v",
20374
+ value: {
20375
+ timestamp: "2026-08-10T14:13:13.689Z",
20376
+ path: "/v1.0/generate-pdf",
20377
+ status: 400,
20378
+ error: "Invalid Template Version",
20379
+ message: "Please provide a valid template version starting with 'v'."
20380
+ }
20381
+ },
20382
+ NoData: {
20383
+ summary: "No data supplied to fill the template",
20384
+ value: {
20385
+ timestamp: "2026-08-10T14:13:14.172Z",
20386
+ path: "/v1.0/generate-pdf",
20387
+ status: 400,
20388
+ error: "Template Data Not Provided",
20389
+ message: "No data provided for the template. Please provide valid data to generate pdf."
20390
+ }
20391
+ }
20392
+ }
20393
+ }
20394
+ }
20395
+ },
20396
+ "401": {
20397
+ description: "Unauthorized \u2014 The API key is missing or invalid.",
20398
+ content: {
20399
+ "application/json": {
20400
+ schema: {
20401
+ $ref: "#/components/schemas/ErrorResponse"
20402
+ },
20403
+ examples: {
20404
+ InvalidApiKey: {
20405
+ summary: "Provided API key is invalid",
20406
+ value: {
20407
+ error: "API Access Exception",
20408
+ message: "Provided API key is invalid. [For Technical Support: support@apifreaks.com]",
20409
+ path: "/v1.0/pdf/template/generate",
20410
+ status: 401,
20411
+ timestamp: "2026-08-10T14:13:14.996Z"
20412
+ }
20413
+ }
20414
+ }
20415
+ }
20416
+ }
20417
+ },
20418
+ "403": {
20419
+ description: "Forbidden \u2014 The account does not have access to this template.",
20420
+ content: {
20421
+ "application/json": {
20422
+ schema: {
20423
+ $ref: "#/components/schemas/ErrorResponse"
20424
+ },
20425
+ examples: {
20426
+ AccessDenied: {
20427
+ summary: "No access to the template",
20428
+ value: {
20429
+ timestamp: "2026-08-10T14:13:15.000Z",
20430
+ path: "/v1.0/generate-pdf",
20431
+ status: 403,
20432
+ error: "Template Access Denied",
20433
+ message: "Your account does not have access to this template."
20434
+ }
20435
+ }
20436
+ }
20437
+ }
20438
+ }
20439
+ },
20440
+ "404": {
20441
+ description: "Not Found \u2014 No template matches the template_id, or the requested version does not exist.",
20442
+ content: {
20443
+ "application/json": {
20444
+ schema: {
20445
+ $ref: "#/components/schemas/ErrorResponse"
20446
+ },
20447
+ examples: {
20448
+ TemplateNotFound: {
20449
+ summary: "No template matches the template_id",
20450
+ value: {
20451
+ timestamp: "2026-08-10T14:13:14.677Z",
20452
+ path: "/v1.0/generate-pdf",
20453
+ status: 404,
20454
+ error: "Template Not Found",
20455
+ message: "Please provide a valid template ID."
20456
+ }
20457
+ }
20458
+ }
20459
+ }
20460
+ }
20461
+ },
20462
+ "415": {
20463
+ description: "Unsupported Media Type \u2014 The request Content-Type is not supported for this endpoint.",
20464
+ content: {
20465
+ "application/json": {
20466
+ schema: {
20467
+ $ref: "#/components/schemas/ErrorResponse"
20468
+ },
20469
+ examples: {
20470
+ UnsupportedMediaType: {
20471
+ summary: "Content-Type is not supported",
20472
+ value: {
20473
+ timestamp: "2026-08-10T14:13:15.500Z",
20474
+ path: "/v1.0/generate-pdf",
20475
+ status: 415,
20476
+ error: "Unsupported Media Type",
20477
+ message: "The request Content-Type is not supported for this endpoint."
20478
+ }
20479
+ }
20480
+ }
20481
+ }
20482
+ }
20483
+ },
20484
+ "422": {
20485
+ description: "Unprocessable Entity \u2014 The request contains invalid or missing data.",
20486
+ content: {
20487
+ "application/json": {
20488
+ schema: {
20489
+ $ref: "#/components/schemas/ErrorResponse"
20490
+ },
20491
+ examples: {
20492
+ InvalidData: {
20493
+ summary: "Invalid or missing data",
20494
+ value: {
20495
+ timestamp: "2026-08-10T14:13:16.100Z",
20496
+ path: "/v1.0/generate-pdf",
20497
+ status: 422,
20498
+ error: "Invalid Template Data",
20499
+ message: "The request contains invalid or missing data."
20500
+ }
20501
+ }
20502
+ }
20503
+ }
20504
+ }
20505
+ },
20506
+ "500": {
20507
+ description: "Internal Server Error \u2014 An unexpected error occurred, or the PDF could not be generated.",
20508
+ content: {
20509
+ "application/json": {
20510
+ schema: {
20511
+ $ref: "#/components/schemas/ErrorResponse"
20512
+ },
20513
+ examples: {
20514
+ GenerationFailed: {
20515
+ summary: "PDF could not be generated",
20516
+ value: {
20517
+ timestamp: "2026-08-10T14:13:16.700Z",
20518
+ path: "/v1.0/generate-pdf",
20519
+ status: 500,
20520
+ error: "PDF Generation Failed",
20521
+ message: "The PDF could not be generated. Try the request again."
20522
+ }
20523
+ }
20524
+ }
20525
+ }
20526
+ }
20527
+ },
20528
+ "504": {
20529
+ description: "Gateway Timeout \u2014 The request went past the 100 second processing limit.",
20530
+ content: {
20531
+ "application/json": {
20532
+ schema: {
20533
+ $ref: "#/components/schemas/ErrorResponse"
20534
+ },
20535
+ examples: {
20536
+ ProcessingLimit: {
20537
+ summary: "Request exceeded the 100 second processing limit",
20538
+ value: {
20539
+ timestamp: "2026-08-10T14:13:17.300Z",
20540
+ path: "/v1.0/generate-pdf",
20541
+ status: 504,
20542
+ error: "Processing Timeout",
20543
+ message: "The request went past the 100 second processing limit. Reduce the input size or retry."
20544
+ }
20545
+ }
20546
+ }
20547
+ }
20548
+ }
20549
+ }
20550
+ },
20551
+ operationId: "generatePdfFromTemplate"
20552
+ }
20553
+ }
20554
+ },
20555
+ components: {
20556
+ securitySchemes: {
20557
+ ApiKeyAuthHeader: {
20558
+ type: "apiKey",
20559
+ in: "header",
20560
+ name: "X-apikey",
20561
+ description: "Pass your API key via the X-apikey request header."
20562
+ },
20563
+ ApiKeyAuthQuery: {
20564
+ type: "apiKey",
20565
+ in: "query",
20566
+ name: "apiKey",
20567
+ description: "Pass your API key via the apiKey query parameter."
20568
+ }
20569
+ },
20570
+ schemas: {
20571
+ TemplateGenerationResponse: {
20572
+ type: "object",
20573
+ description: "Result of a PDF generation request, containing the hosted URL of the generated PDF.",
20574
+ required: ["template_id", "pdf_url", "created_at", "expiration_time"],
20575
+ properties: {
20576
+ template_id: {
20577
+ type: "string",
20578
+ description: "The template that was rendered."
20579
+ },
20580
+ pdf_url: {
20581
+ type: "string",
20582
+ description: "Hosted URL of the generated PDF."
20583
+ },
20584
+ created_at: {
20585
+ type: "string",
20586
+ format: "date-time",
20587
+ description: "When the PDF was generated (ISO 8601)."
20588
+ },
20589
+ expiration_time: {
20590
+ type: "string",
20591
+ format: "date-time",
20592
+ description: "When the hosted PDF expires (ISO 8601)."
20593
+ }
20594
+ }
20595
+ },
20596
+ ErrorResponse: {
20597
+ type: "object",
20598
+ description: "Standard error envelope returned by the API on failed requests.",
20599
+ required: ["message"],
20600
+ properties: {
20601
+ error: {
20602
+ type: "string",
20603
+ description: "Short error category or exception type."
20604
+ },
20605
+ message: {
20606
+ type: "string",
20607
+ description: "Human-readable error message describing the failure."
20608
+ },
20609
+ path: {
20610
+ type: "string",
20611
+ description: "API endpoint path that produced the error."
20612
+ },
20613
+ status: {
20614
+ type: "integer",
20615
+ description: "HTTP status code returned with the error."
20616
+ },
20617
+ timestamp: {
20618
+ type: "string",
20619
+ format: "date-time",
20620
+ description: "Timestamp when the error occurred (ISO 8601)."
20621
+ }
20622
+ }
20623
+ }
20624
+ }
20625
+ },
20626
+ security: [
20627
+ {
20628
+ ApiKeyAuthHeader: []
20629
+ },
20630
+ {
20631
+ ApiKeyAuthQuery: []
20632
+ }
20633
+ ]
20634
+ };
20635
+
19898
20636
  // specs/pdf/pdf-resource-download.json
19899
20637
  var pdf_resource_download_default = {
19900
20638
  openapi: "3.1.1",
@@ -44569,6 +45307,7 @@ var SPECS = {
44569
45307
  "ip-locator": ip_locator_default,
44570
45308
  "ip-threat-intelligence": ip_threat_intelligence_default,
44571
45309
  "astronomy-data": astronomy_data_default,
45310
+ "bulk-pdf-generator": bulk_pdf_generator_default,
44572
45311
  "delete-pdf-page": delete_pdf_page_default,
44573
45312
  "linearize-pdf": linearize_pdf_default,
44574
45313
  "merge-pdf": merge_pdf_default,
@@ -44579,6 +45318,7 @@ var SPECS = {
44579
45318
  "pdf-file-status": pdf_file_status_default,
44580
45319
  "pdf-file": pdf_file_default,
44581
45320
  "pdf-files": pdf_files_default,
45321
+ "pdf-generator": pdf_generator_default,
44582
45322
  "pdf-resource-download": pdf_resource_download_default,
44583
45323
  "pdf-resource-upload-binary": pdf_resource_upload_binary_default,
44584
45324
  "pdf-resource-upload": pdf_resource_upload_default,
@@ -44621,7 +45361,7 @@ var SPECS = {
44621
45361
  "zip-codes-by-region": zip_codes_by_region_default,
44622
45362
  "zip-codes-radius-search": zip_codes_radius_search_default
44623
45363
  };
44624
- var SPEC_SLUGS = ["commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices", "currency-converter", "currency-fluctuation", "currency-historical-data-limit", "currency-rate", "currency-supported", "currency-symbols", "currency-time-series", "geolocalized-currency-conversion", "historical-currency-converter", "historical-currency-rate", "bulk-dns-lookup", "dns-history-lookup", "dns-lookup", "reverse-dns-lookup", "bulk-domain-checker", "domain-search-with-suggestions", "domain-search", "subdomain-lookup", "bulk-email-validation", "email-checker", "bulk-vat-rates-country", "financial-apis-supported-countries", "iban-validation", "swift-code-finder", "swift-code-lookup", "vat-number-validation", "vat-rates-by-ip", "vat-rates-country", "usage-credits", "forward-geocoding", "reverse-geocoding", "administrative-units-details", "administrative-units-levels", "administrative-units", "cities", "countries-details", "countries", "flags-supported", "flags", "regions", "subregions", "bulk-ip-lookup", "bulk-ip-threat-intelligence", "ip-locator", "ip-threat-intelligence", "astronomy-data", "delete-pdf-page", "linearize-pdf", "merge-pdf", "pdf-compress", "pdf-decrypt", "pdf-encrypt", "pdf-extract-pages", "pdf-file-status", "pdf-file", "pdf-files", "pdf-resource-download", "pdf-resource-upload-binary", "pdf-resource-upload", "pdf-restrict", "pdf-split-pages", "pdf-task-status", "pdf-to-image", "pdf-unrestrict", "rotate-pdf-pages", "bulk-phone-number-validation", "phone-number-validation", "web-scraper", "bulk-screenshot", "website-screenshot", "ssl-certificate-chain-lookup", "ssl-certificate-lookup", "timezone-converter", "timezone-lookup", "bulk-user-agent-parser", "user-agent-parser", "air-quality", "bulk-live-weather", "flood-forecast", "historical-weather", "live-weather", "marine-weather", "time-series-weather", "weather-forecast", "asn-lookup", "bulk-whois-lookup", "domain-whois-history-lookup", "reverse-whois", "whois-domain-lookup", "whois-ip-lookup", "bulk-zip-code-lookup", "zip-code-api", "zip-code-distance-match", "zip-code-distance", "zip-codes-by-city", "zip-codes-by-region", "zip-codes-radius-search"];
45364
+ var SPEC_SLUGS = ["commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices", "currency-converter", "currency-fluctuation", "currency-historical-data-limit", "currency-rate", "currency-supported", "currency-symbols", "currency-time-series", "geolocalized-currency-conversion", "historical-currency-converter", "historical-currency-rate", "bulk-dns-lookup", "dns-history-lookup", "dns-lookup", "reverse-dns-lookup", "bulk-domain-checker", "domain-search-with-suggestions", "domain-search", "subdomain-lookup", "bulk-email-validation", "email-checker", "bulk-vat-rates-country", "financial-apis-supported-countries", "iban-validation", "swift-code-finder", "swift-code-lookup", "vat-number-validation", "vat-rates-by-ip", "vat-rates-country", "usage-credits", "forward-geocoding", "reverse-geocoding", "administrative-units-details", "administrative-units-levels", "administrative-units", "cities", "countries-details", "countries", "flags-supported", "flags", "regions", "subregions", "bulk-ip-lookup", "bulk-ip-threat-intelligence", "ip-locator", "ip-threat-intelligence", "astronomy-data", "bulk-pdf-generator", "delete-pdf-page", "linearize-pdf", "merge-pdf", "pdf-compress", "pdf-decrypt", "pdf-encrypt", "pdf-extract-pages", "pdf-file-status", "pdf-file", "pdf-files", "pdf-generator", "pdf-resource-download", "pdf-resource-upload-binary", "pdf-resource-upload", "pdf-restrict", "pdf-split-pages", "pdf-task-status", "pdf-to-image", "pdf-unrestrict", "rotate-pdf-pages", "bulk-phone-number-validation", "phone-number-validation", "web-scraper", "bulk-screenshot", "website-screenshot", "ssl-certificate-chain-lookup", "ssl-certificate-lookup", "timezone-converter", "timezone-lookup", "bulk-user-agent-parser", "user-agent-parser", "air-quality", "bulk-live-weather", "flood-forecast", "historical-weather", "live-weather", "marine-weather", "time-series-weather", "weather-forecast", "asn-lookup", "bulk-whois-lookup", "domain-whois-history-lookup", "reverse-whois", "whois-domain-lookup", "whois-ip-lookup", "bulk-zip-code-lookup", "zip-code-api", "zip-code-distance-match", "zip-code-distance", "zip-codes-by-city", "zip-codes-by-region", "zip-codes-radius-search"];
44625
45365
  var SPEC_CATEGORIES = ["commodity", "currency", "dns", "domain", "email-validation", "financial", "general", "geocoding", "geodb", "ip-intelligence", "other", "pdf", "phone-validation", "scraper", "screenshot", "ssl", "timezone", "user-agent", "weather", "whois", "zip-code"];
44626
45366
  var SPECS_BY_CATEGORY = {
44627
45367
  "commodity": ["commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices"],
@@ -44635,7 +45375,7 @@ var SPECS_BY_CATEGORY = {
44635
45375
  "geodb": ["administrative-units-details", "administrative-units-levels", "administrative-units", "cities", "countries-details", "countries", "flags-supported", "flags", "regions", "subregions"],
44636
45376
  "ip-intelligence": ["bulk-ip-lookup", "bulk-ip-threat-intelligence", "ip-locator", "ip-threat-intelligence"],
44637
45377
  "other": ["astronomy-data"],
44638
- "pdf": ["delete-pdf-page", "linearize-pdf", "merge-pdf", "pdf-compress", "pdf-decrypt", "pdf-encrypt", "pdf-extract-pages", "pdf-file-status", "pdf-file", "pdf-files", "pdf-resource-download", "pdf-resource-upload-binary", "pdf-resource-upload", "pdf-restrict", "pdf-split-pages", "pdf-task-status", "pdf-to-image", "pdf-unrestrict", "rotate-pdf-pages"],
45378
+ "pdf": ["bulk-pdf-generator", "delete-pdf-page", "linearize-pdf", "merge-pdf", "pdf-compress", "pdf-decrypt", "pdf-encrypt", "pdf-extract-pages", "pdf-file-status", "pdf-file", "pdf-files", "pdf-generator", "pdf-resource-download", "pdf-resource-upload-binary", "pdf-resource-upload", "pdf-restrict", "pdf-split-pages", "pdf-task-status", "pdf-to-image", "pdf-unrestrict", "rotate-pdf-pages"],
44639
45379
  "phone-validation": ["bulk-phone-number-validation", "phone-number-validation"],
44640
45380
  "scraper": ["web-scraper"],
44641
45381
  "screenshot": ["bulk-screenshot", "website-screenshot"],
@@ -44659,6 +45399,7 @@ var SpecSlug = {
44659
45399
  BULK_IP_LOOKUP: "bulk-ip-lookup",
44660
45400
  BULK_IP_THREAT_INTELLIGENCE: "bulk-ip-threat-intelligence",
44661
45401
  BULK_LIVE_WEATHER: "bulk-live-weather",
45402
+ BULK_PDF_GENERATOR: "bulk-pdf-generator",
44662
45403
  BULK_PHONE_NUMBER_VALIDATION: "bulk-phone-number-validation",
44663
45404
  BULK_SCREENSHOT: "bulk-screenshot",
44664
45405
  BULK_USER_AGENT_PARSER: "bulk-user-agent-parser",
@@ -44710,6 +45451,7 @@ var SpecSlug = {
44710
45451
  PDF_FILE: "pdf-file",
44711
45452
  PDF_FILE_STATUS: "pdf-file-status",
44712
45453
  PDF_FILES: "pdf-files",
45454
+ PDF_GENERATOR: "pdf-generator",
44713
45455
  PDF_RESOURCE_DOWNLOAD: "pdf-resource-download",
44714
45456
  PDF_RESOURCE_UPLOAD: "pdf-resource-upload",
44715
45457
  PDF_RESOURCE_UPLOAD_BINARY: "pdf-resource-upload-binary",