# Finekot API > REST and MCP server for AI agents; pay per call with x402 (no account) or from a prepaid balance; errors are free. One key, flat price per call, balance top-up with Apple Pay for humans; agents pay with x402 or use the MCP server. - Base URL: https://api.finekot.com/v1/, header Authorization: Bearer fk_live_… - Get a key with €1 free credit: POST https://api.finekot.com/v1/keys {"email": "…"} - MCP server (streamable HTTP): https://api.finekot.com/mcp — tools: remove_background, screenshot, url_to_markdown, web_answer, news_brief, llms_txt, text_to_speech, speech_to_text, compress, watermark, qr, barcode, og_image, color_palette, exif_strip, html_pdf, pdf_tools, pdf_text, table_extract, doc_convert, csv_convert, text_diff, md_convert, link_preview, email_verify, phone_validate, detect_lang, fx, ip_geo, uptime, vat_check, ocr, image_moderate, embed, semantic_search, doc_redact, readability_score, profanity_filter, entity_extract, denoise, subtitles, video_clip, summarize, translate, extract_json, classify, rewrite, seo_meta, caption, invoice_parse, docx_gen, web_search, seo_audit, change_monitor, sql_lint, prompt_guard, resume_parse, memory, browser, webhook_relay, mcp_host, domain_health, url_safety, file_type_detect, math_eval, unit_convert, tz_convert, regex_test, hash, uuid, base64, jwt_tools, cron_explain, holidays, iban_validate, vin_decode, weather, company_verify, paper_search, lib_docs, diagram_render, chart_render, pdf_sign, sanctions_screen, e_invoice, bank_statement_parse, purchase_order_extract, invoice_3way_match, contract_clause_extract, chapters_gen, shownotes_gen, highlight_clip_finder, clip_cut_caption, social_post_gen, quote_card_gen, newsletter_draft_gen, multi_lang_episode, account, services; put the key in Authorization: Bearer - Agents without a key pay per call with x402 (USDC on Base): POST https://api.finekot.com/x/v1/ → 402 with PAYMENT-REQUIRED → retry with PAYMENT-SIGNATURE - Playground without a key: POST https://api.finekot.com/v1/try/, 10 calls per day per IP - Billing: flat price per call, charged only on HTTP 200; every response carries X-Cost and X-Balance; errors are free - Files: results come back as a signed URL valid 24 hours, processed in memory on EU servers, deleted after - OpenAPI: https://api.finekot.com/openapi.json · MCP card: https://api.finekot.com/.well-known/mcp.json · robots: https://api.finekot.com/robots.txt Live services: 97 ## Services ### remove-bg — Background removal - €0.02 per image · engine: rembg isnet-general-use · CPU · MCP tool: remove_background - Cut-out with alpha channel. Input: url or file (JPEG/PNG/WebP up to 25 MB). Output: PNG with transparency. - Parameters: url — string (http/https image url); file — multipart file (alternative to url); format — png | webp (default png) - Example: curl -X POST https://api.finekot.com/v1/remove-bg -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/photo.jpg"}' ### screenshot — Website screenshot - €0.004 per shot · engine: Chromium headless · CPU · MCP tool: screenshot - Rendered screenshot of any public URL. Viewport, full page, element by CSS selector, dark mode, retina 2x. Output: PNG, JPEG or WebP. - Parameters: url — string (http/https page url); width — int 320–3840 (default 1280); height — int 240–3840 (default 720); full_page — bool (default false); selector — CSS selector — shoot one element; format — png | jpeg | webp (default png); scale — 1 | 2 (retina); dark — bool — prefers-color-scheme: dark; wait — ms to wait after load, 0–8000 - Example: curl -X POST https://api.finekot.com/v1/screenshot -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com", "full_page": "true"}' ### scrape-md — URL to Markdown - €0.0015 per page · engine: Chromium + trafilatura · CPU · MCP tool: url_to_markdown - Main content of a page as clean Markdown for LLM context: title, author, date, text with links and tables; navigation, ads and cookie banners stripped. JS-rendered pages supported. - Parameters: url — string (http/https page url); js — bool — render with Chromium (default true); false = plain fetch, faster; links — bool — keep links (default true); images — bool — keep images (default true); main_only — bool — main article only (default true); wait — ms to wait after load, 0–8000 - Example: curl -X POST https://api.finekot.com/v1/scrape-md -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/article"}' ### web-answer — Web answer with citations - €0.008 per question · engine: DuckDuckGo + trafilatura + LLM · MCP tool: web_answer - Answers a question grounded in live web search: searches, reads the top pages and replies with numbered citations, or says the answer wasn't found instead of guessing. - Parameters: question — question to answer; region — ddgs region, e.g. de-de, us-en (default wt-wt) - Example: curl -X POST https://api.finekot.com/v1/web-answer -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"question": "What is the x402 payment protocol?"}' ### news-brief — News brief - €0.01 per brief · engine: DuckDuckGo News + LLM · MCP tool: news_brief - 3–8 bullet summary of the latest news on a topic with sources and dates; deduplicates reprints of the same story and scores its own confidence. Full article text is never returned. - Parameters: topic — search topic; period — 24h (default) | 7d; language — output language (default English); max_items — 1–15 (default 8) - Example: curl -X POST https://api.finekot.com/v1/news-brief -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"topic": "artificial intelligence regulation", "period": "7d"}' ### llms-txt — llms.txt generator - €0.01 per site · engine: robots.txt + sitemap + LLM · MCP tool: llms_txt - Returns a site's existing /llms.txt as is, or builds one from its sitemap (falling back to the homepage links) per the llmstxt.org spec, respecting robots.txt. - Parameters: url — site url; max_pages — 1–20 pages to crawl when no llms.txt exists (default 20) - Example: curl -X POST https://api.finekot.com/v1/llms-txt -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://api.finekot.com"}' ### tts — Text to speech - €0.015 per 1 000 chars · engine: Kokoro-82M ONNX · CPU · MCP tool: text_to_speech - Natural voice from text, 24 kHz. 21 voices: English US/UK, Spanish, French, Italian, Portuguese, Hindi, Japanese, Chinese. Output: MP3, OGG or WAV. Up to 5 000 chars per call; billed per started 1 000 chars. - Parameters: text — string, up to 5 000 chars; voice — af_heart (default) | af_bella | am_adam | bf_emma | bm_george | ef_dora | ff_siwis | if_sara | pf_dora | jf_alpha | zf_xiaoxiao | …; speed — 0.5–2.0 (default 1.0); format — mp3 | ogg | wav (default mp3) - Example: curl -X POST https://api.finekot.com/v1/tts -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Hello from Finekot API.", "voice": "af_heart"}' ### stt — Speech to text - €0.004 per minute · engine: faster-whisper small int8 · CPU · MCP tool: speech_to_text - Transcription with timestamps and language detection, 99 languages. Input: url or file (mp3, m4a, wav, ogg, webm, mp4) up to 25 MB / 30 min. Output: text, segments, optional SRT/VTT. Billed per started minute. - Parameters: url — string (audio/video url); file — multipart file (alternative to url); language — ISO code, e.g. en, ru, uk (default: auto); translate — bool — translate to English; format — json | srt | vtt (default json, adds subtitles field) - Example: curl -X POST https://api.finekot.com/v1/stt -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/talk.mp3", "language": "en"}' ### compress — Image compress & convert - €0.001 per image · engine: Pillow + libheif · CPU · MCP tool: compress - Convert and shrink images: JPEG, PNG, WebP, AVIF, GIF out; HEIC and AVIF in. Resize to fit, EXIF orientation applied and metadata stripped. - Parameters: url — image url; file — multipart file (alternative to url); format — webp | jpeg | png | avif | gif (default webp); quality — 1–100 (default 82); width — max width px; height — max height px - Example: curl -X POST https://api.finekot.com/v1/compress -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/photo.heic", "format": "webp", "width": "1600"}' ### watermark — Watermark & overlay - €0.001 per image · engine: Pillow · CPU · MCP tool: watermark - Text or logo watermark: corner, center or tiled, with opacity. Output JPEG, PNG or WebP. - Parameters: url — image url; file — multipart file (alternative to url); text — watermark text (or logo_url); logo_url — PNG/SVG-rendered logo url; position — bottom-right (default) | bottom-left | top-right | top-left | center | tile; opacity — 5–100 (default 35); format — jpeg | png | webp - Example: curl -X POST https://api.finekot.com/v1/watermark -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/photo.jpg", "text": "\u00a9 Studio", "position": "bottom-right"}' ### qr — QR & barcodes - €0.0005 per code · engine: segno + python-barcode · CPU · MCP tool: qr - QR codes (optional logo in the middle, custom colors) and barcodes EAN-13, EAN-8, UPC-A, ISBN-13, Code128. SVG or PNG. mode=read decodes a QR/MicroQR from an image (url or file) back to text — for any other barcode format use the barcode service. - Parameters: data — text or url to encode (generate); type — qr (default) | ean13 | ean8 | upca | isbn13 | code128; format — svg (default) | png; scale — module size px, 2–40; color — #rrggbb dark (default #000000); background — #rrggbb | transparent; ec — QR error correction l | m | q | h; logo_url — logo for QR center (png only); mode — generate (default) | read — read a QR from url/file instead of making one; url — image url (mode=read); file — multipart file (mode=read) - Example: curl -X POST https://api.finekot.com/v1/qr -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"data": "https://example.com", "format": "png", "ec": "h"}' ### barcode — Barcode & QR reader - €0.001 per code · engine: zxing-cpp · CPU (+ segno/python-barcode for op=generate) · MCP tool: barcode - op=read (default): decodes every linear and 2D symbology from a photo or scan — EAN-13/8, UPC-A/E, Code128/39/93, ITF, Codabar, QR, Micro QR, Data Matrix, PDF417, Aztec — returns text, format and the 4 corner points per code found; found:0 if none. op=generate reuses the qr service's generator (same type/format params). - Parameters: op — read (default) | generate; url — image url (op=read); file — multipart file (op=read, alternative to url); formats — comma list of symbologies to limit the search to, e.g. qrcode,ean13 (default all); data — text to encode (op=generate); type — barcode type (op=generate), see qr service - Example: curl -X POST https://api.finekot.com/v1/barcode -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/receipt.jpg"}' ### og-image — OG / social image - €0.012 per image · engine: Chromium · CPU · MCP tool: og_image - 1200×630 PNG for social previews from a template (post, minimal, product) or your own HTML. Fonts, colors and product image supported. - Parameters: template — post (default) | minimal | product | html; title — headline; subtitle — second line; eyebrow — small label above; site — footer text; bg — background color; fg — text color; accent — accent color; image_url — product image (template=product); html — full HTML body (template=html) - Example: curl -X POST https://api.finekot.com/v1/og-image -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"template": "post", "title": "Pricing that makes sense", "site": "example.com"}' ### color-palette — Dominant color palette - €0.001 per image · engine: numpy k-means · CPU · MCP tool: color_palette - N dominant colors as hex, rgb and their share of the image, sorted by prevalence. Brand colors, mood boards, product shots. - Parameters: url — image url; file — multipart file (alternative to url); colors — 2–16 (default 5) - Example: curl -X POST https://api.finekot.com/v1/color-palette -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?w=640", "colors": 5}' ### exif-strip — EXIF / GPS stripper - €0.0005 per image · engine: byte-level marker strip · CPU · MCP tool: exif_strip - Removes EXIF, XMP and GPS metadata from JPEG, PNG and WebP by cutting the raw marker/chunk — pixels are never recompressed. GPS values are never returned, only which groups were found and removed. - Parameters: url — image url; file — multipart file (alternative to url) - Example: curl -X POST https://api.finekot.com/v1/exif-strip -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?w=640"}' ### html-pdf — HTML / URL to PDF - €0.006 per document · engine: Chromium · CPU · MCP tool: html_pdf - Pixel-accurate PDF from a URL or your HTML: print CSS, page size, margins, header, footer with page numbers. Invoices, reports, contracts. - Parameters: url — page url (or html); html — raw HTML string; format — A4 (default) | A3 | A5 | Letter | Legal; landscape — bool; margin — e.g. 15mm; header — header text; footer — footer text, page numbers appended; page_numbers — bool; print_css — bool, use @media print (default true); wait — ms after load - Example: curl -X POST https://api.finekot.com/v1/html-pdf -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/invoice/42", "footer": "Example Ltd", "page_numbers": "true"}' ### pdf-tools — PDF merge / split / compress - €0.002 per operation · engine: pypdf · CPU · MCP tool: pdf_tools - merge (list of urls), split/extract pages, rotate, compress, protect with AES-256, unlock, info. Up to 200 pages. - Parameters: op — merge | split | rotate | compress | protect | unlock | info; url — pdf url; file — multipart file (alternative to url); urls — list for merge; pages — e.g. 1-3,5 (split, rotate); degrees — 90 | 180 | 270; password — protect / unlock; quality — image quality for compress (default 70) - Example: curl -X POST https://api.finekot.com/v1/pdf-tools -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "merge", "urls": ["https://example.com/a.pdf", "https://example.com/b.pdf"]}' ### pdf-text — PDF to Markdown - €0.005 per page · engine: pdfplumber · CPU · MCP tool: pdf_text - Text layer of a PDF as Markdown: headings by font size, bullets, tables as Markdown tables. Flags scanned PDFs (no text layer) so you can send them to OCR. Billed per page. - Parameters: url — pdf url; file — multipart file (alternative to url); pages — e.g. 1-5 (default all); tables — bool, include tables (default true) - Example: curl -X POST https://api.finekot.com/v1/pdf-text -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/report.pdf", "pages": "1-5"}' ### table-extract — Tables from PDF - €0.025 per page · engine: pdfplumber · CPU · MCP tool: table_extract - Every table on the given pages as JSON rows, CSV file or Markdown. Bank statements, price lists, invoices with a text layer. Billed per page. - Parameters: url — pdf url; file — multipart file (alternative to url); pages — e.g. 2-4 (default all); format — json (default) | csv | markdown - Example: curl -X POST https://api.finekot.com/v1/table-extract -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/statement.pdf", "format": "csv"}' ### doc-convert — Office conversion - €0.005 per document · engine: LibreOffice headless · CPU · MCP tool: doc_convert - DOCX, XLSX, PPTX, ODT, ODS, RTF, CSV, HTML → PDF, DOCX, ODT, HTML, TXT, XLSX, CSV, PNG. Faithful layout, fonts embedded in PDF. - Parameters: url — document url; file — multipart file (alternative to url); source — source extension if url has none, e.g. docx; to — pdf (default) | docx | odt | html | txt | xlsx | ods | csv | pptx | png | jpg - Example: curl -X POST https://api.finekot.com/v1/doc-convert -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/deck.pptx", "to": "pdf"}' ### csv-convert — Table format convert - €0.006 per file · engine: pandas + openpyxl + pyarrow · CPU · MCP tool: csv_convert - Convert between csv, tsv, json, ndjson, xlsx and parquet. Delimiter and encoding (utf-8, utf-8-sig, cp1251, latin-1) auto-detected for csv/tsv, format auto-detected from the file signature when 'from' is omitted. schema_only=true returns just column names and types. Up to 10 MB, 1M cells. - Parameters: url — file url; file — multipart file (alternative to url); filename — original name, helps auto-detection; source — csv | tsv | json | ndjson | xlsx | parquet (default auto); to — csv | tsv | json | ndjson | xlsx | parquet (required unless schema_only); sheet — sheet name/index for xlsx input or output; delimiter — csv/tsv delimiter override; schema_only — bool, return column names and types only, no file - Example: curl -X POST https://api.finekot.com/v1/csv-convert -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/report.xlsx", "source": "xlsx", "to": "csv"}' ### text-diff — Text diff - €0.001 per text · engine: difflib (stdlib) · CPU, pdfplumber/python-docx for files · MCP tool: text_diff - Unified diff, added/removed lines and similarity percent between two texts, or two files given by url/upload (PDF, DOCX, plain text extracted on our side). Billed ×3 when a side is a PDF or DOCX. Side b only can be a multipart file. - Parameters: text_a — first text; url_a — url to pdf/docx/txt (alternative to text_a); text_b — second text; url_b — url (alternative to text_b); file — multipart file for side b (alternative to text_b/url_b); context — unified diff context lines, 0–10 (default 3); ignore_whitespace — bool, trim each line before comparing (default false) - Example: curl -X POST https://api.finekot.com/v1/text-diff -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text_a": "The quick brown fox jumps over the lazy dog.", "text_b": "The quick brown fox leaps over the lazy dog."}' ### md-convert — Markdown convert - €0.002 per document · engine: mistune · CPU, LibreOffice headless for docx · MCP tool: md_convert - GitHub-flavoured Markdown (tables, strikethrough, autolinks) to HTML, PDF or DOCX. Raw HTML in the source is escaped, never executed; PDF render loads no network beyond the same public-host guard as html-pdf. - Parameters: markdown — source text; url — url to a .md/.txt file (alternative); file — multipart file (alternative); to — html (default) | pdf | docx; format — A4 (default) | A3 | A5 | Letter | Legal (to=pdf); margin — e.g. 15mm (to=pdf) - Example: curl -X POST https://api.finekot.com/v1/md-convert -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"markdown": "# Report\n\nRevenue is **up** 12% this quarter.\n\n| Q | Revenue |\n|---|---|\n| Q1 | 120 |", "to": "html"}' ### link-preview — Link preview - €0.001 per url · engine: HTTP + Open Graph · MCP tool: link_preview - Title, description, image, favicon, site name, canonical and author of any public URL, the way messengers render a link card. - Parameters: url — page url - Example: curl -X POST https://api.finekot.com/v1/link-preview -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/article"}' ### email-verify — Email verification - €0.002 per address · engine: syntax + MX + lists · MCP tool: email_verify - Syntax, MX records, disposable domain, role address, free provider, typo suggestion and a 0–100 score. Mailbox existence is not probed. - Parameters: email — address to check - Example: curl -X POST https://api.finekot.com/v1/email-verify -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"email": "john@example.com"}' ### phone-validate — Phone validation - €0.0015 per number · engine: libphonenumber · MCP tool: phone_validate - Validity, E.164 and national formats, country, line type (mobile, landline, VoIP…), carrier, location, time zones. - Parameters: phone — number in any format; country — ISO-2 default region for local numbers, e.g. UA - Example: curl -X POST https://api.finekot.com/v1/phone-validate -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"phone": "+380671234567"}' ### detect-lang — Language detection - €0.0005 per request · engine: langdetect · CPU · MCP tool: detect_lang - ISO-639-1 language of a text with confidence and top-3 candidates, 55 languages, works from a few words. - Parameters: text — text, up to 20 000 chars - Example: curl -X POST https://api.finekot.com/v1/detect-lang -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Dobar dan, koliko ko\u0161ta?"}' ### fx — Exchange rates - €0.0002 per request · engine: ECB + NBU · MCP tool: fx - Daily reference rates for 31 currencies plus UAH, any base, conversion of an amount, history for the last 90 days. - Parameters: base — currency code (default EUR); symbols — comma-separated codes (default all); amount — number to convert; date — YYYY-MM-DD within 90 days - Example: curl -X POST https://api.finekot.com/v1/fx -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"base": "EUR", "symbols": "USD,UAH", "amount": "100"}' ### ip-geo — IP geolocation - €0.0003 per lookup · engine: DB-IP Lite · CPU · MCP tool: ip_geo - Country, region, city, coordinates, EU flag, ASN and organisation, datacenter/hosting flag for IPv4 and IPv6. - Parameters: ip — IPv4 or IPv6; 'me' = caller address - Example: curl -X POST https://api.finekot.com/v1/ip-geo -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"ip": "8.8.8.8"}' ### uptime — Uptime & SSL check - €0.0005 per check · engine: HTTP probe from Germany · MCP tool: uptime - HTTP status, latency, redirects, server header, TLS certificate issuer and days to expiry. One probe per call; schedule them from your side. - Parameters: url — site url or host - Example: curl -X POST https://api.finekot.com/v1/uptime -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com"}' ### vat-check — VAT number check - €0.004 per lookup · engine: VIES · MCP tool: vat_check - Validity of an EU VAT number via VIES (27 EU states + XI), with registered company name and address when the member state returns them. - Parameters: vat — number with or without country prefix, e.g. DE123456789; country — ISO-2 if not in the number - Example: curl -X POST https://api.finekot.com/v1/vat-check -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"vat": "DE811569869"}' ### ocr — OCR - €0.008 per page · engine: tesseract 5 · CPU · MCP tool: ocr - Text from images and scanned PDFs with line boxes and confidence. Languages: en, ru, uk, de, fr, es, it, pl, pt, sr, tr, nl (combine with commas). Billed per page. - Parameters: url — image or pdf url; file — multipart file (alternative to url); language — en (default) | ru | uk | de | … | en,ru; pages — for PDF, e.g. 1-3; boxes — bool, return line boxes (default true) - Example: curl -X POST https://api.finekot.com/v1/ocr -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/scan.png", "language": "en,ru"}' ### image-moderate — Image moderation - €0.002 per image · engine: NudeNet ONNX · CPU · MCP tool: image_moderate - Nudity check for marketplaces and bots: verdict safe / suggestive / explicit, score, faces, labelled boxes. Weapons, drugs and text are not evaluated. - Parameters: url — image url; file — multipart file (alternative to url) - Example: curl -X POST https://api.finekot.com/v1/image-moderate -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/upload.jpg"}' ### embed — Embeddings - €0.0002 per 1 000 tokens · engine: multilingual-MiniLM-L12 ONNX · CPU · MCP tool: embed - 384-dimensional normalized vectors for search and RAG, 50 languages. Up to 100 texts per call, 8 000 chars each. Billed per started 1 000 tokens. - Parameters: text — one text; texts — JSON array of texts (alternative); kind — passage (default) | query - Example: curl -X POST https://api.finekot.com/v1/embed -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"texts": ["first text", "second text"]}' ### semantic-search — Hosted semantic search - €0.001 per query · engine: MiniLM-L12 + sqlite · CPU · MCP tool: semantic_search - Your own vector index behind the API key: upsert documents (chunked automatically), query in any language, get ranked chunks with metadata. Collections per key, 50 000 chunks. Upsert billed per 5 chunks. - Parameters: op — query (default) | upsert | delete | list; collection — name (default 'default'); query — search text; top_k — 1–50 (default 5); docs — JSON array [{id, text, meta}] for upsert; text — single document text for upsert; id — document id; ids — ids to delete (comma-separated) - Example: curl -X POST https://api.finekot.com/v1/semantic-search -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "query", "collection": "docs", "query": "refund policy", "top_k": "5"}' ### doc-redact — PII redaction - €0.01 per page (3 000 chars) · engine: regex + spaCy NER · CPU · MCP tool: doc_redact - Mask emails, phones, IBANs, card numbers, IPs and — via NER (en, ru, uk, de) — names, organisations, locations in text or a PDF. Returns redacted text and entity positions. - Parameters: text — text to redact; url — pdf url (alternative); file — multipart pdf (alternative); entities — email,phone,iban,card,ip,person,org,location (default all); mode — mask → [EMAIL] (default) | label → [PERSON_1] consistent per value; language — en | ru | uk | de (default auto); country — default region for phones (default UA); return_values — bool, include original values - Example: curl -X POST https://api.finekot.com/v1/doc-redact -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Contact John Smith at john@example.com or +380671234567", "mode": "label"}' ### readability-score — Readability score - €0.001 per request · engine: textstat · CPU · MCP tool: readability_score - Flesch Reading Ease, Flesch-Kincaid grade, Gunning Fog, SMOG, Coleman-Liau, ARI for en/de/es/fr/it/nl/pl/ru/hu (formulas are calibrated per language); word/sentence counts, average sentence length, long-word ratio and reading time for any language. Up to 100 000 chars. - Parameters: text — text to score; language — ISO-2 (default en); unsupported languages get language-independent metrics only - Example: curl -X POST https://api.finekot.com/v1/readability-score -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "The cat sat on the mat. It was a sunny day and everyone felt happy.", "language": "en"}' ### profanity-filter — Profanity filter - €0.0005 per request · engine: LDNOOBW word lists (CC-BY-4.0, github.com/LDNOOBW) + own ru/uk root list · CPU · MCP tool: profanity_filter - Finds and masks profanity in en, ru, uk, de, es, fr (auto-detects across all of them unless language is set). Catches basic obfuscation: latin look-alikes for Cyrillic letters, repeated letters, stray asterisks/digits inside a word. Up to 50 000 chars. - Parameters: text — text to check; language — auto (default, all 6) | comma-separated subset; mode — mask (default) | detect; mask_char — single character (default *) - Example: curl -X POST https://api.finekot.com/v1/profanity-filter -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "This is a clean sentence.", "language": "auto"}' ### entity-extract — Named entity extraction - €0.001 per request · engine: spaCy NER (en/ru/uk/de) · CPU, or LLM for custom types · MCP tool: entity_extract - mode=ner (default): people, organizations, locations, dates, money, percent — en/de/ru/uk, auto-detected language. mode=llm: your own entity types, any language, billed at ×3 (price ×3). Positions are recomputed against the source text. Up to 20 000 chars. - Parameters: text — text to scan; url — page url (alternative); mode — ner (default) | llm; types — ner: comma list to keep (default all 6); llm: your own types, required; language — ISO-2 for mode=ner (default auto) - Example: curl -X POST https://api.finekot.com/v1/entity-extract -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Microsoft hired Anna Kowalski in Berlin on 2024-03-01 for $120,000.", "mode": "ner"}' ### denoise — Audio denoise - €0.006 per minute · engine: noisereduce + ffmpeg · CPU · MCP tool: denoise - Spectral noise reduction for voice memos, calls and podcasts, plus high-pass and loudness normalisation to -16 LUFS. Output MP3, OGG or WAV. Billed per started minute. - Parameters: url — audio or video url; file — multipart file (alternative); strength — 0.1–1.0 (default 0.85); stationary — bool, constant hum (default false); normalize — bool (default true); format — mp3 (default) | ogg | wav - Example: curl -X POST https://api.finekot.com/v1/denoise -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/memo.m4a"}' ### subtitles — Subtitles & burn-in - €0.02 per minute · engine: faster-whisper + ffmpeg libass · CPU · MCP tool: subtitles - Transcribe a video or audio, wrap cues to 42 chars, return SRT/VTT or burn styled subtitles into an MP4 for Reels and Shorts. Optional translation to English. Billed per started minute. - Parameters: url — video or audio url; file — multipart file (alternative); mode — srt (default) | vtt | burn; language — ISO code (default auto); translate — bool, to English; max_chars — 16–80 per cue (default 42); font_size — 12–72 (burn); position — bottom (default) | middle | top; color — hex text color (default FFFFFF) - Example: curl -X POST https://api.finekot.com/v1/subtitles -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/reel.mp4", "mode": "burn"}' ### video-clip — Video cut, crop, GIF - €0.008 per minute · engine: ffmpeg · CPU · MCP tool: video_clip - Trim by start/end, centre-crop to 9:16, 1:1, 4:5, 16:9, resize, mute; output MP4, WebM, an animated GIF or WebP (clip up to 15 s), a JPG frame or MP3 audio. Input up to 25 MB / 20 min. - Parameters: url — video url; file — multipart file (alternative); start — seconds; end — seconds; aspect — 9:16 | 1:1 | 4:5 | 16:9 | 4:3; width — output width px; format — mp4 (default) | webm | gif | webp | jpg | mp3; fps — gif/webp frames per second (default 12); quality — 1–100 for webp (default 75); at — frame time for jpg; mute — bool; crf — 18–35 quality for mp4 (default 23) - Example: curl -X POST https://api.finekot.com/v1/video-clip -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/talk.mp4", "start": "10", "end": "25", "aspect": "9:16", "width": "1080"}' ### summarize — Summarize - €0.003 per request (4 000 chars) · engine: LLM · MCP tool: summarize - Faithful summary of text or a URL: short, medium or long; paragraph, bullets or TL;DR; any output language. Billed per started 4 000 chars. - Parameters: text — text to summarize; url — page url (alternative); length — short | medium (default) | long; format — paragraph (default) | bullets | tldr; language — output language (default same) - Example: curl -X POST https://api.finekot.com/v1/summarize -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/article", "format": "bullets", "language": "en"}' ### translate — Translate - €0.01 per 1 000 chars · engine: LLM · MCP tool: translate - Translation that keeps Markdown, placeholders and tone; glossary supported; 38 languages. Billed per started 1 000 chars. - Parameters: text — text; to — target ISO code, e.g. en, de, uk; tone — neutral (default) | formal | casual | marketing; glossary — source=target pairs, comma-separated - Example: curl -X POST https://api.finekot.com/v1/translate -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Hello, how are you?", "to": "de"}' ### extract-json — Extract to JSON - €0.005 per request (4 000 chars) · engine: LLM · MCP tool: extract_json - Structured data from free text, email or a page by your JSON Schema or a field list. Nulls for missing values, ISO dates, numeric numbers. - Parameters: text — source text; url — page url (alternative); schema — JSON Schema object or comma-separated field list; instructions — extra rules - Example: curl -X POST https://api.finekot.com/v1/extract-json -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Order #512 for Anna Smith, 3 chairs at \u20ac49, deliver by 2026-12-01", "schema": "order_id, customer, items, total, delivery_date"}' ### classify — Classify & moderate - €0.002 per request · engine: LLM · MCP tool: classify - Zero-shot classification into your labels (up to 30) with confidence and a one-line reason; single or multi-label. Tickets, reviews, leads, moderation. - Parameters: text — text; labels — comma-separated labels; multi — bool, allow several labels - Example: curl -X POST https://api.finekot.com/v1/classify -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "The app crashes when I open settings", "labels": "bug, feature request, question, praise"}' ### rewrite — Rewrite & change tone - €0.004 per request (6 000 chars) · engine: LLM · MCP tool: rewrite - Rewrite in a given tone and length, keep facts and Markdown; optional language switch and custom instructions. - Parameters: text — text; tone — e.g. friendly, formal, marketing; length — same (default) | shorter | longer; language — output language; instructions — extra rules - Example: curl -X POST https://api.finekot.com/v1/rewrite -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "hey, the thing is broken again, fix it", "tone": "polite support reply"}' ### seo-meta — SEO title & description - €0.004 per page · engine: LLM · MCP tool: seo_meta - Title ≤60, description ≤155, H1, keywords, slug, Open Graph texts and 3 FAQ pairs from page content or a URL. - Parameters: url — page url; text — page text (alternative); language — output language; keywords — target keywords - Example: curl -X POST https://api.finekot.com/v1/seo-meta -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/pricing", "language": "en"}' ### caption — Image caption & alt text - €0.003 per image · engine: vision LLM · MCP tool: caption - Alt text ≤125 chars, a 2–3 sentence caption, tags, text found in the image and dominant colors. For catalogs, accessibility and SEO. - Parameters: url — image url; file — multipart file (alternative); language — output language (default en); context — what the image is for - Example: curl -X POST https://api.finekot.com/v1/caption -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/product.jpg", "language": "en"}' ### invoice-parse — Invoice & receipt parsing - €0.03 per document · engine: OCR + LLM · MCP tool: invoice_parse - Vendor, customer, number, dates, currency, totals, VAT and line items from a photo, scan or PDF invoice. Totals are cross-checked. mode=pro (€0.06): every line with SKU and VAT rate, VAT breakdown by rate, PO and payment references, deterministic checks (lines vs subtotal, base × rate vs VAT, IBAN checksum, EU VAT-ID format, due date) and optional matching against a purchase order. - Parameters: url — image or pdf url; file — multipart file (alternative); language — OCR languages for scans (default en,ru,uk,de); mode — basic (default, €0.03) | pro (€0.06): line items with SKU and per-line VAT, VAT breakdown by rate, payment details, arithmetic, IBAN, VAT-ID and date checks; po — pro only: purchase order JSON {number, items:[{sku, description, qty, unit_price}]} to match invoice lines against - Example: curl -X POST https://api.finekot.com/v1/invoice-parse -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/invoice.pdf"}' ### docx-gen — DOCX from template - €0.004 per document · engine: docxtpl · CPU · MCP tool: docx_gen - Fill a DOCX template with Jinja placeholders ({{ name }}, loops, conditions) from JSON data; optionally return PDF. Contracts, offers, certificates. - Parameters: template_url — docx template url; file — multipart template (alternative); data — JSON object with values; to — docx (default) | pdf - Example: curl -X POST https://api.finekot.com/v1/docx-gen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"template_url": "https://example.com/contract.docx", "data": {"client": "ACME", "amount": 1200}, "to": "pdf"}' ### web-search — Web search for agents - €0.004 per query · engine: DuckDuckGo + LLM · MCP tool: web_search - Web results with title, url and snippet; optionally the page text of the top 3 and a cited answer to the question. - Parameters: query — search query; limit — 1–10 (default 5); region — e.g. de-de, us-en (default wt-wt); recency — d | w | m | y; fetch — bool, fetch top-3 page text; answer — bool, cited answer - Example: curl -X POST https://api.finekot.com/v1/web-search -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"query": "x402 payment protocol", "limit": "5", "answer": "true"}' ### seo-audit — SEO audit - €0.04 per page · engine: Chromium + LLM · MCP tool: seo_audit - 16 on-page checks (title, description, H1, alt, canonical, OG, structured data, viewport, load time, overflow…) with a score and 5 prioritized fixes. - Parameters: url — page url; advice — bool, LLM fixes (default true) - Example: curl -X POST https://api.finekot.com/v1/seo-audit -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com"}' ### change-monitor — Page change monitor - €0.002 per check · engine: Chromium + diff · CPU · MCP tool: change_monitor - Snapshot the main text of a page under your key; each check returns whether it changed, added and removed lines, similarity. Schedule calls from your side. - Parameters: url — page url; op — check (default) | list | delete; selector_text — start comparing from this text; js — bool, render with Chromium (default true) - Example: curl -X POST https://api.finekot.com/v1/change-monitor -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/pricing", "op": "check"}' ### sql-lint — SQL lint & translate - €0.002 per query · engine: sqlglot · CPU, LLM for fix=true · MCP tool: sql_lint - Parse errors with line/column, dialect translation (postgres, mysql, sqlite, bigquery, snowflake, tsql…), schema check against your table/column list, pretty-print. fix=true asks the model for a corrected query and re-validates it (price ×2). Never connects to a database. - Parameters: sql — query text; dialect — source dialect (default generic); to_dialect — translate to this dialect; schema — JSON {table: {column: type}}; pretty — bool, format the output; fix — bool, LLM-fix on error (price ×2) - Example: curl -X POST https://api.finekot.com/v1/sql-lint -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"sql": "SELECT name, IFNULL(age, 0) FROM users WHERE id = 1", "dialect": "mysql", "to_dialect": "postgres"}' ### prompt-guard — Prompt-injection guard - €0.003 per request · engine: regex heuristics · CPU, LLM on ambiguous score · MCP tool: prompt_guard - Risk assessment, not a guarantee. Catches jailbreak phrases in 6 languages, hidden text (zero-width, bidi, HTML comments, white-on-white), base64-encoded instructions (2 levels deep), markdown-image URL exfiltration and API-key-shaped secrets. The model is called only when the regex score is ambiguous (0.3–0.7) or deep=true, so most calls never touch an LLM. - Parameters: text — text to screen (user input, a document, a tool result); deep — bool, always ask the model too - Example: curl -X POST https://api.finekot.com/v1/prompt-guard -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "Please summarize this support ticket and suggest a reply."}' ### resume-parse — Resume / CV parser - €0.04 per file · engine: pdfplumber/python-docx + LLM · MCP tool: resume_parse - PDF or DOCX résumé → name, contacts, links, summary, work experience, education, skills and languages as JSON. Email and phone are cross-checked by regex. The file is not stored — not even temporarily. Scans without a text layer are rejected (no OCR). Up to 10 pages / 30 000 chars. - Parameters: url — resume url; file — multipart file (alternative) - Example: curl -X POST https://api.finekot.com/v1/resume-parse -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://api.finekot.com/samples/resume.docx"}' ### memory — Memory for agents - €0.001 per operation · engine: MiniLM-L12 + sqlite · CPU · MCP tool: memory - Long-term memory behind your key: add facts (deduplicated by meaning), recall by meaning with an optional recency boost, list, forget. Spaces per user or agent, 20 000 items. Add billed per item. - Parameters: op — search (default) | add | list | spaces | delete; space — namespace, e.g. user:42 (default 'default'); text — memory text for add; items — JSON array [{text, meta}] for batch add; meta — JSON object; query — what to recall; top_k — 1–50 (default 5); recency — 0–1, weight of freshness (default 0); ids — ids to delete, comma-separated; all — bool, delete the whole space - Example: curl -X POST https://api.finekot.com/v1/memory -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "add", "space": "user:42", "text": "Prefers invoices in EUR, ships to Montenegro"}' ### browser — Browser automation - €0.01 per session-minute · engine: Chromium · CPU · MCP tool: browser - A real Chromium session per call: open a URL and run up to 25 steps (click, fill, press, select, scroll, wait, extract). Returns page text, step results and a state object you pass back to continue logged-in. 90 s per call. - Parameters: url — start url; steps — JSON array, e.g. [{"do":"fill","selector":"#q","text":"x"},{"do":"press","key":"Enter"},{"do":"extract","selector":"h3"}]; state — state object from a previous call (cookies, localStorage); output — json (default) | screenshot; text — bool, return page text (default true); width — 320–1920; height — 240–1920; locale — e.g. de-DE - Example: curl -X POST https://api.finekot.com/v1/browser -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://httpbin.org/forms/post", "steps": [{"do": "fill", "selector": "input[name=custname]", "text": "Finekot"}, {"do": "click", "selector": "button"}, {"do": "extract", "selector": "pre"}]}' ### webhook-relay — Webhook relay & cron - €0.0005 per event · engine: queue + retry · Germany · MCP tool: webhook_relay - Get an inbound URL that accepts webhooks for you and forwards them to your target with HMAC signature and 5 retries over 7 hours; or call a URL on a schedule (every 5–1440 min). Event log and replay. - Parameters: op — create (default) | schedule | list | events | replay | delete; target — your https endpoint; name — label; every_minutes — 5–1440 for schedule; method — GET | POST for schedule; body — JSON body for scheduled POST; id — hook id; event_id — event to replay - Example: curl -X POST https://api.finekot.com/v1/webhook-relay -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "create", "target": "https://example.com/my-webhook", "name": "stripe"}' ### mcp-host — All services as one MCP server - €0 per setup · engine: MCP gateway · MCP tool: mcp_host - Every Finekot service is a tool on one remote MCP server (streamable HTTP). This call returns ready configs for Claude Code, Claude Desktop, Cursor and VS Code. Tool calls are billed at each service price. - Parameters: - Example: curl -X POST https://api.finekot.com/v1/mcp-host -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{}' ### domain-health — Domain health check - €0.002 per domain · engine: dnspython + own WHOIS client + stdlib ssl · MCP tool: domain_health - DNS (A, AAAA, MX, TXT, NS, CAA), SPF and DMARC parsing, WHOIS (registrar, dates, name servers, 24h cache), TLS certificate validity and days to expiry. NXDOMAIN returns 200 with exists:false, not an error. Under 10 s. - Parameters: domain — domain name; url — page url (alternative to domain); checks — comma list: dns,whois,ssl,mail (default all) - Example: curl -X POST https://api.finekot.com/v1/domain-health -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"domain": "example.com", "checks": "dns,whois,ssl,mail"}' ### url-safety — URL safety check - €0.002 per url · engine: heuristics: tldextract + own WHOIS + stdlib ssl · CPU · MCP tool: url_safety - Phishing and scam risk of a link from its own signals, without a paid threat feed: lookalike and typosquatted brand domains, mixed-alphabet (homograph) hosts, brand names on foreign domains, IP hosts, shorteners, redirect chain, domain age, TLS, password or seed-phrase forms on the page. Returns score 0–1, verdict low | medium | high and every signal with evidence. Under 15 s. - Parameters: url — link to check; deep — true (default): follow redirects, WHOIS age, TLS and page; false: address only, under 50 ms - Example: curl -X POST https://api.finekot.com/v1/url-safety -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "http://paypa1-account-verify.xyz/login"}' ### file-type-detect — File type detection - €0.0005 per file · engine: libmagic (python-magic) · CPU · MCP tool: file_type_detect - Real file type from the byte signature, not the extension: mime, description, expected extensions, mismatch flag, executable flag (PE/ELF/Mach-O, shell/Python/Perl scripts, APK/JAR) and macro-enabled Office files (vbaProject.bin). Up to 25 MB, first 64 KB inspected. - Parameters: url — file url; file — multipart file (alternative to url); filename — original file name, for the mismatch check - Example: curl -X POST https://api.finekot.com/v1/file-type-detect -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://example.com/report.pdf", "filename": "report.pdf"}' ### math-eval — Math expression eval - €0.0005 per call · engine: simpleeval (MIT) · CPU · MCP tool: math_eval - Safe arithmetic without eval(): +-*/, **, parentheses, math functions (sqrt, sin, log, round, abs, min, max…), constants pi/e, optional variables. Expression up to 500 chars, no code execution. - Parameters: expression — string, e.g. '(2+3)*sqrt(16)'; vars — JSON object name→number, optional - Example: curl -X POST https://api.finekot.com/v1/math-eval -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"expression": "(2 + 3) * sqrt(16) - log(e)"}' ### unit-convert — Unit conversion - €0.0005 per call · engine: pint (BSD-3) · CPU · MCP tool: unit_convert - Converts a value between physical units (length, mass, speed, temperature with correct offset handling, etc). Any pint-recognized unit name or symbol works; incompatible dimensions return 422. - Parameters: value — number; source — unit name, e.g. 'celsius' or 'km/h'; to — unit name - Example: curl -X POST https://api.finekot.com/v1/unit-convert -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"value": "100", "source": "celsius", "to": "fahrenheit"}' ### tz-convert — Timezone convert / diff / business days - €0.0005 per call · engine: zoneinfo + holidays (MIT) · CPU · MCP tool: tz_convert - op=convert moves an ISO time between IANA timezones; op=diff returns the span between two ISO times (days/hours/minutes/seconds, plus business days if country is given); op=add_business_days steps N working days from a date, skipping weekends and public holidays of the given country. - Parameters: op — convert (default) | diff | add_business_days; time — ISO datetime (convert); source — IANA tz (convert); to — IANA tz (convert); start — ISO datetime (diff); end — ISO datetime (diff); date — ISO date (add_business_days); days — integer, can be negative (add_business_days); country — ISO country code for holidays, optional; subdiv — state/region code, optional - Example: curl -X POST https://api.finekot.com/v1/tz-convert -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "convert", "time": "2026-11-02T09:00:00", "source": "Europe/Berlin", "to": "America/New_York"}' ### regex-test — Regex match / findall / sub - €0.0005 per call · engine: re in a sandboxed process (100 ms kill) · CPU · MCP tool: regex_test - Tests a Python regex against text: op=match (first match), op=findall (all matches with groups and positions), op=sub (replace). Runs in a separate process with a 100 ms timeout, so catastrophic backtracking (ReDoS) returns 422 instead of hanging. Text up to 10 000 chars, pattern up to 1 000. - Parameters: pattern — regex pattern; text — text to test; flags — any of i,m,s,x; op — match (default) | findall | sub; replacement — replacement string (sub) - Example: curl -X POST https://api.finekot.com/v1/regex-test -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"pattern": "(\\w+)@(\\w+\\.\\w+)", "text": "contact: den@finekot.com", "op": "findall"}' ### hash — Hash / HMAC - €0.0005 per call · engine: hashlib stdlib · CPU · MCP tool: hash - md5, sha1, sha256, sha512 (or 'all') of text or base64-encoded bytes, as hex and base64; optional hmac key for a keyed digest. - Parameters: text — string (plain or base64, see encoding); encoding — utf8 (default) | base64; algo — md5 | sha1 | sha256 | sha512 | comma-list | all; key — HMAC key, optional - Example: curl -X POST https://api.finekot.com/v1/hash -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"text": "finekot", "algo": "sha256,md5"}' ### uuid — UUID / ULID generator - €0.0005 per call · engine: stdlib uuid + hand-rolled RFC 9562 v7 / ULID · CPU · MCP tool: uuid - kind=v4 random, v7 time-ordered (RFC 9562, monotonic within a batch), ulid (Crockford base32, also monotonic). Up to 100 per call. - Parameters: kind — v4 (default) | v7 | ulid; count — 1–100 - Example: curl -X POST https://api.finekot.com/v1/uuid -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"kind": "v7", "count": "5"}' ### base64 — Base64 encode / decode - €0.0005 per call · engine: stdlib base64 · CPU · MCP tool: base64 - op=encode text to base64, op=decode back to text (or hex + binary:true if the result isn't valid UTF-8). url_safe switches to the - _ alphabet. - Parameters: op — encode (default) | decode; text — text to encode, or base64 to decode; url_safe — bool, default false - Example: curl -X POST https://api.finekot.com/v1/base64 -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "encode", "text": "Finekot API"}' ### jwt-tools — JWT decode / verify / sign - €0.0005 per call · engine: PyJWT (MIT) · CPU · MCP tool: jwt_tools - op=decode reads header/payload without checking the signature. op=verify checks it with a secret (HS*), a PEM public_key (RS*/ES*/PS*) or a jwks_url (cached 10 min); the allowed algorithm family is pinned to the key type you provide, blocking alg-confusion attacks. op=sign issues a new token (HS256/384/512, RS256, ES256). Tokens and keys are never logged or cached. - Parameters: op — decode (default) | verify | sign; token — JWT (decode, verify); secret — HMAC secret (verify, sign); public_key — PEM public key (verify); private_key — PEM private key (sign); jwks_url — JWKS endpoint (verify); payload — JSON object of claims (sign); alg — HS256|HS384|HS512|RS256|ES256, default HS256 (sign); exp_seconds — lifetime in seconds, optional (sign) - Example: curl -X POST https://api.finekot.com/v1/jwt-tools -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "sign", "payload": {"sub": "user_42"}, "secret": "change-me", "alg": "HS256", "exp_seconds": "3600"}' ### cron-explain — Cron expression explain - €0.0005 per call · engine: croniter + cron-descriptor (MIT) · CPU · MCP tool: cron_explain - Human-readable description of a 5-field cron expression plus the next N run times in a given IANA timezone. - Parameters: expr — cron expression, e.g. '0 9 * * 1-5'; language — en (default) | ru | uk | ua; tz — IANA timezone, default UTC; count — 1–20, default 5 - Example: curl -X POST https://api.finekot.com/v1/cron-explain -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"expr": "0 9 * * 1-5", "language": "en", "tz": "Europe/Berlin", "count": "3"}' ### holidays — Public holidays - €0.0005 per call · engine: holidays (vacanza) · CPU · MCP tool: holidays - Official holidays by country and region (ISO-3166), localized names, workday check and business-day shift. 501 countries/regions. - Parameters: op — list (default) | is_workday | add_business_days | countries; country — ISO-2/3 or exact code from op=countries; subdiv — region/state code, e.g. BY for Bavaria; year — for op=list (default current year); language — localize holiday names if supported; date — YYYY-MM-DD, for op=is_workday and op=add_business_days; days — signed integer, for op=add_business_days - Example: curl -X POST https://api.finekot.com/v1/holidays -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "list", "country": "DE", "year": "2026"}' ### iban-validate — IBAN / BIC validation - €0.005 per lookup · engine: schwifty · CPU · MCP tool: iban_validate - Structure and checksum of an IBAN (country, bank/branch/account codes, derived BIC, bank name where the registry has it) and/or a standalone BIC. An invalid IBAN/BIC is a normal 200 response with valid:false and a reason, not an error. - Parameters: iban — IBAN, any formatting (spaces ignored); bic — BIC/SWIFT code (alternative or in addition to iban) - Example: curl -X POST https://api.finekot.com/v1/iban-validate -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"iban": "DE89370400440532013000"}' ### vin-decode — VIN decode - €0.002 per lookup · engine: NHTSA vPIC (US gov, public domain) · network, 30-day cache · MCP tool: vin_decode - Decodes a 17-character VIN into make, model, year, body, engine, transmission and assembly plant. Most complete for the US market. A mismatched check digit is returned as a warning (checksum_valid:false), not a 422. - Parameters: vin — 17-character VIN (letters I, O, Q are not valid VIN characters) - Example: curl -X POST https://api.finekot.com/v1/vin-decode -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"vin": "1HGCM82633A004352"}' ### weather — Weather forecast - €0.001 per call · engine: MET Norway Locationforecast (NLOD 2.0 / CC BY 4.0) · network, 30 min cache · MCP tool: weather - Current conditions, hourly forecast and daily min/max temperature and precipitation from MET Norway. Coordinates only, no city geocoding. Attribution is required by the CC BY 4.0 license and included in every response. - Parameters: lat — latitude, -90..90; lon — longitude, -180..180; hours — hours ahead, 1-72 (default 24) - Example: curl -X POST https://api.finekot.com/v1/weather -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"lat": "52.52", "lon": "13.41", "hours": "24"}' ### company-verify — Company verification (LEI, UK register) - €0.02 per company · engine: GLEIF LEI API (CC0) + UK Companies House · network, 24h cache · MCP tool: company_verify - Legal entity lookup for KYB and invoicing: by LEI (checksum validated locally, ISO 17442), by name + country (up to 5 candidates with match score), or by UK company number. Returns legal name, status, legal form, jurisdiction, legal and HQ addresses, registration authority id, renewal dates and optional direct/ultimate parent. UK: status, type, incorporation date, registered office, SIC codes, overdue accounts flags. No directors or personal data. Source: GLEIF LEI data (CC0); UK data from Companies House under the OGL v3.0. - Parameters: lei — 20-character LEI; name — legal name to search (alternative to lei); country — ISO-2 country filter for name search; uk_number — UK company number, e.g. 00445790 or SC123456; include_parents — true to add direct and ultimate parent (LEI only) - Example: curl -X POST https://api.finekot.com/v1/company-verify -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"lei": "529900QBVWXMWANH7H45", "include_parents": "true"}' ### paper-search — arXiv paper search - €0.002 per query · engine: arXiv API (CC0 metadata) + MiniLM-L12 rerank · network+CPU, 24h cache · MCP tool: paper_search - Searches arXiv metadata and reranks results by embedding similarity to the query: title, authors, abstract excerpt, categories and links. Metadata and abstracts only — PDFs are never downloaded. - Parameters: query — free-text search; category — optional arXiv category filter, e.g. cs.CL; max_results — 1-20 (default 5) - Example: curl -X POST https://api.finekot.com/v1/paper-search -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"query": "transformer attention mechanism", "max_results": "3"}' ### lib-docs — Library docs Q&A - €0.003 per query · engine: PyPI/npm/crates.io + httpx + trafilatura + MiniLM-L12 embeddings (fastembed) · CPU · MCP tool: lib_docs - Answer a question about a package's README and documentation site: resolves the registry (npm, PyPI or crates.io), indexes README plus up to 8 docs pages on first call (cached 7 days, repeat calls are instant), returns ranked fragments with section and source url. Optional answer=true adds a short cited summary at the same price. - Parameters: package — package name; registry — pypi | npm | crates | auto (default auto, tries pypi, npm, crates in order); version — exact version (default latest); question — what to find in the docs; top_k — 1–10 (default 5); answer — bool, short cited answer from the fragments (default false, same price) - Example: curl -X POST https://api.finekot.com/v1/lib-docs -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"package": "requests", "registry": "pypi", "question": "how do I set a request timeout?"}' ### diagram-render — Diagram render - €0.002 per diagram · engine: mermaid.js 12.2.0 (MIT) via Chromium · CPU · MCP tool: diagram_render - Mermaid diagram source (flowchart, sequence, class, state, ER, Gantt, pie, mindmap, …) rendered to SVG or PNG. mermaid.js runs in a sandboxed Chromium page with all network access blocked and securityLevel 'strict' — labels can't inject HTML or scripts. - Parameters: code — Mermaid diagram source, up to 20000 chars; format — svg | png (default svg); theme — default | dark | forest | neutral | base (default default); scale — 1 | 2 — PNG pixel density (retina); background — #rrggbb or 'transparent' — PNG canvas behind the diagram (default #ffffff) - Example: curl -X POST https://api.finekot.com/v1/diagram-render -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"code": "graph TD\nA[Start] --> B{Decision}\nB -->|Yes| C[Do it]\nB -->|No| D[Skip]", "format": "svg"}' ### chart-render — Chart render - €0.002 per chart · engine: Chart.js 4 + chartjs-node-canvas 5 (MIT) · Node subprocess · MCP tool: chart_render - Chart.js configuration (plain JSON — type, data, options; no callbacks, JSON.parse can't execute code) rendered to PNG or SVG. Each call spawns its own Node process, no server state kept between calls. - Parameters: config — Chart.js configuration object (JSON): {type, data, options, ...}; format — png | svg (default png); width — int 100–4000 (default 800); height — int 100–4000 (default 600); background — #rrggbb or 'transparent' — canvas fill behind the chart (default #ffffff) - Example: curl -X POST https://api.finekot.com/v1/chart-render -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"config": {"type": "bar", "data": {"labels": ["Jan", "Feb", "Mar"], "datasets": [{"label": "Sales", "data": [12, 19, 7]}]}}, "format": "png"}' ### pdf-sign — PDF digital signature - €0.005 per document · engine: endesive (PAdES, MIT) + pypdf · CPU · MCP tool: pdf_sign - op=verify: every signature in a PDF — signer and certificate, digest and cryptographic validity, whether the file was edited after signing (no trust store, chain of trust is not asserted). op=sign: add a PAdES-B (adbe.pkcs7.detached) signature from a PKCS#12 bundle; billed ×2. Unsigned PDF on verify returns signatures: []. - Parameters: op — verify | sign; url — pdf url; file — multipart file, the pdf (alternative to url); p12_base64 — PKCS#12 (.p12/.pfx) bundle, base64-encoded — required for op=sign; a multipart p12 alongside the pdf file is not supported, this API accepts one binary upload per call; password — PKCS#12 password (op=sign, empty if the bundle has none); reason — signing reason shown in the signature (op=sign, optional); location — signer location (op=sign, optional); contact — contact info (op=sign, optional) - Example: curl -X POST https://api.finekot.com/v1/pdf-sign -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "verify", "url": "https://api.finekot.com/samples/pdf-sign-demo.pdf"}' ### sanctions-screen — Sanctions screening (OFAC, EU, UK) - €0.04 per check · engine: OFAC SDN + EU consolidated list + UK Sanctions List, refreshed daily · RapidFuzz · CPU · MCP tool: sanctions_screen - Screens a person or company name against the official US OFAC SDN list, the EU consolidated financial sanctions list and the UK Sanctions List with fuzzy, transliteration-aware matching (word order, legal forms and spelling variants). Returns potential matches with score 0–1, list, programmes, birth data and a link to the official record. A match needs human review; no match is not a clearance. Lists refresh every 24 h. - Parameters: name — person or organisation name, any script; type — any (default) | person | entity; birth_year — optional, narrows person matches; threshold — 0.80–1.00 match score cut-off (default 0.88); lists — comma list: ofac,eu,uk (default all) - Example: curl -X POST https://api.finekot.com/v1/sanctions-screen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"name": "Banco Nacional de Cuba", "type": "entity"}' ### e-invoice — E-invoice validate & create (EN 16931, XRechnung, ZUGFeRD/Factur-X) - €0.02 per document · engine: official EN 16931 + XRechnung schematron (EUPL-1.2 / Apache-2.0) on SaxonC-HE (MPL-2.0) · CPU · MCP tool: e_invoice - op=validate: EU e-invoice in UBL 2.1 or UN/CEFACT CII XML, or a ZUGFeRD/Factur-X PDF with the embedded XML. Detects syntax and profile (XRechnung, Peppol BIS, Factur-X/ZUGFeRD, EN 16931) and checks it against the official EN 16931 schematron rules plus KoSIT XRechnung rules for XRechnung profiles; returns every violation with rule id, severity, message and XPath location. Verdict is technical validity only, not a legal or tax assessment; XSD and PDF/A-3 are not checked. op=create: invoice JSON → XRechnung 3.0 or EN 16931 XML in UBL or CII with VAT totals computed, validated by the same rules; output=pdf returns a Factur-X / ZUGFeRD EN 16931 (COMFORT) PDF with a rendered invoice and the CII XML embedded, checked by the Factur-X XSD and by validate; billed ×2. - Parameters: op — validate | create (default validate); url — invoice url (XML or PDF), op=validate; file — multipart file — XML or ZUGFeRD/Factur-X PDF (alternative to url); xml — invoice XML as a string (alternative to url/file); rules — auto | en16931 | xrechnung — auto picks XRechnung rules from the profile id (op=validate); output — xml | pdf (op=create, default xml) — pdf = Factur-X EN 16931 hybrid PDF, needs syntax=cii, profile=en16931 (defaults); syntax — ubl | cii (op=create, default ubl; cii for output=pdf); profile — xrechnung | en16931 (op=create, default xrechnung; en16931 for output=pdf); invoice — op=create: {number, issue_date, due_date?, currency, buyer_reference (Leitweg-ID, required by XRechnung), delivery_date? | period{start,end}?, note?, order_reference?, seller{name, vat_id|tax_number, address{street, city, postcode, country}, contact{name, phone, email}, electronic_address{scheme,id}?}, buyer{name, address{...}, electronic_address|contact.email}, payment{means_code=58, iban, bic?, terms?}, lines[{name, quantity, unit=C62, price, vat_rate, vat_category=S, description?, item_id?, exemption_reason?}], prepaid?} - Example: curl -X POST https://api.finekot.com/v1/e-invoice -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"op": "validate", "url": "https://api.finekot.com/samples/e-invoice-xrechnung.xml"}' ### bank-statement-parse — Bank statement to transactions - €0.1 per statement (up to 10 pages) · engine: PDF text / OCR + LLM · MCP tool: bank_statement_parse - Bank statement PDF, scan or photo → account, IBAN, period, opening and closing balance and every transaction (date, value date, description, counterparty, reference, signed amount, running balance). Arithmetic is checked deterministically: opening + movements = closing, running balance line by line (wrong signs are corrected and flagged), printed credit/debit totals, IBAN checksum. categorize=true adds an accounting category per line; csv=true also returns a CSV file. Up to 30 pages, billed per started 10 pages. The file is not stored. - Parameters: url — statement url (PDF or image); file — multipart file (alternative); categorize — bool — add a category per transaction (default false); csv — bool — also return transactions as a CSV file (default false); language — OCR languages for scans (default en,de,fr,es,it,nl,pl,uk) - Example: curl -X POST https://api.finekot.com/v1/bank-statement-parse -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://api.finekot.com/samples/bank-statement.pdf", "categorize": "true"}' ### purchase-order-extract — Purchase order to JSON - €0.05 per document (up to 10 pages) · engine: PDF text / OCR + LLM · MCP tool: purchase_order_extract - Purchase order PDF, scan or photo → PO number and date, buyer, supplier, ship-to, delivery date, payment terms, Incoterms and every order line (SKU, description, qty, unit, unit price, discount, amount, VAT rate). Arithmetic is checked deterministically: qty × price = line amount, lines = subtotal, subtotal + VAT = total, delivery after order date, EU VAT-ID format. Ready to feed invoice-parse mode=pro po= matching. The file is not stored. - Parameters: url — PO url (PDF or image); file — multipart file (alternative); language — OCR languages for scans (default en,de,fr,es,it,nl,pl,uk) - Example: curl -X POST https://api.finekot.com/v1/purchase-order-extract -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://api.finekot.com/samples/purchase-order.pdf"}' ### invoice-3way-match — Invoice 3-way match (PO · invoice · goods receipt) - €0.12 per match · engine: PDF text / OCR + LLM + rules · MCP tool: invoice_3way_match - Matches a supplier invoice against the purchase order and the goods received note, line by line (SKU, then fuzzy description): price above PO, invoiced more than ordered or received, lines not received, invoice lines not on the PO, PO reference and currency, plus amount at risk. Each document as JSON or URL (PDF/scan/photo, extracted for you); receipt optional for a 2-way match; tolerances in percent. A finding, not a payment decision. Documents are not stored. - Parameters: po — purchase order as JSON {po_number, currency, items[{sku, description, qty, unit_price}]}; po_url — PO document url (alternative); invoice — invoice as JSON {invoice_number, po_number, currency, items[...]}; invoice_url — invoice url (alternative); file — multipart file — the invoice (alternative); receipt — goods received note as JSON {receipt_number, po_number, items[{sku, description, qty_received}]}; receipt_url — goods received note url (optional); price_tolerance_pct — allowed price overrun, % (default 0); qty_tolerance_pct — allowed quantity overrun, % (default 0) - Example: curl -X POST https://api.finekot.com/v1/invoice-3way-match -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"po_url": "https://api.finekot.com/samples/purchase-order.pdf", "invoice": {"invoice_number": "INV-5521", "po_number": "PO-2026-1187", "currency": "GBP", "items": [{"sku": "BR-0081-01", "description": "Steel bracket M8", "qty": 12, "unit_price": 4.2}]}}' ### contract-clause-extract — Contract clauses to JSON - €0.2 per contract (≈20 pages) · engine: PDF / DOCX text + LLM + quote check · MCP tool: contract_clause_extract - Contract PDF, DOCX or text → 24 clause types (term, auto-renewal, renewal notice, termination, payment, liability cap, indemnities, warranty, SLA, penalties, confidentiality, GDPR, IP, non-compete, exclusivity, assignment, governing law, disputes, force majeure…) with a summary, typed values and the verbatim source quote with page; every quote is verified against the document text. Key dates (initial term end, renewal notice deadline) and risk flags are computed. Not legal advice. Up to 80 pages, billed per started ~20 pages. The document is not stored. - Parameters: url — contract url (PDF or DOCX); file — multipart file (alternative); text — contract text (alternative); language — OCR languages for scans (default en,de,fr,es,it,nl,pl,uk) - Example: curl -X POST https://api.finekot.com/v1/contract-clause-extract -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"url": "https://api.finekot.com/samples/contract.pdf"}' ### chapters-gen — Episode chapters - €0.04 per episode · engine: LLM · MCP tool: chapters_gen - Timestamped chapters from a podcast transcript: 5-15 chapters with start, title and a one-line summary, in the transcript's language or yours. Input: segments JSON (with real timing), plain text (timing estimated) or audio_url/file (through stt). - Parameters: transcript — text or JSON [{start,end,text}] segments; audio_url — audio/video url (alternative); file — multipart file (alternative); lang — output language (default transcript's own) - Example: curl -X POST https://api.finekot.com/v1/chapters-gen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"transcript": [{"start": 0, "end": 8, "text": "Welcome back to the Build Loudly podcast."}, {"start": 8, "end": 90, "text": "Today we talk with Maria Lopez about shipping fast without breaking production."}, {"start": 90, "end": 170, "text": "Maria says the secret is small releases and a boring deploy pipeline."}]}' ### shownotes-gen — Show notes - €0.08 per episode · engine: LLM + regex link extraction · MCP tool: shownotes_gen - Show notes from a transcript: 3 title options, summary, highlights, guest names, hashtags and every URL actually said or shown in the text (extracted, not invented). - Parameters: transcript — text or JSON [{start,end,text}] segments; audio_url — audio/video url (alternative); file — multipart file (alternative); lang — output language (default transcript's own) - Example: curl -X POST https://api.finekot.com/v1/shownotes-gen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"transcript": "Welcome back to the Build Loudly podcast. Today we talk with Maria Lopez about shipping fast without breaking production. Read the full write-up at https://example.com/build-loudly/42."}' ### highlight-clip-finder — Highlight clip finder - €0.12 per episode · engine: LLM · MCP tool: highlight_clip_finder - Finds up to N standalone moments (20-90 s each) worth cutting into short-form clips: start, end, the hook line, why it works and a score. Does not render video — feed the times into clip-cut-caption. - Parameters: transcript — text or JSON [{start,end,text}] segments; audio_url — audio/video url (alternative); file — multipart file (alternative); n — 1-10 clips (default 5) - Example: curl -X POST https://api.finekot.com/v1/highlight-clip-finder -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"transcript": [{"start": 0, "end": 30, "text": "Welcome back to the show."}, {"start": 30, "end": 90, "text": "The secret to shipping fast is small releases and a boring deploy pipeline."}], "n": 3}' ### clip-cut-caption — Clip cut & caption - €0.02 per minute · engine: ffmpeg (+ faster-whisper for auto=true) · CPU · MCP tool: clip_cut_caption - Cuts start-end from a video and reframes to 9:16, 1:1 or 16:9 — content is scaled to fit whole, blurred background fills the rest, nothing is cropped off. Burns in subtitles from your own segments, or auto=true transcribes the clip. Output MP4 by signed link. Billed per started minute of the clip. - Parameters: video_url — video url; file — multipart file (alternative to video_url); start — seconds; end — seconds; aspect — 9:16 (default) | 1:1 | 16:9; segments — JSON [{start,end,text}] in the original video's timeline (optional); auto — bool, transcribe the clip for captions if segments is not given; font_size — 12-72 (default 30) - Example: curl -X POST https://api.finekot.com/v1/clip-cut-caption -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"video_url": "https://api.finekot.com/samples/clip.mp4", "start": "5", "end": "20", "aspect": "9:16", "auto": "true"}' ### social-post-gen — Social posts for an episode - €0.02 per post · engine: LLM · MCP tool: social_post_gen - N post options per platform (X, LinkedIn, Instagram, Threads) promoting an episode from its transcript, each under that platform's character limit. Billed per post generated. - Parameters: transcript — text or JSON [{start,end,text}] segments; audio_url — audio/video url (alternative); file — multipart file (alternative); platforms — comma list of x, linkedin, instagram, threads (default all 4); n — 1-5 posts per platform (default 2); lang — output language (default transcript's own) - Example: curl -X POST https://api.finekot.com/v1/social-post-gen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"transcript": "Today we talk with Maria Lopez about shipping fast without breaking production.", "platforms": "x,linkedin", "n": "2"}' ### quote-card-gen — Quote card - €0.01 per card · engine: Chromium (og-image engine) · CPU · MCP tool: quote_card_gen - A quote, author and episode title rendered as a 1080×1080 and a 1080×1920 PNG, dark or light theme, no emoji. The square is the main result; the 1080×1920 story crop is a signed link. - Parameters: quote — the quote text; author — speaker name; episode — episode title; theme — dark (default) | light - Example: curl -X POST https://api.finekot.com/v1/quote-card-gen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"quote": "The secret is small releases and a very boring deploy pipeline.", "author": "Maria Lopez", "episode": "Build Loudly #42", "theme": "dark"}' ### newsletter-draft-gen — Episode newsletter draft - €0.05 per episode · engine: LLM · MCP tool: newsletter_draft_gen - An email draft announcing a new episode: 3 subject lines, a preview line and a Markdown body with chapters or highlights and a closing line. - Parameters: transcript — text or JSON [{start,end,text}] segments; audio_url — audio/video url (alternative); file — multipart file (alternative); episode_url — link to the episode (included in the body); lang — output language (default transcript's own) - Example: curl -X POST https://api.finekot.com/v1/newsletter-draft-gen -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"transcript": "Today we talk with Maria Lopez about shipping fast without breaking production.", "episode_url": "https://example.com/build-loudly/42"}' ### multi-lang-episode — Multi-language episode dub - €0.08 per minute · engine: LLM translate + Kokoro TTS + ffmpeg · CPU · MCP tool: multi_lang_episode - Translates each transcript segment, re-voices it in the target language and reassembles the episode on the original timeline — speed is adjusted (ffmpeg atempo, capped at ±20%) when the dubbed line runs long. Output: MP3 by signed link plus an srt in the target language. Target languages (TTS voice available): en, es, fr, it, hi, ja, pt, zh. Up to 60 minutes of audio. Billed per started minute of source audio. - Parameters: transcript — text or JSON [{start,end,text}] segments; audio_url — audio/video url (alternative); file — multipart file (alternative); lang — target language: en | es | fr | it | hi | ja | pt | zh; voice — override voice (default matches lang) - Example: curl -X POST https://api.finekot.com/v1/multi-lang-episode -H 'Authorization: Bearer fk_live_…' -H 'Content-Type: application/json' -d '{"transcript": [{"start": 0, "end": 2, "text": "Hello and welcome."}, {"start": 2, "end": 4.5, "text": "Thanks for listening today."}], "lang": "es"}'