Machine Shop
Remove scripts, styles, templates and markup from static HTML; return visible text with line breaks. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
- Category
- Crypto & DeFi
- Starting price
- $0.004
- Paid calls · 30 days
- 0
- Unique payers · 30 days
- —
Paid endpoints
27 endpoints, sorted by usage. Prices are per request.
- POST/v1/html-to-text
Remove scripts, styles, templates and markup from static HTML; return visible text with line breaks. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/html-to-markdown
Convert static HTML headings, paragraphs, lists and anchors to Markdown. Tables, CSS and JavaScript are unsupported. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/html-metadata
Extract title, description, language, canonical URL and named/property meta tags from supplied HTML. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/html-links
Extract closed HTML anchors and their text; resolve relative URLs against optional base_url. Destinations are untrusted and never fetched. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/html-structured-data
Extract JSON-LD script blocks as parsed JSON with validity flags. No microdata, inference or schema validation. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/repair-json
Repair code-fenced JSON or JSON-compatible Python literals including single quotes and trailing commas. Unsupported repairs return 422; no invented fields. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/normalize-json
Parse JSON and emit compact recursively key-sorted JSON. Python numeric precision applies; not cryptographic JSON canonicalization. Duplicate keys use last value. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/extract-json-fields
Extract caller-selected RFC6901 JSON pointers. Missing paths return 422. Empty pointer selects the root. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/normalize-text
Apply Unicode NFKC then normalize whitespace and remove blank lines; preserve letter case. NFKC can change character meaning. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/extract-patterns
Return sorted unique email, URL, money, ISO-date-shaped and EVM-address-shaped matches. Pattern matching only; dates, checksums and deliverability are unvalidated. Money uses legacy USD/EUR/GBP patterns; 5 USDC can produce a partial 5 USD match. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return
$0.004Base0calls / 30d - POST/v1/chunk-text
Split text into fixed Unicode-character windows with configurable overlap and exact [start,end) offsets. No token counting or semantic boundaries. Maximum 2000 chunks. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.004Base0calls / 30d - POST/v1/deduplicate-documents
Normalize up to 100 documents with NFKC and whitespace cleanup, deduplicate by exact resulting text, return unique text and original duplicate indices. No semantic matching. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.005Base0calls / 30d - POST/v1/deduplicate-urls
Normalize and deduplicate up to 100 URLs using existing normalize-url rules; return unique URLs and duplicate indices. No requests or redirects. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.005Base0calls / 30d - POST/v1/csv-to-json
Convert comma-separated CSV with a unique header row into JSON rows. All cell values stay strings. Unequal row width returns 422; no type guessing. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.005Base0calls / 30d - POST/v1/batch-normalize-text
Normalize up to 100 texts with NFKC and whitespace cleanup in one payment. Preserve input order; fail the entire batch on invalid input. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.006Base0calls / 30d - POST/v1/url-to-text
Fetch one public static HTML/text page and return cleaned text and final URL. Static fetch: default ports only; public DNS/IPs only; maximum 3 redirects, 1MB, 15s body deadline plus DNS/connect time. No JavaScript, cookies, auth, paywall bypass, browser or paid upstream. Upstream, safety or parsing errors return 422 without settlement. Limit: 50000 combined input string characters; batch maximum 1
$0.006Base0calls / 30d - POST/v1/url-to-markdown
Fetch one public static HTML/text page and return basic Markdown and final URL. Static fetch: default ports only; public DNS/IPs only; maximum 3 redirects, 1MB, 15s body deadline plus DNS/connect time. No JavaScript, cookies, auth, paywall bypass, browser or paid upstream. Upstream, safety or parsing errors return 422 without settlement. Limit: 50000 combined input string characters; batch maximum
$0.006Base0calls / 30d - POST/v1/webpage-metadata
Fetch one public static HTML/text page and return title, description, canonical URL, language and meta tags. Static fetch: default ports only; public DNS/IPs only; maximum 3 redirects, 1MB, 15s body deadline plus DNS/connect time. No JavaScript, cookies, auth, paywall bypass, browser or paid upstream. Upstream, safety or parsing errors return 422 without settlement. Limit: 50000 combined input str
$0.006Base0calls / 30d - POST/v1/prepare-document
Produce a RAG document: NFKC and whitespace normalization, exact repeated-line removal, SHA256, pattern entities and overlapping character chunks. Repeated lines are intentionally removed; no semantic analysis. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.01Base0calls / 30d - POST/v1/html-prepare-document
Convert supplied static HTML to text and basic Markdown, extract metadata, links and JSON-LD, then normalize, deduplicate lines, extract patterns and chunk the text into a RAG document. Limit: 50000 combined input string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.
$0.01Base0calls / 30d - POST/v1/webpage-prepare-document
Fetch one public static page and return text, basic Markdown, metadata, links, JSON-LD plus normalized, line-deduplicated, hashed, entity-extracted and chunked RAG content. Static fetch: default ports only; public DNS/IPs only; maximum 3 redirects, 1MB, 15s body deadline plus DNS/connect time. No JavaScript, cookies, auth, paywall bypass, browser or paid upstream. Upstream, safety or parsing error
$0.01Base0calls / 30d - POST/v1/clean-text
Clean whitespace in scraped text, OCR output or pasted documents before indexing, entity extraction, text comparison or LLM input. Deterministic text cleanup: normalize CRLF/CR to LF, collapse runs of ASCII spaces/tabs within each line, trim each line using Unicode whitespace rules, remove empty lines, preserve nonempty line breaks and letter case. Returns text, chars_before (after newline normali
$0.004Base0calls / 30d - POST/v1/extract-entities
Deterministic regex entity extraction and email extraction from caller-supplied text. Returns exactly emails, urls and money arrays, each sorted and deduplicated by exact case-sensitive string equality, preserving matched case. Email patterns use Python case-insensitive [A-Z], digits and common email punctuation with a letter TLD of length >=2, case-insensitive matching. URL patterns start with lo
$0.004Base0calls / 30d - POST/v2/api-migration-pack
Consumer-specific OpenAPI impact and tests; unsupported => REVIEW. POST baseline/candidate/consumer JSON. Idempotency-Key required; 202: reuse authorization/key/input, never pay again. Full schemas: https://api.pay-forge.online/v2/api-migration-pack/schema
$0.02Base0calls / 30d - POST/v2/catalog-update-gate
Reconcile an Apify-style product dataset against a previous accepted catalog and explicit flat field contract. Return ingestion-ready inserts/updates, unchanged records, quarantines, duplicate resolution, money/unit checks, schema drift and field source pointers. Upsert only; no inferred deletion, fetching or external purchases. Maximum 50 current and 50 previous records, 16 scalar fields, 100000
$0.05Base0calls / 30d - POST/v1/compare-text
Compare text using deterministic, case-insensitive bag-of-words token-overlap similarity for lexical duplicate screening. Lowercase each input and tokenize with Python Unicode regex \w+ (letters, digits and underscores). Count repeated tokens. Similarity = sum(min(count_a(token),count_b(token))) / max(words_a,words_b,1), rounded to four decimal places. Returns exactly similarity in [0,1], words_a
$0.004Base0calls / 30d - POST/v1/normalize-url
Normalize URL strings for link deduplication and stable hashing without network access. Deterministic URL normalization using Python urllib.parse: strip surrounding whitespace, require parsed http/https scheme and nonempty authority, lowercase scheme and the entire authority (including any userinfo), use / for an empty path, remove the final path-parameter component and fragment. Decode/re-encode
$0.004Base0calls / 30d