{"info":{"name":"Cofferdock API","description":"All tools share one account and one monthly pool of credits (1 successful call = 1 credit; failed calls are not charged). Free plan: 50 credits a month, no card.\n\nAuthenticate with the header `x-api-key`. Most tools accept the input either as JSON (base64 for files) or as raw bytes (the file itself as the request body, options as query parameters), and can return the result as JSON (base64), as the file itself (`output=binary`) or as a temporary download link (`output=url`).\n\nDocs: https://cofferdock.com/html-to-image · Get a key: https://cofferdock.com/register · Support: hello@cofferdock.com","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-api-key","type":"string"},{"key":"value","value":"{{api_key}}","type":"string"},{"key":"in","value":"header","type":"string"}]},"variable":[{"key":"baseUrl","value":"https://api.cofferdock.com"},{"key":"api_key","value":"YOUR_API_KEY"}],"item":[{"name":"Images","description":"Create or transform images.","item":[{"name":"HTML to image (PNG, JPEG or WebP)","request":{"method":"POST","description":"Renders HTML (with inline CSS; fonts and images from the internet are allowed, JavaScript is not executed) into an image. Ideal for social cards, certificates, tickets, OG images or any design you can describe in HTML. Send either html, or template + data to use a ready-made design.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/capture","host":["{{baseUrl}}"],"path":["capture"]},"body":{"mode":"raw","raw":"{\n  \"html\": \"<div style=\\\"font-family:sans-serif;padding:40px;background:#f2a93b\\\"><h1>Hello from Cofferdock</h1></div>\",\n  \"width\": 1200,\n  \"height\": 630,\n  \"format\": \"png\",\n  \"output\": \"json\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Screenshot of a public web page","request":{"method":"POST","description":"Loads a public URL in a real browser (JavaScript enabled) and takes a screenshot. Private networks and internal addresses are blocked.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/screenshot","host":["{{baseUrl}}"],"path":["screenshot"]},"body":{"mode":"raw","raw":"{\n  \"url\": \"https://example.com\",\n  \"width\": 1280,\n  \"height\": 800,\n  \"output\": \"json\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"QR code (PNG or SVG)","request":{"method":"POST","description":"Turns a link or any text (max 1500 characters) into a QR code.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/qr","host":["{{baseUrl}}"],"path":["qr"]},"body":{"mode":"raw","raw":"{\n  \"data\": \"https://cofferdock.com\",\n  \"size\": 512,\n  \"output\": \"json\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Data to chart image (bar, line, pie, doughnut, radar)","request":{"method":"POST","description":"Turns labels and numeric series into a chart image, without a browser. Pie and doughnut accept 1 series only.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/chart","host":["{{baseUrl}}"],"path":["chart"]},"body":{"mode":"raw","raw":"{\n  \"type\": \"bar\",\n  \"labels\": [\n    \"Jan\",\n    \"Feb\",\n    \"Mar\"\n  ],\n  \"series\": [\n    {\n      \"name\": \"Sales\",\n      \"data\": [\n        120,\n        90,\n        150\n      ]\n    }\n  ],\n  \"title\": \"Q1 sales\",\n  \"output\": \"json\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Resize, convert or compress an image","request":{"method":"POST","description":"Resizes (with a fit mode), converts between JPEG/PNG/WebP/AVIF and/or compresses ONE image. Provide at least one of width, height, format or quality. Input formats: PNG, JPEG, WebP, AVIF, GIF, TIFF.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/images","host":["{{baseUrl}}"],"path":["images"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}}]},{"name":"PDF","description":"Create and edit PDFs.","item":[{"name":"HTML to PDF","request":{"method":"POST","description":"Renders HTML into a PDF (invoices, reports, tickets, contracts). Same rendering engine as /capture: inline CSS, web fonts and images allowed, no JavaScript. Send either html, or template + data (the \"invoice\" template works well as a PDF).\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf","host":["{{baseUrl}}"],"path":["pdf"]},"body":{"mode":"raw","raw":"{\n  \"html\": \"<h1>Invoice #1001</h1><p>Total: 120.00 EUR</p>\",\n  \"format\": \"A4\",\n  \"margin\": 15,\n  \"output\": \"json\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Merge 2 to 20 PDFs into one","request":{"method":"POST","description":"Joins several PDFs in the order given. One credit regardless of how many files.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-merge","host":["{{baseUrl}}"],"path":["pdf-merge"]},"body":{"mode":"raw","raw":"{\n  \"files\": [\n    \"BASE64_OF_YOUR_FILE\",\n    \"BASE64_OF_YOUR_FILE\"\n  ]\n}","options":{"raw":{"language":"json"}}}}},{"name":"Split a PDF by page ranges","request":{"method":"POST","description":"Creates one PDF per range. Ranges use 1-indexed pages: \"1-3,5,7-9\" gives three files. For one file per page, list every page: \"1,2,3\". One credit regardless of how many files come out.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-split","host":["{{baseUrl}}"],"path":["pdf-split"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\",\n  \"ranges\": \"text\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Rotate pages of a PDF","request":{"method":"POST","description":"Rotates all pages, or only the ones in `pages`, by 90, 180 or 270 degrees (added to the rotation each page already has).\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-rotate","host":["{{baseUrl}}"],"path":["pdf-rotate"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Add a text or image watermark to a PDF","request":{"method":"POST","description":"Overlays a text (max 200 characters) OR a PNG/JPEG image on every page (or on `pages`). Image watermarks need the JSON body.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-watermark","host":["{{baseUrl}}"],"path":["pdf-watermark"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Fill a PDF form (or list its fields)","request":{"method":"POST","description":"Fills the fields of an existing PDF form (AcroForm) with the values in `data`. Without `data` (or with inspect=true) it returns the list of fields instead, so you know their names. Set flatten=true to make the result non-editable.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-fill-form","host":["{{baseUrl}}"],"path":["pdf-fill-form"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Extract the text of a PDF","request":{"method":"POST","description":"Returns the text of a PDF (not scanned images: there is no OCR). Set pages=true to also get the text page by page.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-extract-text","host":["{{baseUrl}}"],"path":["pdf-extract-text"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Add page numbers to a PDF","request":{"method":"POST","description":"Stamps a page number on every page (or on `pages`). The `format` text must contain {n}; it can also use {total}.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-page-numbers","host":["{{baseUrl}}"],"path":["pdf-page-numbers"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Read or write PDF metadata","request":{"method":"POST","description":"With no metadata fields it READS title, author, subject, keywords, creator, producer and dates. With any field given it WRITES them and returns the PDF.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-metadata","host":["{{baseUrl}}"],"path":["pdf-metadata"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Images to PDF (one image per page)","request":{"method":"POST","description":"Turns 1 to 20 PNG/JPEG images into a PDF. page_size \"auto\" makes each page the size of its image; A4, A3, A5, Letter, Legal or Tabloid fit the image inside.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-from-images","host":["{{baseUrl}}"],"path":["pdf-from-images"]},"body":{"mode":"raw","raw":"{\n  \"images\": [\n    \"BASE64_OF_YOUR_FILE\"\n  ]\n}","options":{"raw":{"language":"json"}}}}},{"name":"PDF pages to PNG images","request":{"method":"POST","description":"Renders each page (or the ones in `pages`) as a PNG. `scale` 1 is 72 dpi; 2 is 144 dpi.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-to-images","host":["{{baseUrl}}"],"path":["pdf-to-images"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Add a password to a PDF","request":{"method":"POST","description":"Encrypts the PDF so it asks for the password when opened. The PDF must not be protected already.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-protect","host":["{{baseUrl}}"],"path":["pdf-protect"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\",\n  \"password\": \"text\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Remove the password of a PDF (you must know it)","request":{"method":"POST","description":"Returns an unencrypted copy of a password-protected PDF. It does not crack passwords: the current one is required.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/pdf-unprotect","host":["{{baseUrl}}"],"path":["pdf-unprotect"]},"body":{"mode":"raw","raw":"{\n  \"file\": \"BASE64_OF_YOUR_FILE\",\n  \"password\": \"text\"\n}","options":{"raw":{"language":"json"}}}}}]},{"name":"Files","description":"Zips and temporary downloads.","item":[{"name":"Create a zip from up to 50 files","request":{"method":"POST","description":"Packs files of any type into a .zip. Names can include folders (\"reports/january.pdf\"). Default output is the zip binary.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/create-zip","host":["{{baseUrl}}"],"path":["create-zip"]},"body":{"mode":"raw","raw":"{\n  \"files\": [\n    {\n      \"name\": \"text\",\n      \"content\": \"BASE64_OF_YOUR_FILE\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}}},{"name":"Download a temporary file (from output=url)","request":{"method":"GET","description":"Serves a file produced with output=url. Links are random, unguessable and expire 15 minutes after the call that created them. No API key needed (the link itself is the secret).","header":[],"url":{"raw":"{{baseUrl}}/files/:token","host":["{{baseUrl}}"],"path":["files",":token"]},"auth":{"type":"noauth"}}}]},{"name":"Validation","description":"Check emails, phones and IBANs.","item":[{"name":"Validate an email address","request":{"method":"POST","description":"Checks the format and, by default, that the domain has a real mail server (MX record). An invalid email is still a successful call (valid=false).\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/validate-email","host":["{{baseUrl}}"],"path":["validate-email"]},"body":{"mode":"raw","raw":"{\n  \"email\": \"someone@example.com\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Validate and format a phone number","request":{"method":"POST","description":"Validates an international phone number and returns it in E.164 and international formats, with its country and type (mobile, fixed line...). Give `country` (2-letter code) for numbers without the + prefix.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/validate-phone","host":["{{baseUrl}}"],"path":["validate-phone"]},"body":{"mode":"raw","raw":"{\n  \"phone\": \"+44 20 7946 0958\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Validate an IBAN","request":{"method":"POST","description":"Checks the IBAN checksum (ISO 7064) and returns the country and the formatted IBAN.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/validate-iban","host":["{{baseUrl}}"],"path":["validate-iban"]},"body":{"mode":"raw","raw":"{\n  \"iban\": \"GB82 WEST 1234 5698 7654 32\"\n}","options":{"raw":{"language":"json"}}}}}]},{"name":"Data","description":"Small helpers for workflows.","item":[{"name":"Generate UUIDs (v4)","request":{"method":"POST","description":"Returns 1 to 100 random UUIDs. One credit per call regardless of count.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/generate-uuid","host":["{{baseUrl}}"],"path":["generate-uuid"]},"body":{"mode":"raw","raw":"{\n  \"count\": 3\n}","options":{"raw":{"language":"json"}}}}},{"name":"Text to URL slug","request":{"method":"POST","description":"Lowercases, removes accents and keeps only letters and digits separated by `separator`. \"Año Nuevo 2026!\" becomes \"ano-nuevo-2026\".\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/slugify","host":["{{baseUrl}}"],"path":["slugify"]},"body":{"mode":"raw","raw":"{\n  \"text\": \"Año Nuevo 2026!\"\n}","options":{"raw":{"language":"json"}}}}},{"name":"Hash a text or a file (md5, sha1, sha256, sha512)","request":{"method":"POST","description":"Returns the hash of a text (JSON) or of a file (raw bytes, max 25 MB). Useful for checksums and deduplication.\n\nCosts 1 credit per call.","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/hash","host":["{{baseUrl}}"],"path":["hash"]},"body":{"mode":"raw","raw":"{\n  \"text\": \"hello\",\n  \"algorithm\": \"sha256\"\n}","options":{"raw":{"language":"json"}}}}}]},{"name":"Account","description":"Plan and credits.","item":[{"name":"Check your plan and remaining credits","request":{"method":"GET","description":"Returns your plan, the monthly limit, how many credits you have used and how many are left. Free: does not cost a credit. Useful at the start of a workflow to decide whether to continue.","header":[],"url":{"raw":"{{baseUrl}}/status","host":["{{baseUrl}}"],"path":["status"]}}}]}]}