{"openapi":"3.1.0","info":{"title":"mint utilities API","description":"Deterministic file-conversion, rendering, validation and lookup endpoints, metered with prepaid credits.\n\n* Free tier: 20 calls per day per IP, no key. Then HTTP 402 with a checkout URL.\n* Keys: `POST /v1/keys`; send `Authorization: Bearer mint_...` or `X-Api-Key`.\n* Every capability is `POST /v1/<slug>` (see the per-capability operations below and `GET /v1/capabilities`).\n* Send `X-Request-Id` to make retries safe; `?download=1` returns raw file bytes.","version":"1.0.0"},"servers":[{"url":"https://data.voiddo.com"}],"paths":{"/healthz":{"get":{"tags":["meta"],"summary":"Liveness and database check","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"tags":["meta"],"summary":"Service index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"tags":["meta"],"summary":"Plain-text guide for agents","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/mcp.json":{"get":{"tags":["meta"],"summary":"MCP discovery","operationId":"mcp_json__well_known_mcp_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/capabilities":{"get":{"tags":["catalogue"],"summary":"List capabilities","operationId":"list_capabilities_v1_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/capabilities/{slug}":{"get":{"tags":["catalogue"],"summary":"One capability","operationId":"get_capability_v1_capabilities__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys":{"post":{"tags":["account"],"summary":"Create an API key","operationId":"create_key_v1_keys_post","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"type":"string","format":"email"}},"type":"object"}}},"required":false},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/wallet":{"get":{"tags":["account"],"summary":"Balance and recent ledger rows (needs a key)","operationId":"get_wallet_v1_wallet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/usage":{"get":{"tags":["account"],"summary":"Usage by day and capability (needs a key)","operationId":"get_usage_v1_usage_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"1-31, default 7","title":"Days"},"description":"1-31, default 7"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/{slug}":{"post":{"tags":["run"],"summary":"Run a capability","description":"Generic entry point; the typed per-capability operations are listed individually in this document. JSON body = the capability input, or multipart/form-data with field `input` (JSON) and files by field name.","operationId":"run_capability_endpoint_v1__slug__post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"src","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"attribution label: api | mcp | utils:<page> | apify:<actor>","title":"Src"},"description":"attribution label: api | mcp | utils:<page> | apify:<actor>"},{"name":"download","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1 = return the raw file bytes instead of JSON","title":"Download"},"description":"1 = return the raw file bytes instead of JSON"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"idempotency key for safe retries","title":"X-Request-Id"},"description":"idempotency key for safe retries"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"}}}}}}}},"/v1/csv_profile":{"post":{"operationId":"run_csv_profile","tags":["extract"],"summary":"CSV and Excel data profiler","description":"Profile a CSV, TSV, XLSX or JSON table: row and column counts plus type, nulls, distinct values, min, max and samples for every column.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":["string","object"],"description":"The table: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB.","properties":{"url":{"type":"string","maxLength":2048}},"required":["url"]},"from":{"type":"string","enum":["csv","tsv","xlsx","json"],"description":"Source format. Omit to auto-detect."},"sheet":{"type":["string","integer"],"minimum":0,"minLength":1,"description":"xlsx input: sheet name, or 0-based sheet index (default: the first sheet)."},"header":{"type":"boolean","default":true,"description":"The first row holds column names. false: columns are named col1, col2, ..."},"delimiter":{"type":"string","minLength":1,"maxLength":1,"description":"csv input: field delimiter (default: detected among , ; tab |)."},"encoding":{"type":"string","maxLength":40,"default":"utf-8","description":"Text encoding of csv/tsv/json input (utf-8 falls back to cp1252)."},"max_rows":{"type":"integer","minimum":1,"maximum":1000000,"default":200000,"description":"Reject inputs with more data rows than this (413)."}},"required":["file"],"additionalProperties":false},"example":{"file":"aWQsY2l0eSxhbW91bnQsam9pbmVkLGFjdGl2ZQoxLEhhaWZhLDEwLjUsMjAyNi0wMS0wMyx0cnVlCjIsVGVsIEF2aXYsLDIwMjYtMDEtMDksZmFsc2UKMyxIYWlmYSw3LjI1LDIwMjYtMDItMTEsdHJ1ZQo0LCwzLDIwMjYtMDItMTIsdHJ1ZQo="}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/currency_rates":{"post":{"operationId":"run_currency_rates","tags":["lookup"],"summary":"Currency exchange rates (ECB)","description":"Latest and historical euro foreign exchange reference rates from the European Central Bank, with conversion between any two of its currencies.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"op":{"type":"string","enum":["latest","convert","history"],"default":"latest"},"base":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"EUR","description":"Base currency (latest, history); for convert the alias of 'from'"},"quote":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Quote currency (history; latest filter; convert alias of 'to')"},"quotes":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{3}$"},"minItems":1,"maxItems":40,"uniqueItems":true,"description":"Several quote currencies for latest; omit for all"},"amount":{"type":"number","minimum":0,"maximum":1000000000000.0,"description":"Amount of the 'from' currency (convert)"},"from":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Currency to convert from (default EUR)"},"to":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Currency to convert to"},"date":{"type":"string","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$","description":"YYYY-MM-DD; non-business days use the previous business day. Default: latest day"},"days":{"type":"integer","minimum":1,"maximum":365,"default":30,"description":"history: calendar days ending at 'date' (default the latest day)"}},"additionalProperties":false,"allOf":[{"if":{"properties":{"op":{"const":"convert"}},"required":["op"]},"then":{"required":["amount"]}}]},"example":{"op":"convert","amount":100,"from":"EUR","to":"USD","date":"2026-01-02"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/dns_lookup":{"post":{"operationId":"run_dns_lookup","tags":["lookup"],"summary":"DNS record lookup","description":"Look up A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV or PTR records of a public name through the Cloudflare and Google public resolvers.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":253,"description":"Public hostname, e.g. example.com (internationalised names are converted to punycode). For type PTR: an IPv4/IPv6 address or a complete in-addr.arpa / ip6.arpa name."},"type":{"type":"string","enum":["A","AAAA","MX","TXT","NS","CNAME","SOA","CAA","SRV","PTR"],"default":"A","description":"Record type"},"all":{"type":"boolean","default":false,"description":"Query the common set (A, AAAA, CNAME, MX, NS, TXT, SOA, CAA) in one call; 'type' is then ignored"}},"required":["name"],"additionalProperties":false},"example":{"name":"example.com","type":"A"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/holidays_lookup":{"post":{"operationId":"run_holidays_lookup","tags":["lookup"],"summary":"Public holidays lookup","description":"Public holidays of any of about 250 countries and regions for a given year, with optional subdivision, language and category.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"ISO 3166-1 alpha-2 country code, e.g. US, DE, IL"},"year":{"type":"integer","minimum":1990,"maximum":2100},"subdiv":{"type":"string","minLength":1,"maxLength":60,"description":"State / province / region code or name, e.g. BY, Bayern, CA, SCT"},"language":{"type":"string","pattern":"^[A-Za-z]{2,3}([_-][A-Za-z]{2,4})?$","description":"Language of the holiday names, e.g. de or en_US; default: English where available, else the country's own language"},"categories":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z_]{3,30}$"},"minItems":1,"maxItems":10,"uniqueItems":true,"description":"Holiday categories, default [\"public\"]; e.g. public, bank, school, government, optional, half_day"},"observed":{"type":"boolean","default":true,"description":"Include substitute days such as \"Christmas Day (observed)\""}},"required":["country","year"],"additionalProperties":false},"example":{"country":"US","year":2026}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/html_to_image":{"post":{"operationId":"run_html_to_image","tags":["render"],"summary":"HTML to image","description":"Render an HTML snippet to a PNG, JPEG or WEBP image at any width, with retina scaling and transparent background.\n\nPrice: 3 credit(s) per call. Output: image/png | image/jpeg | image/webp.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"description":"The HTML document or fragment (UTF-8, up to 2 MB). JavaScript is not executed."},"width":{"type":"integer","minimum":320,"maximum":2560,"default":1200,"description":"Viewport width in CSS px"},"height":{"type":"integer","minimum":50,"maximum":16384,"description":"Viewport height in CSS px; omit for a full-page image that fits the content"},"format":{"type":"string","enum":["png","jpeg","jpg","webp"],"default":"png"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":90,"description":"jpeg / webp quality"},"device_scale_factor":{"type":"number","minimum":1,"maximum":3,"default":1,"description":"Pixel density (2 = retina)"},"transparent":{"type":"boolean","default":false,"description":"Transparent page background (png / webp only)"}},"required":["html"],"additionalProperties":false},"example":{"html":"<div style='font:700 48px sans-serif;padding:40px;background:#1fa37a;color:#fff'>Hello, mint</div>","width":600,"height":200}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/html_to_pdf":{"post":{"operationId":"run_html_to_pdf","tags":["render"],"summary":"HTML to PDF","description":"Turn an HTML document into a print-ready PDF with page size, margins, orientation and page-numbered header and footer.\n\nPrice: 3 credit(s) per call. Output: application/pdf.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"description":"The HTML document or fragment (UTF-8, up to 2 MB). JavaScript is not executed."},"format":{"type":"string","enum":["A4","Letter","Legal","A3","A5"],"default":"A4","description":"Paper size"},"landscape":{"type":"boolean","default":false},"margin_mm":{"type":"number","minimum":0,"maximum":50,"default":15,"description":"Page margin on all sides, millimetres"},"print_background":{"type":"boolean","default":true,"description":"Print CSS backgrounds and colours"},"scale":{"type":"number","minimum":0.1,"maximum":2,"default":1,"description":"Rendering scale"},"header_text":{"type":"string","maxLength":300,"description":"Plain-text page header; {page} and {pages} are replaced"},"footer_text":{"type":"string","maxLength":300,"description":"Plain-text page footer; {page} and {pages} are replaced"}},"required":["html"],"additionalProperties":false},"example":{"html":"<h1>Invoice #1042</h1><p>Total due: 120.00 USD, payable within 14 days.</p>"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/image_convert":{"post":{"operationId":"run_image_convert","tags":["convert"],"summary":"Image converter","description":"Convert and resize images between PNG, JPEG, WEBP, GIF, BMP, TIFF and ICO, with quality, fit modes, transparency handling and optional metadata stripping.\n\nPrice: 1 credit(s) per call. Output: image/png | image/jpeg | image/webp | image/gif | image/bmp | image/tiff | image/x-icon.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":["string","object"],"description":"The image: base64 (or data: URI) string, or {\"url\": \"https://...\"}; up to 10 MB"},"to":{"type":"string","enum":["png","jpeg","jpg","webp","gif","bmp","tiff","ico"],"description":"Target format"},"width":{"type":"integer","minimum":1,"maximum":8192,"description":"Target width in px"},"height":{"type":"integer","minimum":1,"maximum":8192,"description":"Target height in px"},"fit":{"type":"string","enum":["inside","contain","cover","fill"],"default":"inside"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":85,"description":"jpeg / webp quality (webp 100 = lossless)"},"strip_metadata":{"type":"boolean","default":true,"description":"Drop EXIF / XMP / ICC (colours are converted to sRGB first)"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Colour for transparent areas when the target has no alpha, and for contain padding (default white / transparent)"}},"required":["file","to"],"additionalProperties":false},"example":{"file":"iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAYAAAAMJL+VAAAATUlEQVR42mOUX1z1n/UvEwOtMBMDjcHQt4AFl8TOpDSSDGqu2jTIfAADgTPm4U0lPbUhwzySBz4O1mckDVEfuM+bRVq5g8Oto6mIIAAA89w1GtnVjpwAAAAASUVORK5CYII=","to":"webp","width":48,"quality":90}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}},"image/gif":{"schema":{"type":"string","format":"binary"}},"image/bmp":{"schema":{"type":"string","format":"binary"}},"image/tiff":{"schema":{"type":"string","format":"binary"}},"image/x-icon":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ip_lookup":{"post":{"operationId":"run_ip_lookup","tags":["lookup"],"summary":"IP address lookup","description":"Reverse DNS name and registry record (network block, name, country) of a public IP address, from open registry data only.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string","minLength":2,"maxLength":64,"description":"Public IPv4 or IPv6 address"}},"required":["ip"],"additionalProperties":false},"example":{"ip":"1.1.1.1"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/iso_codes":{"post":{"operationId":"run_iso_codes","tags":["lookup"],"summary":"ISO code lookup","description":"Look up ISO 3166 country and subdivision codes, ISO 4217 currency codes and ISO 639 language codes by code or name fragment.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["country","currency","language","subdivision"]},"query":{"type":"string","minLength":1,"maxLength":100,"description":"Code or name fragment, case- and accent-insensitive"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":10},"country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Only for type=subdivision: restrict to this country (ISO 3166-1 alpha-2)"}},"required":["type","query"],"additionalProperties":false},"example":{"type":"country","query":"isr"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/json_schema_validate":{"post":{"operationId":"run_json_schema_validate","tags":["validate"],"summary":"JSON Schema validator","description":"Validate a JSON document, or up to 1000 of them, against a JSON Schema (draft 7, 2019-09 or 2020-12) and list every error with its path.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"object","description":"The JSON Schema to validate against."},"instance":{"description":"One JSON value to validate (any type, including null). Use this or instances."},"instances":{"type":"array","minItems":1,"maxItems":1000,"description":"Up to 1000 JSON values validated against the same schema. Use this or instance."},"draft":{"enum":["auto","7",7,"2019-09","2020-12"],"default":"auto","description":"JSON Schema draft. auto follows the schema's $schema and defaults to 2020-12."}},"required":["schema"],"additionalProperties":false},"example":{"schema":{"type":"object","required":["name","age"],"properties":{"name":{"type":"string"},"age":{"type":"integer","minimum":0}}},"instance":{"name":"Ada","age":-3}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/json_yaml_convert":{"post":{"operationId":"run_json_yaml_convert","tags":["convert"],"summary":"JSON and YAML converter","description":"Convert text between JSON and YAML with safe parsing, indent, key sorting and minify options, and line-accurate error messages.\n\nPrice: 1 credit(s) per call. Output: application/json | application/yaml.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"The JSON or YAML text to convert (up to 2 MB)."},"from":{"type":"string","enum":["json","yaml","auto"],"default":"auto","description":"Source format; auto tries JSON first, then YAML."},"to":{"type":"string","enum":["json","yaml"],"description":"Target format. Default: yaml for JSON input, json for YAML input."},"indent":{"type":"integer","minimum":0,"maximum":8,"default":2,"description":"Spaces per level. JSON: 0 puts items on their own lines without indentation. YAML: values below 2 are treated as 2."},"sort_keys":{"type":"boolean","default":false,"description":"Sort object keys alphabetically (default: keep input order)."},"minify":{"type":"boolean","default":false,"description":"JSON: single line without spaces. YAML: single-line flow style. Overrides indent."}},"required":["input"],"additionalProperties":false},"example":{"input":"name: mint\nversion: 1.2\nitems:\n  - alpha\n  - beta\nenabled: true\n","to":"json"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"string","format":"binary"}},"application/yaml":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/markdown_render":{"post":{"operationId":"run_markdown_render","tags":["convert"],"summary":"Markdown renderer","description":"Render Markdown to a sanitised HTML page or fragment, or to a PDF, with tables, fenced code, heading anchors, an optional table of contents and a choice of themes.\n\nPrice: 1 credit(s) per call. Output: text/html | application/pdf.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string","description":"The Markdown source (up to 1 MB of text)"},"format":{"type":"string","enum":["html","fragment","pdf"],"default":"html","description":"html = complete page (1 credit), fragment = content only (1 credit), pdf = A4 document (3 credits)"},"title":{"type":"string","maxLength":200,"description":"Page title; default is the first level-1 heading"},"theme":{"type":"string","enum":["default","github","plain"],"default":"default","description":"Built-in stylesheet for html and pdf"},"css":{"type":"string","enum":["default","github","plain"],"description":"Alias of theme"},"toc":{"type":"boolean","default":false,"description":"Add a table of contents above the content"}},"required":["markdown"],"additionalProperties":false},"example":{"markdown":"# mint\n\nA **tiny** utility.\n\n## Table\n\n| a | b |\n|---|---|\n| 1 | 2 |\n\n## Code\n\n```python\nprint('hi')\n```\n","format":"html","theme":"github","toc":true}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"text/html":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/pdf_info":{"post":{"operationId":"run_pdf_info","tags":["extract"],"summary":"PDF info reader","description":"Read a PDF's page count, encryption flag, metadata, page sizes in millimetres, text-layer presence and bookmark count.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":["string","object"],"description":"The PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB.","properties":{"url":{"type":"string","maxLength":2048}},"required":["url"]}},"required":["file"],"additionalProperties":false},"example":{"file":"JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKG1pbnQpCi9UaXRsZSAoUXVhcnRlcmx5IHJlcG9ydCkKL0F1dGhvciAobWludCBzYW1wbGUpCi9TdWJqZWN0IChFeGFtcGxlKQovQ3JlYXRvciAobWludCkKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAyCi9LaWRzIFsgNSAwIFIgNyAwIFIgXQo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKL091dGxpbmVzIDExIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9IZWx2ZXRpY2EKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1Jlc291cmNlcyA8PAovRm9udCA8PAovRjEgNCAwIFIKPj4KPj4KL01lZGlhQm94IFsgMC4wIDAuMCA1OTUuMjc2IDg0MS44OSBdCi9QYXJlbnQgMiAwIFIKL0NvbnRlbnRzIDYgMCBSCj4+CmVuZG9iago2IDAgb2JqCjw8Ci9MZW5ndGggNDcKPj4Kc3RyZWFtCkJUIC9GMSAxNCBUZiA3MiA3NDAgVGQgKFF1YXJ0ZXJseSByZXBvcnQpIFRqIEVUCmVuZHN0cmVhbQplbmRvYmoKNyAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgOCAwIFIKL1JvdGF0ZSA5MAo+PgplbmRvYmoKOCAwIG9iago8PAovTGVuZ3RoIDM5Cj4+CnN0cmVhbQpCVCAvRjEgMTQgVGYgNzIgNzQwIFRkIChBcHBlbmRpeCkgVGogRVQKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjw8Ci9EIFsgNSAwIFIgL0ZpdCBdCi9TIC9Hb1RvCj4+CmVuZG9iagoxMCAwIG9iago8PAovQSA5IDAgUgovVGl0bGUgKFJlcG9ydCkKL1BhcmVudCAxMSAwIFIKL0NvdW50IDAKL05leHQgMTMgMCBSCj4+CmVuZG9iagoxMSAwIG9iago8PAovRmlyc3QgMTAgMCBSCi9Db3VudCAyCi9MYXN0IDEzIDAgUgo+PgplbmRvYmoKMTIgMCBvYmoKPDwKL0QgWyA3IDAgUiAvRml0IF0KL1MgL0dvVG8KPj4KZW5kb2JqCjEzIDAgb2JqCjw8Ci9BIDEyIDAgUgovVGl0bGUgKEFwcGVuZGl4KQovUHJldiAxMCAwIFIKL1BhcmVudCAxMSAwIFIKL0NvdW50IDAKPj4KZW5kb2JqCnhyZWYKMCAxNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDEzNiAwMDAwMCBuIAowMDAwMDAwMjAxIDAwMDAwIG4gCjAwMDAwMDAyNjcgMDAwMDAgbiAKMDAwMDAwMDM2NCAwMDAwMCBuIAowMDAwMDAwNTAzIDAwMDAwIG4gCjAwMDAwMDA2MDAgMDAwMDAgbiAKMDAwMDAwMDc1MCAwMDAwMCBuIAowMDAwMDAwODM5IDAwMDAwIG4gCjAwMDAwMDA4ODcgMDAwMDAgbiAKMDAwMDAwMDk3MSAwMDAwMCBuIAowMDAwMDAxMDI5IDAwMDAwIG4gCjAwMDAwMDEwNzggMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxNAovUm9vdCAzIDAgUgovSW5mbyAxIDAgUgo+PgpzdGFydHhyZWYKMTE2NQolJUVPRgo="}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/pdf_merge":{"post":{"operationId":"run_pdf_merge","tags":["convert"],"summary":"PDF merger","description":"Merge 2 to 20 PDF files into one document in the order given, optionally keeping their bookmarks.\n\nPrice: 1 credit(s) per call. Output: application/pdf.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"files":{"type":"array","minItems":2,"maxItems":20,"items":{"type":["string","object"],"description":"A PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}.","properties":{"url":{"type":"string","maxLength":2048}},"required":["url"]},"description":"2 to 20 PDFs in merge order; all together up to 10 MB."},"keep_bookmarks":{"type":"boolean","default":true,"description":"Keep the bookmarks (outline) of the input files."}},"required":["files"],"additionalProperties":false},"example":{"files":["JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKG1pbnQpCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMQovS2lkcyBbIDUgMCBSIF0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDIgMCBSCj4+CmVuZG9iago0IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0hlbHZldGljYQovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKNSAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgNiAwIFIKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL0xlbmd0aCA1MAo+PgpzdHJlYW0KQlQgL0YxIDE0IFRmIDcyIDc0MCBUZCAoUGFydCBBIC0gZmlyc3QgZmlsZSkgVGogRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDA1MyAwMDAwMCBuIAowMDAwMDAwMTEyIDAwMDAwIG4gCjAwMDAwMDAxNjEgMDAwMDAgbiAKMDAwMDAwMDI1OCAwMDAwMCBuIAowMDAwMDAwMzk3IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgNwovUm9vdCAzIDAgUgovSW5mbyAxIDAgUgo+PgpzdGFydHhyZWYKNDk3CiUlRU9GCg==","JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKG1pbnQpCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMQovS2lkcyBbIDUgMCBSIF0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDIgMCBSCj4+CmVuZG9iago0IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0hlbHZldGljYQovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKNSAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgNiAwIFIKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL0xlbmd0aCA1MQo+PgpzdHJlYW0KQlQgL0YxIDE0IFRmIDcyIDc0MCBUZCAoUGFydCBCIC0gc2Vjb25kIGZpbGUpIFRqIEVUCmVuZHN0cmVhbQplbmRvYmoKeHJlZgowIDcKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAwNTMgMDAwMDAgbiAKMDAwMDAwMDExMiAwMDAwMCBuIAowMDAwMDAwMTYxIDAwMDAwIG4gCjAwMDAwMDAyNTggMDAwMDAgbiAKMDAwMDAwMDM5NyAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDcKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjQ5OAolJUVPRgo="]}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"files":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/pdf_split":{"post":{"operationId":"run_pdf_split","tags":["convert"],"summary":"PDF splitter","description":"Split a PDF into parts by page ranges such as '1-2,5-' or every N pages, returned as one PDF or a zip of parts.\n\nPrice: 1 credit(s) per call. Output: application/pdf | application/zip.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":["string","object"],"description":"The PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB.","properties":{"url":{"type":"string","maxLength":2048}},"required":["url"]},"ranges":{"type":"string","maxLength":1000,"description":"Comma-separated page ranges, one part each: '1-2,5-' ('5-' runs to the last page)."},"every_n":{"type":"integer","minimum":1,"maximum":100000,"description":"Alternative to ranges: parts of this many pages."}},"required":["file"],"additionalProperties":false},"example":{"file":"JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKG1pbnQpCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMwovS2lkcyBbIDUgMCBSIDcgMCBSIDkgMCBSIF0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDIgMCBSCj4+CmVuZG9iago0IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0hlbHZldGljYQovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKNSAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgNiAwIFIKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL0xlbmd0aCAzOQo+PgpzdHJlYW0KQlQgL0YxIDE0IFRmIDcyIDc0MCBUZCAoUGFnZSBvbmUpIFRqIEVUCmVuZHN0cmVhbQplbmRvYmoKNyAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgOCAwIFIKPj4KZW5kb2JqCjggMCBvYmoKPDwKL0xlbmd0aCAzOQo+PgpzdHJlYW0KQlQgL0YxIDE0IFRmIDcyIDc0MCBUZCAoUGFnZSB0d28pIFRqIEVUCmVuZHN0cmVhbQplbmRvYmoKOSAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgMTAgMCBSCj4+CmVuZG9iagoxMCAwIG9iago8PAovTGVuZ3RoIDQxCj4+CnN0cmVhbQpCVCAvRjEgMTQgVGYgNzIgNzQwIFRkIChQYWdlIHRocmVlKSBUaiBFVAplbmRzdHJlYW0KZW5kb2JqCnhyZWYKMCAxMQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDA1MyAwMDAwMCBuIAowMDAwMDAwMTI0IDAwMDAwIG4gCjAwMDAwMDAxNzMgMDAwMDAgbiAKMDAwMDAwMDI3MCAwMDAwMCBuIAowMDAwMDAwNDA5IDAwMDAwIG4gCjAwMDAwMDA0OTggMDAwMDAgbiAKMDAwMDAwMDYzNyAwMDAwMCBuIAowMDAwMDAwNzI2IDAwMDAwIG4gCjAwMDAwMDA4NjYgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxMQovUm9vdCAzIDAgUgovSW5mbyAxIDAgUgo+PgpzdGFydHhyZWYKOTU4CiUlRU9GCg==","ranges":"1-2,3"}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/pdf_text":{"post":{"operationId":"run_pdf_text","tags":["extract"],"summary":"PDF text extractor","description":"Extract the text of a PDF page by page, with page selection and an optional layout-preserving mode.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":["string","object"],"description":"The PDF: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB.","properties":{"url":{"type":"string","maxLength":2048}},"required":["url"]},"pages":{"type":"string","maxLength":1000,"description":"Pages to extract, e.g. '1-3,7' or '5-' (default: all pages)."},"layout":{"type":"boolean","default":false,"description":"Preserve the visual layout (columns, spacing) instead of reading order."}},"required":["file"],"additionalProperties":false},"example":{"file":"JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKG1pbnQpCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMgovS2lkcyBbIDUgMCBSIDcgMCBSIF0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDIgMCBSCj4+CmVuZG9iago0IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0hlbHZldGljYQovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKNSAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovTWVkaWFCb3ggWyAwLjAgMC4wIDU5NS4yNzYgODQxLjg5IF0KL1BhcmVudCAyIDAgUgovQ29udGVudHMgNiAwIFIKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL0xlbmd0aCA3MAo+PgpzdHJlYW0KQlQgL0YxIDE0IFRmIDcyIDc0MCBUZCAoSW52b2ljZSAyMDI2LTAwMSAtIG1pbnQgc2FtcGxlIGRvY3VtZW50KSBUaiBFVAplbmRzdHJlYW0KZW5kb2JqCjcgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1Jlc291cmNlcyA8PAovRm9udCA8PAovRjEgNCAwIFIKPj4KPj4KL01lZGlhQm94IFsgMC4wIDAuMCA1OTUuMjc2IDg0MS44OSBdCi9QYXJlbnQgMiAwIFIKL0NvbnRlbnRzIDggMCBSCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9MZW5ndGggNjAKPj4Kc3RyZWFtCkJUIC9GMSAxNCBUZiA3MiA3NDAgVGQgKFNlY29uZCBwYWdlOiB0b3RhbHMgYW5kIG5vdGVzKSBUaiBFVAplbmRzdHJlYW0KZW5kb2JqCnhyZWYKMCA5CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDUzIDAwMDAwIG4gCjAwMDAwMDAxMTggMDAwMDAgbiAKMDAwMDAwMDE2NyAwMDAwMCBuIAowMDAwMDAwMjY0IDAwMDAwIG4gCjAwMDAwMDA0MDMgMDAwMDAgbiAKMDAwMDAwMDUyMyAwMDAwMCBuIAowMDAwMDAwNjYyIDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgOQovUm9vdCAzIDAgUgovSW5mbyAxIDAgUgo+PgpzdGFydHhyZWYKNzcyCiUlRU9GCg=="}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/qr_code":{"post":{"operationId":"run_qr_code","tags":["convert"],"summary":"QR code generator","description":"Turn text or a URL into a crisp QR code as PNG or SVG, with size and error-correction control.\n\nPrice: 1 credit(s) per call. Output: image/png | image/svg+xml.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text or URL to encode"},"format":{"type":"string","enum":["png","svg"],"default":"png"},"size":{"type":"integer","minimum":64,"maximum":2048,"default":512,"description":"Edge length in px (png)"},"margin":{"type":"integer","minimum":0,"maximum":10,"default":2,"description":"Quiet zone in modules"},"error_correction":{"type":"string","enum":["L","M","Q","H"],"default":"M"},"fg":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#000000"},"bg":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#ffffff"}},"required":["text"],"additionalProperties":false},"example":{"text":"https://utils.voiddo.com","format":"png","size":256}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/rdap_lookup":{"post":{"operationId":"run_rdap_lookup","tags":["lookup"],"summary":"RDAP registration lookup","description":"Look up the public registration record of a domain, IP address or AS number from its registry's RDAP service, without personal contact data.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":255,"description":"Domain name (example.com), IPv4/IPv6 address (1.1.1.1) or AS number (AS15169)"},"fields":{"type":"string","enum":["compact","full"],"default":"compact","description":"compact: normalised summary; full: summary plus the registry answer without contact data under 'raw'"}},"required":["query"],"additionalProperties":false},"example":{"query":"example.com"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/screenshot":{"post":{"operationId":"run_screenshot","tags":["render"],"summary":"Website screenshot","description":"Capture a public web page as a PNG, JPEG or WEBP image: any viewport size, full page, retina scaling, optional cookie-banner hiding.\n\nPrice: free tier only (not sold through credits). Output: image/png | image/jpeg | image/webp.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":120000,"description":"Public http(s) URL (robots.txt is honoured), or an inline data:text/html URL"},"width":{"type":"integer","minimum":320,"maximum":2560,"default":1280,"description":"Viewport width in CSS px"},"height":{"type":"integer","minimum":240,"maximum":4000,"default":800,"description":"Viewport height in CSS px"},"full_page":{"type":"boolean","default":false,"description":"Capture the whole scrollable page (capped at 16384 CSS px / 50 megapixels)"},"format":{"type":"string","enum":["png","jpeg","jpg","webp"],"default":"png"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":90,"description":"jpeg / webp quality"},"delay_ms":{"type":"integer","minimum":0,"maximum":3000,"default":0,"description":"Extra wait after load, before the shot"},"device_scale_factor":{"type":"number","minimum":1,"maximum":3,"default":1,"description":"Pixel density (2 = retina)"},"block_cookie_banners":{"type":"boolean","default":false,"description":"Hide common cookie-consent dialogs (best effort)"}},"required":["url"],"additionalProperties":false},"example":{"url":"data:text/html,<h1>mint</h1>","width":640,"height":360}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/svg_to_png":{"post":{"operationId":"run_svg_to_png","tags":["convert"],"summary":"SVG to PNG renderer","description":"Render an SVG document to a PNG at a chosen width, height or scale and background; external files, network references and XML entities are never loaded.\n\nPrice: 1 credit(s) per call. Output: image/png.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"svg":{"type":"string","description":"The SVG markup as text (up to 2 MB). Use `file` instead for a base64 / URL / uploaded .svg or .svgz"},"file":{"type":["string","object"],"description":"Alternative to `svg`: an .svg or .svgz file as base64, data: URI or {\"url\": \"https://...\"}"},"width":{"type":"integer","minimum":1,"maximum":8192,"description":"Output width in px (height follows the aspect ratio unless given)"},"height":{"type":"integer","minimum":1,"maximum":8192,"description":"Output height in px (width follows the aspect ratio unless given)"},"scale":{"type":"number","minimum":0.05,"maximum":16,"description":"Multiplier of the SVG's own size (default 1); not combinable with width / height"},"background":{"type":"string","pattern":"^(transparent|#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?)$","default":"transparent","description":"transparent, #rrggbb or #rrggbbaa"}},"additionalProperties":false},"example":{"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"64\" viewBox=\"0 0 64 64\"><rect width=\"64\" height=\"64\" rx=\"14\" fill=\"#1fa37a\"/><path d=\"M18 34l9 9 19-22\" fill=\"none\" stroke=\"#f6f3ec\" stroke-width=\"6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","width":128}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}},"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/tabular_convert":{"post":{"operationId":"run_tabular_convert","tags":["convert"],"summary":"CSV, TSV, Excel and JSON converter","description":"Convert tables between CSV, TSV, XLSX and JSON with format, delimiter and encoding detection, header control and exact number and date handling.\n\nPrice: 1 credit(s) per call. Output: text/csv | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":["string","object"],"description":"The table: base64 string (or data: URI) or {\"url\": \"https://...\"}. Up to 10 MB.","properties":{"url":{"type":"string","maxLength":2048}},"required":["url"]},"from":{"type":"string","enum":["csv","tsv","xlsx","json"],"description":"Source format. Omit to auto-detect."},"to":{"type":"string","enum":["csv","tsv","xlsx","json"],"description":"Target format."},"sheet":{"type":["string","integer"],"minimum":0,"minLength":1,"description":"xlsx input: sheet name, or 0-based sheet index (default: the first sheet)."},"header":{"type":"boolean","default":true,"description":"The first row is a header (becomes JSON keys). false: no header row is read or written, and JSON output is an array of arrays."},"delimiter":{"type":"string","minLength":1,"maxLength":1,"description":"csv input: field delimiter (default: detected among , ; tab |)."},"encoding":{"type":"string","maxLength":40,"default":"utf-8","description":"Text encoding of csv/tsv/json input. utf-8 falls back to cp1252; any other value is strict."},"max_rows":{"type":"integer","minimum":1,"maximum":1000000,"default":200000,"description":"Reject inputs with more data rows than this (413) instead of truncating silently."},"infer_types":{"type":"boolean","default":true,"description":"csv/tsv input to json/xlsx output: turn exact numbers (and, for xlsx, ISO dates) and true/false into typed values."}},"required":["file","to"],"additionalProperties":false},"example":{"file":"bmFtZSxxdHkscHJpY2Usd2hlbgphcHBsZSwzLDEuNTAsMjAyNi0wMS0xNQpwZWFyLDcsMi4yNSwyMDI2LTAyLTAxCg==","to":"json"}},"multipart/form-data":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON-encoded input object"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"string","format":"binary"}},"text/csv":{"schema":{"type":"string","format":"binary"}},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/timezone_convert":{"post":{"operationId":"run_timezone_convert","tags":["convert"],"summary":"Time zone converter","description":"Convert a date and time between IANA time zones with exact daylight-saving handling, inspect a zone's offset and transitions, or list a country's zones.\n\nPrice: 1 credit(s) per call. Output: json.","security":[{},{"bearerAuth":[]},{"apiKeyHeader":[]}],"parameters":[{"name":"src","in":"query","required":false,"schema":{"type":"string"},"description":"attribution label"},{"name":"download","in":"query","required":false,"schema":{"type":"string"},"description":"1 = raw file bytes"},{"name":"X-Request-Id","in":"header","required":false,"schema":{"type":"string"},"description":"idempotency: a retried id is not charged twice"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"op":{"type":"string","enum":["convert","info","list"],"default":"convert"},"datetime":{"type":"string","minLength":8,"maxLength":48,"description":"ISO 8601, e.g. 2026-03-29T01:30:00 (wall clock in from_tz / tz) or 2026-03-29T00:30:00Z / 2026-03-29T01:30:00+01:00 (exact instant). Required for convert and info."},"from_tz":{"type":"string","minLength":1,"maxLength":64,"description":"convert: source zone, an IANA name such as Europe/Berlin or a fixed offset such as +05:30. Required when datetime has no offset."},"to_tz":{"type":"string","minLength":1,"maxLength":64,"description":"convert: target zone, an IANA name or a fixed offset. Required for convert."},"tz":{"type":"string","minLength":1,"maxLength":64,"description":"info: the zone to describe, an IANA name or a fixed offset (from_tz is accepted as an alias). Required for info."},"country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"list: ISO 3166-1 alpha-2 code, e.g. US. Omit to list every zone."},"query":{"type":"string","minLength":1,"maxLength":64,"description":"list: only zones whose name contains this text (case-insensitive), e.g. york or europe/"}},"additionalProperties":false},"example":{"op":"convert","datetime":"2026-03-29T01:30:00","from_tz":"Europe/Berlin","to_tz":"America/New_York"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Free tier exhausted or insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"413":{"description":"Input too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Input cannot be processed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Error":{"type":"object","required":["error","message","status"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"object"}}},"PaymentRequired":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"packs":{"type":"array","items":{"type":"object","properties":{"pack":{"type":"string"},"credits":{"type":"integer"},"usd":{"type":"number"},"price_id":{"type":["string","null"]}}}},"related":{"type":"array","items":{"type":"string"}},"balance":{"type":"integer"}}}]},"RunResult":{"type":"object","required":["ok","credits_charged","meta"],"properties":{"ok":{"type":"boolean"},"data":{"description":"JSON result (capabilities with a JSON output)"},"file_base64":{"type":"string","description":"file result, base64 (use ?download=1 for raw bytes)"},"mime":{"type":"string"},"filename":{"type":"string"},"credits_charged":{"type":"integer"},"balance":{"type":"integer","description":"only with an API key"},"free_remaining":{"type":"integer","description":"only on the free tier"},"meta":{"type":"object"},"request_id":{"type":"string"},"replayed":{"type":"boolean"}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key, e.g. mint_<40 hex>. Create one with POST /v1/keys."},"apiKeyHeader":{"type":"apiKey","in":"header","name":"X-Api-Key"}}}}