{"openapi":"3.1.0","info":{"title":"GenPrompt Engine API","summary":"PDF conversion, recording intelligence, and data engineering as HTTP APIs.","description":"Three engines behind one key.\n\n- **SnapPDF** \u2014 convert, merge, split, compress, and edit PDFs.\n- **Signal** \u2014 transcribe and analyse call or meeting recordings.\n- **Prism** \u2014 clean and schema-map messy CSV, Excel, and PDF tables.\n\nGet a trial key instantly at POST /api/trial \u2014 100 calls, no sales call.","version":"1.0.0","contact":{"name":"GenPrompt","url":"https://gen-prompt.me/enterprise"}},"servers":[{"url":"https://gen-prompt.me","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Your org licence or trial key (gpk_...)."}},"schemas":{"Error":{"type":"object","properties":{"message":{"type":"string"}}},"TrialKey":{"type":"object","properties":{"apiKey":{"type":"string","description":"Shown once. Store it now."},"credits":{"type":"integer"},"ratePerMinute":{"type":"integer"},"expiresAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/trial":{"post":{"summary":"Get a trial API key instantly","description":"100 calls, 14 days, no approval step. One active trial per email.","tags":["Getting started"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"company":{"type":"string"}}}}}},"responses":{"200":{"description":"Key issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialKey"}}}},"409":{"description":"A trial already exists for that email"},"429":{"description":"Already issued from this network today"}}}},"/api/trial/status":{"get":{"summary":"Check remaining credits","tags":["Getting started"],"responses":{"200":{"description":"Key status"}}}},"/api/status":{"get":{"summary":"Service health","tags":["Getting started"],"security":[],"responses":{"200":{"description":"All components operational"},"503":{"description":"One or more components degraded"}}}},"/api/pdf/merge":{"post":{"summary":"Merge PDFs","description":"Combine several PDFs into one, in the order supplied.","tags":["SnapPDF"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string","format":"binary"}}}}}}},"responses":{"200":{"description":"The processed file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"Credits exhausted"},"429":{"description":"Rate limit exceeded"}}}},"/api/pdf/split":{"post":{"summary":"Split a PDF","description":"Split a PDF into separate documents.","tags":["SnapPDF"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The processed file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"Credits exhausted"},"429":{"description":"Rate limit exceeded"}}}},"/api/pdf/compress":{"post":{"summary":"Compress a PDF","description":"Reduce file size while keeping the document readable.","tags":["SnapPDF"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The processed file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"Credits exhausted"},"429":{"description":"Rate limit exceeded"}}}},"/api/pdf/convert/word":{"post":{"summary":"PDF to Word","description":"Convert a PDF into a .docx that keeps the page styling.","tags":["SnapPDF"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The processed file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"Credits exhausted"},"429":{"description":"Rate limit exceeded"}}}},"/api/pdf/convert/excel":{"post":{"summary":"PDF to Excel","description":"Convert each styled PDF page into a worksheet.","tags":["SnapPDF"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The processed file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"Credits exhausted"},"429":{"description":"Rate limit exceeded"}}}},"/api/pdf/ocr":{"post":{"summary":"OCR a PDF","description":"Extract text from a scanned document.","tags":["SnapPDF"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The processed file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"Credits exhausted"},"429":{"description":"Rate limit exceeded"}}}},"/api/free-pdf/{tool}":{"post":{"summary":"Anonymous PDF tools (no key required)","description":"The same engine, usable without a key, capped at 3 conversions per IP per day, 10MB and 20 pages. Intended for trying the engine before integrating.","tags":["SnapPDF"],"security":[],"parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","enum":["merge","split","compress","rotate","remove-pages","organize","pdf-to-word"]}}],"responses":{"200":{"description":"The converted file"},"400":{"description":"Bad input, too large, or too many pages"},"429":{"description":"Daily free limit reached"}}}}}}