{"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","seller":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","currency":"USDC","tools":[{"name":"clean_text","title":"Deterministic text whitespace cleanup","endpoint":"/v1/clean-text","amount_atomic":"4000","description":"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 normalization), and chars_after. This is whitespace cleanup, not OCR, HTML parsing, spelling correction or PII redaction. POST application/json. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","tags":["text cleanup","clean text","whitespace normalization","OCR postprocessing","document preprocessing"],"inputSchema":{"properties":{"text":{"description":"Text to process, including empty text; at most 50000 Unicode characters (413 if exceeded).","maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"TextIn","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"description":"Cleaned text, preserving nonempty LF-separated lines and letter case.","title":"Text","type":"string"},"chars_before":{"description":"Character count after CRLF/CR become LF, before whitespace cleanup.","minimum":0,"title":"Chars Before","type":"integer"},"chars_after":{"description":"Unicode character count of returned text.","minimum":0,"title":"Chars After","type":"integer"}},"required":["text","chars_before","chars_after"],"title":"CleanOut","type":"object"},"examples":{"input":{"text":"  Hello\t world  \r\n\r\n  Next line.  "},"output":{"text":"Hello world\nNext line.","chars_before":32,"chars_after":22}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/clean-text","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/0","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/0/examples","funnel":{"preview":null,"capability":"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 normalization), and chars_after. This is whitespace cleanup, not OCR, HTML parsing, spelling correction or PII redaction. POST application/json. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","required_input":{"properties":{"text":{"description":"Text to process, including empty text; at most 50000 Unicode characters (413 if exceeded).","maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"TextIn","type":"object"},"example_input":{"text":"  Hello\t world  \r\n\r\n  Next line.  "},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/0/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/0","price_usdc":"0.004000","paid_endpoint":"/v1/clean-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"evidence_search_pack","title":"Find evidence in your supplied documents","url":"https://api.pay-forge.online/v2/evidence-search-pack","price_usdc":"0.020000","available":true,"reason":"When you need matching excerpts and offsets across supplied documents rather than whitespace cleanup.","schema_url":"https://api.pay-forge.online/v2/evidence-search-pack/schema","example_url":"https://api.pay-forge.online/v2/evidence-search-pack/example","preview":"/v2/evidence-search-pack/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"extract_entities","title":"Pattern entity extraction: emails, URLs and money","endpoint":"/v1/extract-entities","amount_atomic":"4000","description":"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 lowercase http:// or https:// and end at whitespace, angle brackets or quotes; trailing punctuation can remain. Money patterns match $/€/£ followed by a digit and digits/commas/dots, or a number followed by USD/EUR/GBP, with one optional whitespace separator and case-insensitive currency codes. Money is returned as strings, not validated numeric amounts. Currency-code patterns have no trailing word boundary: 5 USDC can yield the partial match 5 USD; USDC is not recognized as a distinct currency. Does not extract people, organizations, locations, dates or standalone crypto addresses; not semantic named-entity recognition. No URL fetch or email verification. POST application/json with text. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","tags":["entity extraction","extract entities","email extraction","URL extraction","money extraction","regex"],"inputSchema":{"properties":{"text":{"description":"Text to process, including empty text; at most 50000 Unicode characters (413 if exceeded).","maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"TextIn","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"emails":{"description":"Sorted unique email-pattern strings, case preserved; no deliverability verification.","items":{"type":"string"},"title":"Emails","type":"array"},"urls":{"description":"Sorted unique strings starting with lowercase http:// or https://; stops at whitespace, angle brackets or quotes. Trailing punctuation may be included.","items":{"type":"string"},"title":"Urls","type":"array"},"money":{"description":"Sorted unique money-pattern strings: $, EUR symbol or GBP symbol followed by a number, or a number followed by USD/EUR/GBP (case insensitive); original text retained, not parsed/validated amounts; a trailing currency-code boundary is not required, so USDC can produce a partial USD match.","items":{"type":"string"},"title":"Money","type":"array"}},"required":["emails","urls","money"],"title":"EntitiesOut","type":"object"},"examples":{"input":{"text":"Email ops@example.com twice: ops@example.com. Invoice $12.50 or 9 EUR; see https://example.com/pay"},"output":{"emails":["ops@example.com"],"urls":["https://example.com/pay"],"money":["$12.50","9 EUR"]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/extract-entities","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/1","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/1/examples","funnel":{"preview":null,"capability":"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 lowercase http:// or https:// and end at whitespace, angle brackets or quotes; trailing punctuation can remain. Money patterns match $/€/£ followed by a digit and digits/commas/dots, or a number followed by USD/EUR/GBP, with one optional whitespace separator and case-insensitive currency codes. Money is returned as strings, not validated numeric amounts. Currency-code patterns have no trailing word boundary: 5 USDC can yield the partial match 5 USD; USDC is not recognized as a distinct currency. Does not extract people, organizations, locations, dates or standalone crypto addresses; not semantic named-entity recognition. No URL fetch or email verification. POST application/json with text. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","required_input":{"properties":{"text":{"description":"Text to process, including empty text; at most 50000 Unicode characters (413 if exceeded).","maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"TextIn","type":"object"},"example_input":{"text":"Email ops@example.com twice: ops@example.com. Invoice $12.50 or 9 EUR; see https://example.com/pay"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/1/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/1","price_usdc":"0.004000","paid_endpoint":"/v1/extract-entities","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"normalize_url","title":"Deterministic URL normalization and tracking cleanup","endpoint":"/v1/normalize-url","amount_atomic":"4000","description":"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 query pairs with urllib.parse.parse_qsl/urlencode, preserving order, duplicate keys and blank values; remove keys beginning with utm_, fbclid, gclid or yclid case-insensitively. Does not sort queries, resolve dot segments, remove default ports or validate port numbers/hosts; ports remain in the lowercased authority. Not a fetch, redirect resolver, security validator or universal canonical URL equivalence test. Returns exactly url and sha256 (SHA-256 of its UTF-8 bytes). Non-http(s), missing authority and parser errors return 422. POST application/json with url. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","tags":["normalize URL","URL normalization","tracking parameter removal","link deduplication","URL hashing"],"inputSchema":{"properties":{"url":{"description":"Absolute HTTP/HTTPS URL string, at most 50000 characters before trimming. Syntax parsing only; not a URL safety check.","maxLength":50000,"title":"Url","type":"string"}},"required":["url"],"title":"UrlIn","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"url":{"description":"Normalized URL string. Syntactic transformation only; not fetched or safety-validated.","title":"Url","type":"string"},"sha256":{"description":"Lowercase SHA-256 hex digest of the normalized URL encoded as UTF-8.","pattern":"^[0-9a-f]{64}$","title":"Sha256","type":"string"}},"required":["url","sha256"],"title":"UrlOut","type":"object"},"examples":{"input":{"url":" HTTPS://Example.COM:443/a;b?b=2&utm_source=news&a=1&a=&FBCLID=x#section "},"output":{"url":"https://example.com:443/a?b=2&a=1&a=","sha256":"989aed231bfce2ac8018bbf402486009ceb15ff1a46cf53d8b0e300c53d4c9ad"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/normalize-url","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/2","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/2/examples","funnel":{"preview":null,"capability":"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 query pairs with urllib.parse.parse_qsl/urlencode, preserving order, duplicate keys and blank values; remove keys beginning with utm_, fbclid, gclid or yclid case-insensitively. Does not sort queries, resolve dot segments, remove default ports or validate port numbers/hosts; ports remain in the lowercased authority. Not a fetch, redirect resolver, security validator or universal canonical URL equivalence test. Returns exactly url and sha256 (SHA-256 of its UTF-8 bytes). Non-http(s), missing authority and parser errors return 422. POST application/json with url. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","required_input":{"properties":{"url":{"description":"Absolute HTTP/HTTPS URL string, at most 50000 characters before trimming. Syntax parsing only; not a URL safety check.","maxLength":50000,"title":"Url","type":"string"}},"required":["url"],"title":"UrlIn","type":"object"},"example_input":{"url":" HTTPS://Example.COM:443/a;b?b=2&utm_source=news&a=1&a=&FBCLID=x#section "},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/2/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/2","price_usdc":"0.004000","paid_endpoint":"/v1/normalize-url","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","available":true,"reason":"For whole product batches with duplicate identities, currency and schema drift checks; supply current/previous records and a contract.","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","preview":"/v2/catalog-update-gate/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"compare_text","title":"Deterministic text similarity by token overlap","endpoint":"/v1/compare-text","amount_atomic":"4000","description":"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 and words_b. Word order and punctuation are ignored; both token-empty inputs score 0, even when equal. Does not measure semantic similarity, Levenshtein edit distance, cosine similarity, or produce a text diff. POST application/json with a and b. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","tags":["compare text","text similarity","token overlap","bag of words","lexical duplicate screening"],"inputSchema":{"description":"The combined Unicode character length of a and b must be <= 50000; exceeding it returns 413.","properties":{"a":{"description":"First text. The combined length of a and b is limited.","maxLength":50000,"title":"A","type":"string"},"b":{"description":"Second text. The combined length of a and b is limited.","maxLength":50000,"title":"B","type":"string"}},"required":["a","b"],"title":"CompareIn","type":"object","x-max-total-characters":50000},"outputSchema":{"additionalProperties":false,"properties":{"similarity":{"description":"Sum of per-token minimum counts divided by max(words_a, words_b, 1), rounded to four decimal places. Both token-empty inputs score 0.","maximum":1,"minimum":0,"title":"Similarity","type":"number"},"words_a":{"description":"Number of Unicode regex \\w+ tokens in a.lower(), counting duplicates (digits and underscores included).","minimum":0,"title":"Words A","type":"integer"},"words_b":{"description":"Number of Unicode regex \\w+ tokens in b.lower(), counting duplicates (digits and underscores included).","minimum":0,"title":"Words B","type":"integer"}},"required":["similarity","words_a","words_b"],"title":"CompareOut","type":"object"},"examples":{"input":{"a":"Red red blue","b":"red BLUE green green"},"output":{"similarity":0.5,"words_a":3,"words_b":4}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/compare-text","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/3","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/3/examples","funnel":{"preview":null,"capability":"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 and words_b. Word order and punctuation are ignored; both token-empty inputs score 0, even when equal. Does not measure semantic similarity, Levenshtein edit distance, cosine similarity, or produce a text diff. POST application/json with a and b. Limit: 50000 input Unicode characters per request; for comparison, the lengths of a and b are added. Empty strings are accepted. Extra JSON properties are ignored. Errors after payment verification: 413 for the character limit; 422 for missing/non-string fields or malformed JSON, and for URL parsing errors. Unpaid calls return 402 with a base64 JSON PAYMENT-REQUIRED header before input validation. Handler error responses are not settled. ","required_input":{"description":"The combined Unicode character length of a and b must be <= 50000; exceeding it returns 413.","properties":{"a":{"description":"First text. The combined length of a and b is limited.","maxLength":50000,"title":"A","type":"string"},"b":{"description":"Second text. The combined length of a and b is limited.","maxLength":50000,"title":"B","type":"string"}},"required":["a","b"],"title":"CompareIn","type":"object","x-max-total-characters":50000},"example_input":{"a":"Red red blue","b":"red BLUE green green"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/3/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/3","price_usdc":"0.004000","paid_endpoint":"/v1/compare-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"change_impact_report","title":"See exactly what changed between two snapshots","url":"https://api.pay-forge.online/v2/change-impact-report","price_usdc":"0.025000","available":true,"reason":"When you need evidence-backed changed spans and supplied-snapshot impact rather than a similarity score.","schema_url":"https://api.pay-forge.online/v2/change-impact-report/schema","example_url":"https://api.pay-forge.online/v2/change-impact-report/example","preview":"/v2/change-impact-report/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"html_to_text","title":"Html to text","endpoint":"/v1/html-to-text","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"title":"Text","type":"string"}},"required":["text"],"title":"HtmlToTextOut","type":"object"},"examples":{"input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"output":{"text":"Hello\nAgent documents."}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/html-to-text","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/4","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/4/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"example_input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/4/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/4","price_usdc":"0.004000","paid_endpoint":"/v1/html-to-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"evidence_search_pack","title":"Find evidence in your supplied documents","url":"https://api.pay-forge.online/v2/evidence-search-pack","price_usdc":"0.020000","available":true,"reason":"Use the extracted text as a caller-supplied document for evidence search; no live web search is provided.","schema_url":"https://api.pay-forge.online/v2/evidence-search-pack/schema","example_url":"https://api.pay-forge.online/v2/evidence-search-pack/example","preview":"/v2/evidence-search-pack/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"html_to_markdown","title":"Html to markdown","endpoint":"/v1/html-to-markdown","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"markdown":{"title":"Markdown","type":"string"}},"required":["markdown"],"title":"HtmlToMarkdownOut","type":"object"},"examples":{"input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"output":{"markdown":"# Hello\n\nAgent documents."}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/html-to-markdown","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/5","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/5/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"example_input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/5/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/5","price_usdc":"0.004000","paid_endpoint":"/v1/html-to-markdown","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"html_metadata","title":"Html metadata","endpoint":"/v1/html-metadata","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"metadata":{"properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"canonical":{"title":"Canonical","type":"string"},"language":{"title":"Language","type":"string"},"meta":{"additionalProperties":{"type":"string"},"title":"Meta","type":"object"}},"required":["title","description","canonical","language","meta"],"title":"Metadata","type":"object"}},"required":["metadata"],"title":"HtmlMetadataOut","type":"object"},"examples":{"input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"output":{"metadata":{"title":"Example","description":"","canonical":"","language":"en","meta":{}}}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/html-metadata","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/6","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/6/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"example_input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/6/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/6","price_usdc":"0.004000","paid_endpoint":"/v1/html-metadata","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"html_links","title":"Html links","endpoint":"/v1/html-links","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"links":{"items":{"properties":{"url":{"title":"Url","type":"string"},"text":{"title":"Text","type":"string"}},"required":["url","text"],"title":"Link","type":"object"},"title":"Links","type":"array"}},"required":["links"],"title":"HtmlLinksOut","type":"object"},"examples":{"input":{"html":"<a href=\"https://example.com\">Example</a>"},"output":{"links":[{"url":"https://example.com","text":"Example"}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/html-links","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/7","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/7/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"example_input":{"html":"<a href=\"https://example.com\">Example</a>"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/7/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/7","price_usdc":"0.004000","paid_endpoint":"/v1/html-links","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"html_structured_data","title":"Html structured data","endpoint":"/v1/html-structured-data","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"structured_data":{"items":{"properties":{"value":{"title":"Value"},"valid":{"title":"Valid","type":"boolean"}},"required":["value","valid"],"title":"Structured","type":"object"},"title":"Structured Data","type":"array"}},"required":["structured_data"],"title":"HtmlStructuredDataOut","type":"object"},"examples":{"input":{"html":"<script type=\"application/ld+json\">{\"@type\":\"Article\"}</script>"},"output":{"structured_data":[{"value":{"@type":"Article"},"valid":true}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/html-structured-data","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/8","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/8/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"}},"required":["html"],"title":"Html","type":"object"},"example_input":{"html":"<script type=\"application/ld+json\">{\"@type\":\"Article\"}</script>"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/8/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/8","price_usdc":"0.004000","paid_endpoint":"/v1/html-structured-data","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","available":true,"reason":"After explicitly mapping extracted product fields into flat records; raw HTML/JSON-LD is not accepted directly by the catalog gate.","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","preview":"/v2/catalog-update-gate/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"repair_json","title":"Repair json","endpoint":"/v1/repair-json","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"value":{"title":"Value"},"json":{"title":"Json","type":"string"},"changes":{"items":{"type":"string"},"title":"Changes","type":"array"}},"required":["value","json","changes"],"title":"RepairJsonOut","type":"object"},"examples":{"input":{"text":"{'ok': True,}"},"output":{"value":{"ok":true},"json":"{\"ok\": true}","changes":["parsed_python_literal_subset"]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/repair-json","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/9","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/9/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"example_input":{"text":"{'ok': True,}"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/9/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/9","price_usdc":"0.004000","paid_endpoint":"/v1/repair-json","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","available":true,"reason":"After reviewing repaired data, reconcile an actual product batch against the accepted catalog; repair alone does not validate catalog values.","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","preview":"/v2/catalog-update-gate/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"normalize_json","title":"Normalize json","endpoint":"/v1/normalize-json","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"value":{"title":"Value"},"json":{"title":"Json","type":"string"}},"required":["value","json"],"title":"NormalizeJsonOut","type":"object"},"examples":{"input":{"text":"{\"b\":2, \"a\":1}"},"output":{"value":{"b":2,"a":1},"json":"{\"a\":1,\"b\":2}"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/normalize-json","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/10","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/10/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"example_input":{"text":"{\"b\":2, \"a\":1}"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/10/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/10","price_usdc":"0.004000","paid_endpoint":"/v1/normalize-json","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"schema_extract","title":"Extract typed fields from JSON with source pointers","url":"https://api.pay-forge.online/v2/schema-extract","price_usdc":"0.015000","available":true,"reason":"When you need explicitly typed fields with JSON-pointer provenance rather than JSON formatting.","schema_url":"https://api.pay-forge.online/v2/schema-extract/schema","example_url":"https://api.pay-forge.online/v2/schema-extract/example","preview":"/v2/schema-extract/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"extract_json_fields","title":"Extract json fields","endpoint":"/v1/extract-json-fields","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"},"pointers":{"items":{"type":"string"},"maxItems":100,"title":"Pointers","type":"array"}},"required":["text","pointers"],"title":"Pointers","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"fields":{"additionalProperties":true,"title":"Fields","type":"object"}},"required":["fields"],"title":"ExtractJsonFieldsOut","type":"object"},"examples":{"input":{"text":"{\"a\":{\"b\":2}}","pointers":["/a/b"]},"output":{"fields":{"/a/b":2}}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/extract-json-fields","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/11","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/11/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"},"pointers":{"items":{"type":"string"},"maxItems":100,"title":"Pointers","type":"array"}},"required":["text","pointers"],"title":"Pointers","type":"object"},"example_input":{"text":"{\"a\":{\"b\":2}}","pointers":["/a/b"]},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/11/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/11","price_usdc":"0.004000","paid_endpoint":"/v1/extract-json-fields","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"normalize_text","title":"Normalize text","endpoint":"/v1/normalize-text","amount_atomic":"4000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"title":"Text","type":"string"}},"required":["text"],"title":"NormalizeTextOut","type":"object"},"examples":{"input":{"text":"  Ｈｅｌｌｏ  world "},"output":{"text":"Hello world"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/normalize-text","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/12","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/12/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"example_input":{"text":"  Ｈｅｌｌｏ  world "},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/12/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/12","price_usdc":"0.004000","paid_endpoint":"/v1/normalize-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"extract_patterns","title":"Extract patterns","endpoint":"/v1/extract-patterns","amount_atomic":"4000","description":"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 x402 402 before input validation.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"emails":{"items":{"type":"string"},"title":"Emails","type":"array"},"urls":{"items":{"type":"string"},"title":"Urls","type":"array"},"money":{"items":{"type":"string"},"title":"Money","type":"array"},"dates":{"items":{"type":"string"},"title":"Dates","type":"array"},"evm_addresses":{"items":{"type":"string"},"title":"Evm Addresses","type":"array"}},"required":["emails","urls","money","dates","evm_addresses"],"title":"ExtractPatternsOut","type":"object"},"examples":{"input":{"text":"Email me@example.com on 2026-10-18."},"output":{"emails":["me@example.com"],"urls":[],"money":[],"dates":["2026-10-18"],"evm_addresses":[]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/extract-patterns","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/13","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/13/examples","funnel":{"preview":null,"capability":"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 x402 402 before input validation.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"example_input":{"text":"Email me@example.com on 2026-10-18."},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/13/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/13","price_usdc":"0.004000","paid_endpoint":"/v1/extract-patterns","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"deduplicate_documents","title":"Deduplicate documents","endpoint":"/v1/deduplicate-documents","amount_atomic":"5000","description":"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.","tags":["document processing","RAG"],"inputSchema":{"additionalProperties":false,"properties":{"items":{"items":{"type":"string"},"maxItems":100,"title":"Items","type":"array"}},"required":["items"],"title":"Items","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"unique":{"items":{"type":"string"},"title":"Unique","type":"array"},"duplicates":{"items":{"properties":{"index":{"title":"Index","type":"integer"},"duplicate_of":{"title":"Duplicate Of","type":"integer"}},"required":["index","duplicate_of"],"title":"Duplicate","type":"object"},"title":"Duplicates","type":"array"}},"required":["unique","duplicates"],"title":"DeduplicateDocumentsOut","type":"object"},"examples":{"input":{"items":[" Hello ","Hello","World"]},"output":{"unique":["Hello","World"],"duplicates":[{"index":1,"duplicate_of":0}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/deduplicate-documents","price_usdc":"0.005000","price_usd":0.005,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/14","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/14/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"items":{"items":{"type":"string"},"maxItems":100,"title":"Items","type":"array"}},"required":["items"],"title":"Items","type":"object"},"example_input":{"items":[" Hello ","Hello","World"]},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/14/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/14","price_usdc":"0.005000","paid_endpoint":"/v1/deduplicate-documents","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"deduplicate_urls","title":"Deduplicate urls","endpoint":"/v1/deduplicate-urls","amount_atomic":"5000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"items":{"items":{"type":"string"},"maxItems":100,"title":"Items","type":"array"}},"required":["items"],"title":"Items","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"unique":{"items":{"type":"string"},"title":"Unique","type":"array"},"duplicates":{"items":{"properties":{"index":{"title":"Index","type":"integer"},"duplicate_of":{"title":"Duplicate Of","type":"integer"}},"required":["index","duplicate_of"],"title":"Duplicate","type":"object"},"title":"Duplicates","type":"array"}},"required":["unique","duplicates"],"title":"DeduplicateUrlsOut","type":"object"},"examples":{"input":{"items":["https://example.com?utm_source=a","https://example.com/"]},"output":{"unique":["https://example.com/"],"duplicates":[{"index":1,"duplicate_of":0}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/deduplicate-urls","price_usdc":"0.005000","price_usd":0.005,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/15","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/15/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"items":{"items":{"type":"string"},"maxItems":100,"title":"Items","type":"array"}},"required":["items"],"title":"Items","type":"object"},"example_input":{"items":["https://example.com?utm_source=a","https://example.com/"]},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/15/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/15","price_usdc":"0.005000","paid_endpoint":"/v1/deduplicate-urls","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","available":true,"reason":"For conflicting product versions sharing a normalized URL; simple URL deduplication does not reconcile prices or accepted catalog state.","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","preview":"/v2/catalog-update-gate/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"chunk_text","title":"Chunk text","endpoint":"/v1/chunk-text","amount_atomic":"4000","description":"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.","tags":["document processing","RAG"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["text"],"title":"Chunk","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"chunks":{"items":{"properties":{"index":{"title":"Index","type":"integer"},"start":{"title":"Start","type":"integer"},"end":{"title":"End","type":"integer"},"text":{"title":"Text","type":"string"}},"required":["index","start","end","text"],"title":"ChunkItem","type":"object"},"title":"Chunks","type":"array"}},"required":["chunks"],"title":"ChunkTextOut","type":"object"},"examples":{"input":{"text":"Hello world","chunk_size":1500,"overlap":150},"output":{"chunks":[{"index":0,"start":0,"end":11,"text":"Hello world"}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/chunk-text","price_usdc":"0.004000","price_usd":0.004,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/16","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/16/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["text"],"title":"Chunk","type":"object"},"example_input":{"text":"Hello world","chunk_size":1500,"overlap":150},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/16/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/16","price_usdc":"0.004000","paid_endpoint":"/v1/chunk-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"prepare_document","title":"Prepare document","endpoint":"/v1/prepare-document","amount_atomic":"10000","description":"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.","tags":["document processing","RAG"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["text"],"title":"Chunk","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"title":"Text","type":"string"},"sha256":{"title":"Sha256","type":"string"},"removed_duplicate_lines":{"title":"Removed Duplicate Lines","type":"integer"},"entities":{"properties":{"emails":{"items":{"type":"string"},"title":"Emails","type":"array"},"urls":{"items":{"type":"string"},"title":"Urls","type":"array"},"money":{"items":{"type":"string"},"title":"Money","type":"array"},"dates":{"items":{"type":"string"},"title":"Dates","type":"array"},"evm_addresses":{"items":{"type":"string"},"title":"Evm Addresses","type":"array"}},"required":["emails","urls","money","dates","evm_addresses"],"title":"Patterns","type":"object"},"chunks":{"items":{"properties":{"index":{"title":"Index","type":"integer"},"start":{"title":"Start","type":"integer"},"end":{"title":"End","type":"integer"},"text":{"title":"Text","type":"string"}},"required":["index","start","end","text"],"title":"ChunkItem","type":"object"},"title":"Chunks","type":"array"}},"required":["text","sha256","removed_duplicate_lines","entities","chunks"],"title":"PrepareDocumentOut","type":"object"},"examples":{"input":{"text":"Hello world","chunk_size":1500,"overlap":150},"output":{"text":"Hello world","sha256":"64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c","removed_duplicate_lines":0,"entities":{"emails":[],"urls":[],"money":[],"dates":[],"evm_addresses":[]},"chunks":[{"index":0,"start":0,"end":11,"text":"Hello world"}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/prepare-document","price_usdc":"0.010000","price_usd":0.01,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/17","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/17/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["text"],"title":"Chunk","type":"object"},"example_input":{"text":"Hello world","chunk_size":1500,"overlap":150},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/17/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/17","price_usdc":"0.010000","paid_endpoint":"/v1/prepare-document","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"html_prepare_document","title":"Html prepare document","endpoint":"/v1/html-prepare-document","amount_atomic":"10000","description":"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.","tags":["document processing","RAG"],"inputSchema":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["html"],"title":"HtmlChunk","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"title":"Text","type":"string"},"markdown":{"title":"Markdown","type":"string"},"metadata":{"properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"canonical":{"title":"Canonical","type":"string"},"language":{"title":"Language","type":"string"},"meta":{"additionalProperties":{"type":"string"},"title":"Meta","type":"object"}},"required":["title","description","canonical","language","meta"],"title":"Metadata","type":"object"},"links":{"items":{"properties":{"url":{"title":"Url","type":"string"},"text":{"title":"Text","type":"string"}},"required":["url","text"],"title":"Link","type":"object"},"title":"Links","type":"array"},"structured_data":{"items":{"properties":{"value":{"title":"Value"},"valid":{"title":"Valid","type":"boolean"}},"required":["value","valid"],"title":"Structured","type":"object"},"title":"Structured Data","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"document":{"properties":{"text":{"title":"Text","type":"string"},"sha256":{"title":"Sha256","type":"string"},"removed_duplicate_lines":{"title":"Removed Duplicate Lines","type":"integer"},"entities":{"properties":{"emails":{"items":{"type":"string"},"title":"Emails","type":"array"},"urls":{"items":{"type":"string"},"title":"Urls","type":"array"},"money":{"items":{"type":"string"},"title":"Money","type":"array"},"dates":{"items":{"type":"string"},"title":"Dates","type":"array"},"evm_addresses":{"items":{"type":"string"},"title":"Evm Addresses","type":"array"}},"required":["emails","urls","money","dates","evm_addresses"],"title":"Patterns","type":"object"},"chunks":{"items":{"properties":{"index":{"title":"Index","type":"integer"},"start":{"title":"Start","type":"integer"},"end":{"title":"End","type":"integer"},"text":{"title":"Text","type":"string"}},"required":["index","start","end","text"],"title":"ChunkItem","type":"object"},"title":"Chunks","type":"array"}},"required":["text","sha256","removed_duplicate_lines","entities","chunks"],"title":"Document","type":"object"}},"required":["text","markdown","metadata","links","structured_data","limitations","document"],"title":"HtmlPrepareDocumentOut","type":"object"},"examples":{"input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"output":{"text":"Hello\nAgent documents.","markdown":"# Hello\n\nAgent documents.","metadata":{"title":"Example","description":"","canonical":"","language":"en","meta":{}},"links":[],"structured_data":[],"limitations":["Static HTML only; no JavaScript, CSS visibility, article detection, table reconstruction or microdata parsing."],"document":{"text":"Hello\nAgent documents.","sha256":"ad5d70c4710c7e4d89fd61cc8a948080c97155017935a37327b3c88d4ed9f88f","removed_duplicate_lines":0,"entities":{"emails":[],"urls":[],"money":[],"dates":[],"evm_addresses":[]},"chunks":[{"index":0,"start":0,"end":22,"text":"Hello\nAgent documents."}]}}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/html-prepare-document","price_usdc":"0.010000","price_usd":0.01,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/18","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/18/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"html":{"maxLength":50000,"title":"Html","type":"string"},"base_url":{"default":"","maxLength":2048,"title":"Base Url","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["html"],"title":"HtmlChunk","type":"object"},"example_input":{"html":"<html lang=\"en\"><title>Example</title><h1>Hello</h1><p>Agent documents.</p></html>"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/18/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/18","price_usdc":"0.010000","paid_endpoint":"/v1/html-prepare-document","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"batch_normalize_text","title":"Batch normalize text","endpoint":"/v1/batch-normalize-text","amount_atomic":"6000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"items":{"items":{"type":"string"},"maxItems":100,"title":"Items","type":"array"}},"required":["items"],"title":"Items","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"results":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"title":"Results","type":"array"}},"required":["results"],"title":"BatchNormalizeTextOut","type":"object"},"examples":{"input":{"items":[" Hello  world "," Ａ "]},"output":{"results":[{"text":"Hello world"},{"text":"A"}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/batch-normalize-text","price_usdc":"0.006000","price_usd":0.006,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/19","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/19/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"items":{"items":{"type":"string"},"maxItems":100,"title":"Items","type":"array"}},"required":["items"],"title":"Items","type":"object"},"example_input":{"items":[" Hello  world "," Ａ "]},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/19/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/19","price_usdc":"0.006000","paid_endpoint":"/v1/batch-normalize-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"csv_to_json","title":"Csv to json","endpoint":"/v1/csv-to-json","amount_atomic":"5000","description":"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.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"columns":{"items":{"type":"string"},"title":"Columns","type":"array"},"rows":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"title":"Rows","type":"array"}},"required":["columns","rows"],"title":"CsvToJsonOut","type":"object"},"examples":{"input":{"text":"name,count\nwidget,2\n"},"output":{"columns":["name","count"],"rows":[{"name":"widget","count":"2"}]}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/csv-to-json","price_usdc":"0.005000","price_usd":0.005,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/20","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/20/examples","funnel":{"preview":null,"capability":"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.","required_input":{"additionalProperties":false,"properties":{"text":{"maxLength":50000,"title":"Text","type":"string"}},"required":["text"],"title":"Text","type":"object"},"example_input":{"text":"name,count\nwidget,2\n"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/20/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/20","price_usdc":"0.005000","paid_endpoint":"/v1/csv-to-json","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","available":true,"reason":"After mapping CSV rows into bounded flat product records, reconcile with a previous accepted snapshot and explicit contract.","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","preview":"/v2/catalog-update-gate/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"url_to_text","title":"Url to text","endpoint":"/v1/url-to-text","amount_atomic":"6000","description":"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 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"}},"required":["url"],"title":"Url","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"title":"Text","type":"string"},"url":{"title":"Url","type":"string"}},"required":["text","url"],"title":"UrlToTextOut","type":"object"},"examples":{"input":{"url":"https://example.com"},"output":{"text":"Example Domain","url":"https://example.com"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/url-to-text","price_usdc":"0.006000","price_usd":0.006,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/21","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/21/examples","funnel":{"preview":null,"capability":"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 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.","required_input":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"}},"required":["url"],"title":"Url","type":"object"},"example_input":{"url":"https://example.com"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/21/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/21","price_usdc":"0.006000","paid_endpoint":"/v1/url-to-text","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"url_to_markdown","title":"Url to markdown","endpoint":"/v1/url-to-markdown","amount_atomic":"6000","description":"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 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"}},"required":["url"],"title":"Url","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"markdown":{"title":"Markdown","type":"string"},"url":{"title":"Url","type":"string"}},"required":["markdown","url"],"title":"UrlToMarkdownOut","type":"object"},"examples":{"input":{"url":"https://example.com"},"output":{"markdown":"# Example Domain","url":"https://example.com"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/url-to-markdown","price_usdc":"0.006000","price_usd":0.006,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/22","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/22/examples","funnel":{"preview":null,"capability":"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 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.","required_input":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"}},"required":["url"],"title":"Url","type":"object"},"example_input":{"url":"https://example.com"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/22/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/22","price_usdc":"0.006000","paid_endpoint":"/v1/url-to-markdown","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"webpage_metadata","title":"Webpage metadata","endpoint":"/v1/webpage-metadata","amount_atomic":"6000","description":"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 string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.","tags":["document processing","agent utility"],"inputSchema":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"}},"required":["url"],"title":"Url","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"metadata":{"properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"canonical":{"title":"Canonical","type":"string"},"language":{"title":"Language","type":"string"},"meta":{"additionalProperties":{"type":"string"},"title":"Meta","type":"object"}},"required":["title","description","canonical","language","meta"],"title":"Metadata","type":"object"},"url":{"title":"Url","type":"string"}},"required":["metadata","url"],"title":"WebpageMetadataOut","type":"object"},"examples":{"input":{"url":"https://example.com"},"output":{"metadata":{"title":"Example","description":"","canonical":"","language":"en","meta":{}},"url":"https://example.com"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/webpage-metadata","price_usdc":"0.006000","price_usd":0.006,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/23","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/23/examples","funnel":{"preview":null,"capability":"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 string characters; batch maximum 100. JSON POST; invalid input returns 422, size limit 413. Unpaid production requests return x402 402 before input validation.","required_input":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"}},"required":["url"],"title":"Url","type":"object"},"example_input":{"url":"https://example.com"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/23/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/23","price_usdc":"0.006000","paid_endpoint":"/v1/webpage-metadata","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"webpage_prepare_document","title":"Webpage prepare document","endpoint":"/v1/webpage-prepare-document","amount_atomic":"15000","description":"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 errors return 422 without settlement. 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.","tags":["document processing","RAG"],"inputSchema":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["url"],"title":"UrlChunk","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"text":{"title":"Text","type":"string"},"markdown":{"title":"Markdown","type":"string"},"metadata":{"properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"canonical":{"title":"Canonical","type":"string"},"language":{"title":"Language","type":"string"},"meta":{"additionalProperties":{"type":"string"},"title":"Meta","type":"object"}},"required":["title","description","canonical","language","meta"],"title":"Metadata","type":"object"},"links":{"items":{"properties":{"url":{"title":"Url","type":"string"},"text":{"title":"Text","type":"string"}},"required":["url","text"],"title":"Link","type":"object"},"title":"Links","type":"array"},"structured_data":{"items":{"properties":{"value":{"title":"Value"},"valid":{"title":"Valid","type":"boolean"}},"required":["value","valid"],"title":"Structured","type":"object"},"title":"Structured Data","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"document":{"properties":{"text":{"title":"Text","type":"string"},"sha256":{"title":"Sha256","type":"string"},"removed_duplicate_lines":{"title":"Removed Duplicate Lines","type":"integer"},"entities":{"properties":{"emails":{"items":{"type":"string"},"title":"Emails","type":"array"},"urls":{"items":{"type":"string"},"title":"Urls","type":"array"},"money":{"items":{"type":"string"},"title":"Money","type":"array"},"dates":{"items":{"type":"string"},"title":"Dates","type":"array"},"evm_addresses":{"items":{"type":"string"},"title":"Evm Addresses","type":"array"}},"required":["emails","urls","money","dates","evm_addresses"],"title":"Patterns","type":"object"},"chunks":{"items":{"properties":{"index":{"title":"Index","type":"integer"},"start":{"title":"Start","type":"integer"},"end":{"title":"End","type":"integer"},"text":{"title":"Text","type":"string"}},"required":["index","start","end","text"],"title":"ChunkItem","type":"object"},"title":"Chunks","type":"array"}},"required":["text","sha256","removed_duplicate_lines","entities","chunks"],"title":"Document","type":"object"},"url":{"title":"Url","type":"string"}},"required":["text","markdown","metadata","links","structured_data","limitations","document","url"],"title":"WebpagePrepareDocumentOut","type":"object"},"examples":{"input":{"url":"https://example.com"},"output":{"text":"Hello\nAgent documents.","markdown":"# Hello\n\nAgent documents.","metadata":{"title":"Example","description":"","canonical":"","language":"en","meta":{}},"links":[],"structured_data":[],"limitations":["Static HTML only; no JavaScript, CSS visibility, article detection, table reconstruction or microdata parsing."],"document":{"text":"Hello\nAgent documents.","sha256":"ad5d70c4710c7e4d89fd61cc8a948080c97155017935a37327b3c88d4ed9f88f","removed_duplicate_lines":0,"entities":{"emails":[],"urls":[],"money":[],"dates":[],"evm_addresses":[]},"chunks":[{"index":0,"start":0,"end":22,"text":"Hello\nAgent documents."}]},"url":"https://example.com"}},"available":true,"method":"POST","url":"https://api.pay-forge.online/v1/webpage-prepare-document","price_usdc":"0.015000","price_usd":0.015,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/24","example_url":"https://api.pay-forge.online/v2/manifest#/paid_products/24/examples","funnel":{"preview":null,"capability":"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 errors return 422 without settlement. 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.","required_input":{"additionalProperties":false,"properties":{"url":{"maxLength":2048,"title":"Url","type":"string"},"chunk_size":{"default":1500,"maximum":10000,"minimum":64,"title":"Chunk Size","type":"integer"},"overlap":{"default":150,"maximum":9999,"minimum":0,"title":"Overlap","type":"integer"}},"required":["url"],"title":"UrlChunk","type":"object"},"example_input":{"url":"https://example.com"},"example_output_url":"https://api.pay-forge.online/v2/manifest#/paid_products/24/examples","schema_url":"https://api.pay-forge.online/v2/manifest#/paid_products/24","price_usdc":"0.015000","paid_endpoint":"/v1/webpage-prepare-document","authorization_required":true,"execution_without_payment":false},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"evidence_search_pack","title":"Find evidence in your supplied documents","url":"https://api.pay-forge.online/v2/evidence-search-pack","price_usdc":"0.020000","available":true,"reason":"Use your resulting document text for evidence search across supplied documents; fetching and evidence search are separate scoped products.","schema_url":"https://api.pay-forge.online/v2/evidence-search-pack/schema","example_url":"https://api.pay-forge.online/v2/evidence-search-pack/example","preview":"/v2/evidence-search-pack/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"api_migration_pack","title":"API Migration Impact Pack","endpoint":"/v2/api-migration-pack","amount_atomic":"20000","description":"Compare two OpenAPI versions against the API operations you actually use. Return breaking changes, affected calls, prioritized migration actions and regression-test vectors with specification evidence. POST baseline/candidate/consumer JSON; optional policy. Idempotency-Key required for paid requests. Unknown/unsupported => REVIEW. 202: reuse original authorization/key/input; never pay again. Schema: https://api.pay-forge.online/v2/api-migration-pack/schema Free example: https://api.pay-forge.online/v2/api-migration-pack/example","tags":["OpenAPI","API migration","breaking changes","compatibility","regression tests","API agents","dependency update"],"inputSchema":{"additionalProperties":false,"properties":{"baseline":{"additionalProperties":true,"description":"Old/baseline OpenAPI 3.0.x or 3.1.x object in JSON; not YAML, a URL, or a file. Combined body <= 2097152 bytes; <= 500 operations per spec. Never fetched or executed.","title":"Baseline","type":"object"},"candidate":{"additionalProperties":true,"description":"New/candidate OpenAPI 3.0.x or 3.1.x JSON object; local references only. External references are not fetched; unsupported semantics produce review evidence.","title":"Candidate","type":"object"},"consumer":{"additionalProperties":false,"properties":{"operations":{"items":{"additionalProperties":false,"properties":{"method":{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"title":"Method","type":"string"},"path":{"maxLength":512,"pattern":"^/","title":"Path","type":"string"},"parameters":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":128,"minLength":1,"title":"Name","type":"string"},"location":{"enum":["query","header","path","cookie"],"title":"Location","type":"string"},"values":{"anyOf":[{"items":{},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"title":"Values"}},"required":["name","location"],"title":"ParameterUse","type":"object"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Omitted means inherit documented baseline parameters; [] means no parameters used.","title":"Parameters"},"request_fields":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"pointer":{"description":"RFC 6901 instance pointer, e.g. /id or /user/email. Numeric array indices supported.","maxLength":512,"pattern":"^(?:/(?:[^~]|~[01])*)*$","title":"Pointer","type":"string"},"type":{"anyOf":[{"enum":["string","integer","number","boolean","object","array","null"],"type":"string"},{"type":"null"}],"default":null,"title":"Type"},"required":{"default":true,"title":"Required","type":"boolean"},"allows_null":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Allows Null"},"values":{"anyOf":[{"items":{},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"description":"Known request values; response values are not interpreted as required output events.","title":"Values"}},"required":["pointer"],"title":"FieldUse","type":"object"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Omitted inherits the baseline request schema. Explicit fields narrow the declared usage.","title":"Request Fields"},"expected_response_fields":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"pointer":{"description":"RFC 6901 instance pointer, e.g. /id or /user/email. Numeric array indices supported.","maxLength":512,"pattern":"^(?:/(?:[^~]|~[01])*)*$","title":"Pointer","type":"string"},"type":{"anyOf":[{"enum":["string","integer","number","boolean","object","array","null"],"type":"string"},{"type":"null"}],"default":null,"title":"Type"},"required":{"default":true,"title":"Required","type":"boolean"},"allows_null":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Allows Null"},"values":{"anyOf":[{"items":{},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"description":"Known request values; response values are not interpreted as required output events.","title":"Values"}},"required":["pointer"],"title":"FieldUse","type":"object"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Omitted inherits baseline response guarantees; explicit assertions define fields actually read.","title":"Expected Response Fields"},"response_statuses":{"anyOf":[{"items":{"type":"string"},"maxItems":30,"type":"array"},{"type":"null"}],"default":null,"title":"Response Statuses"},"request_content_types":{"anyOf":[{"items":{"type":"string"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"title":"Request Content Types"},"response_content_types":{"anyOf":[{"items":{"type":"string"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"title":"Response Content Types"},"sends_request_body":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Sends Request Body"}},"required":["method","path"],"title":"ConsumerOperation","type":"object"},"maxItems":20,"minItems":1,"title":"Operations","type":"array"}},"required":["operations"],"title":"ConsumerManifest","type":"object","description":"Required usage manifest: 1-20 unique method/path operations actually used. Omitted usage facets inherit baseline; explicit [] declares no usage."},"policy":{"additionalProperties":false,"properties":{"ruleset_version":{"default":"consumer-migration/0.1.0","title":"Ruleset Version","type":"string"},"response_scope":{"default":"success","enum":["success","all"],"title":"Response Scope","type":"string"}},"title":"Policy","type":"object","description":"Optional; defaults to consumer-migration/0.1.0 and success response scope. Unknown ruleset produces review evidence."}},"required":["baseline","candidate","consumer"],"title":"MigrationInput","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"decision":{"description":"REVIEW takes precedence for unsupported/unknown evidence or medium findings; otherwise blocking findings yield BLOCK_RELEASE. NO_KNOWN_BREAK covers declared documented contracts only.","enum":["BLOCK_RELEASE","REVIEW","NO_KNOWN_BREAK"],"title":"Decision","type":"string"},"severity_score":{"description":"Maximum deterministic rule severity: 0 none, 40 medium or incomplete coverage, 80 high, 100 critical; not a probability.","maximum":100,"minimum":0,"title":"Severity Score","type":"integer"},"severity_score_meaning":{"title":"Severity Score Meaning","type":"string"},"consumer_impact_summary":{"additionalProperties":false,"properties":{"findings":{"title":"Findings","type":"integer"},"affected_operations":{"title":"Affected Operations","type":"integer"},"blocking_findings":{"title":"Blocking Findings","type":"integer"},"review_findings":{"title":"Review Findings","type":"integer"},"critical_findings":{"title":"Critical Findings","type":"integer"}},"required":["findings","affected_operations","blocking_findings","review_findings","critical_findings"],"title":"ImpactSummary","type":"object"},"affected_operations":{"description":"Breaking-change findings for consumed method/path operations. baseline_pointer and candidate_pointer are RFC 6901 pointers into the respective input specifications; *_present distinguishes absent values from null.","items":{"additionalProperties":false,"properties":{"finding_id":{"title":"Finding Id","type":"string"},"rule_id":{"title":"Rule Id","type":"string"},"severity":{"enum":["CRITICAL","HIGH","MEDIUM"],"title":"Severity","type":"string"},"method":{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"title":"Method","type":"string"},"path":{"title":"Path","type":"string"},"baseline_pointer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baseline Pointer"},"candidate_pointer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Pointer"},"baseline_present":{"title":"Baseline Present","type":"boolean"},"candidate_present":{"title":"Candidate Present","type":"boolean"},"before":{"title":"Before"},"after":{"title":"After"},"why_this_breaks_this_consumer":{"title":"Why This Breaks This Consumer","type":"string"},"recommended_migration_action":{"title":"Recommended Migration Action","type":"string"},"confidence":{"enum":["HIGH","LIMITED"],"title":"Confidence","type":"string"},"evidence_status":{"enum":["DOCUMENTED_CONTRACT","REQUIRES_REVIEW"],"title":"Evidence Status","type":"string"},"impact_basis":{"enum":["EXPLICIT_CONSUMER","INHERITED_BASELINE","UNAVOIDABLE_NEW_REQUIREMENT"],"title":"Impact Basis","type":"string"}},"required":["finding_id","rule_id","severity","method","path","baseline_pointer","candidate_pointer","baseline_present","candidate_present","before","after","why_this_breaks_this_consumer","recommended_migration_action","confidence","evidence_status","impact_basis"],"title":"Finding","type":"object"},"title":"Affected Operations","type":"array"},"prioritized_migration_tasks":{"items":{"additionalProperties":false,"properties":{"task_id":{"title":"Task Id","type":"string"},"priority":{"title":"Priority","type":"integer"},"finding_id":{"title":"Finding Id","type":"string"},"method":{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"title":"Method","type":"string"},"path":{"title":"Path","type":"string"},"action":{"title":"Action","type":"string"},"acceptance_check":{"title":"Acceptance Check","type":"string"}},"required":["task_id","priority","finding_id","method","path","action","acceptance_check"],"title":"MigrationTask","type":"object"},"title":"Prioritized Migration Tasks","type":"array"},"contract_test_vectors":{"items":{"additionalProperties":false,"properties":{"test_id":{"title":"Test Id","type":"string"},"finding_id":{"title":"Finding Id","type":"string"},"method":{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"title":"Method","type":"string"},"path":{"title":"Path","type":"string"},"purpose":{"title":"Purpose","type":"string"},"execution":{"const":"OFFLINE_ONLY","default":"OFFLINE_ONLY","title":"Execution","type":"string"},"predicate":{"enum":["baseline_contract_unchanged","instance_accepted","consumer_field_guaranteed","effective_security_unchanged","request_parameter_presence","request_body_presence","required_property_presence","response_required_guarantee"],"title":"Predicate","type":"string"},"baseline_pointer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baseline Pointer"},"candidate_pointer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Pointer"},"fixture":{"title":"Fixture"},"expected_baseline":{"enum":["PASS","FAIL","REVIEW"],"title":"Expected Baseline","type":"string"},"expected_candidate":{"enum":["PASS","FAIL","REVIEW"],"title":"Expected Candidate","type":"string"},"requires_network":{"const":false,"default":false,"title":"Requires Network","type":"boolean"},"limitation":{"title":"Limitation","type":"string"}},"required":["test_id","finding_id","method","path","purpose","predicate","baseline_pointer","candidate_pointer","fixture","expected_baseline","expected_candidate","limitation"],"title":"ContractTestVector","type":"object"},"title":"Contract Test Vectors","type":"array"},"unsupported_constructs":{"items":{"additionalProperties":false,"properties":{"code":{"title":"Code","type":"string"},"source":{"enum":["baseline","candidate","consumer","policy"],"title":"Source","type":"string"},"pointer":{"title":"Pointer","type":"string"},"reason":{"title":"Reason","type":"string"},"method":{"anyOf":[{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"type":"string"},{"type":"null"}],"default":null,"title":"Method"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Path"}},"required":["code","source","pointer","reason"],"title":"EvidenceIssue","type":"object"},"title":"Unsupported Constructs","type":"array"},"explicit_unknowns":{"items":{"additionalProperties":false,"properties":{"code":{"title":"Code","type":"string"},"source":{"enum":["baseline","candidate","consumer","policy"],"title":"Source","type":"string"},"pointer":{"title":"Pointer","type":"string"},"reason":{"title":"Reason","type":"string"},"method":{"anyOf":[{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"type":"string"},{"type":"null"}],"default":null,"title":"Method"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Path"}},"required":["code","source","pointer","reason"],"title":"EvidenceIssue","type":"object"},"title":"Explicit Unknowns","type":"array"},"coverage":{"additionalProperties":false,"properties":{"scope":{"const":"DECLARED_CONSUMER_DOCUMENTED_CONTRACTS","title":"Scope","type":"string"},"complete":{"title":"Complete","type":"boolean"},"baseline_operations":{"title":"Baseline Operations","type":"integer"},"candidate_operations":{"title":"Candidate Operations","type":"integer"},"consumer_operations":{"title":"Consumer Operations","type":"integer"},"analyzed_operations":{"title":"Analyzed Operations","type":"integer"},"ignored_baseline_operations":{"title":"Ignored Baseline Operations","type":"integer"},"supported_rule_ids":{"items":{"type":"string"},"title":"Supported Rule Ids","type":"array"},"unsupported_count":{"title":"Unsupported Count","type":"integer"},"unknown_count":{"title":"Unknown Count","type":"integer"},"limits":{"additionalProperties":{"type":"integer"},"title":"Limits","type":"object"},"assumptions":{"items":{"type":"string"},"title":"Assumptions","type":"array"}},"required":["scope","complete","baseline_operations","candidate_operations","consumer_operations","analyzed_operations","ignored_baseline_operations","supported_rule_ids","unsupported_count","unknown_count","limits","assumptions"],"title":"Coverage","type":"object"},"input_hashes":{"additionalProperties":false,"properties":{"baseline":{"pattern":"^[0-9a-f]{64}$","title":"Baseline","type":"string"},"candidate":{"pattern":"^[0-9a-f]{64}$","title":"Candidate","type":"string"},"consumer":{"pattern":"^[0-9a-f]{64}$","title":"Consumer","type":"string"},"policy":{"pattern":"^[0-9a-f]{64}$","title":"Policy","type":"string"}},"required":["baseline","candidate","consumer","policy"],"title":"InputHashes","type":"object"},"ruleset_version":{"title":"Ruleset Version","type":"string"}},"required":["decision","severity_score","severity_score_meaning","consumer_impact_summary","affected_operations","prioritized_migration_tasks","contract_test_vectors","unsupported_constructs","explicit_unknowns","coverage","input_hashes","ruleset_version"],"title":"PackOutput","type":"object"},"examples":{"input":{"baseline":{"openapi":"3.0.3","info":{"title":"Orders","version":"1"},"paths":{"/orders":{"get":{"responses":{"200":{"description":"Orders"}}}}}},"consumer":{"operations":[{"method":"GET","path":"/orders","parameters":[]}]},"candidate":{"openapi":"3.0.3","info":{"title":"Orders","version":"2"},"paths":{"/orders":{"get":{"responses":{"200":{"description":"Orders"}},"parameters":[{"name":"region","in":"query","required":true,"schema":{"type":"string"}}]}}}}},"output":{"decision":"BLOCK_RELEASE","severity_score":80,"severity_score_meaning":"Deterministic maximum rule severity, not a probability or a safety certification.","consumer_impact_summary":{"findings":1,"affected_operations":1,"blocking_findings":1,"review_findings":0,"critical_findings":0},"affected_operations":[{"rule_id":"request.required_parameter_added","severity":"HIGH","method":"GET","path":"/orders","baseline_pointer":"/paths/~1orders/get","candidate_pointer":"/paths/~1orders/get/parameters/0","baseline_present":false,"candidate_present":true,"before":null,"after":{"name":"region","in":"query","required":true,"schema":{"type":"string"}},"why_this_breaks_this_consumer":"Candidate requires query parameter region, which this consumer could omit.","recommended_migration_action":"Supply region in query on every request.","confidence":"HIGH","evidence_status":"DOCUMENTED_CONTRACT","impact_basis":"UNAVOIDABLE_NEW_REQUIREMENT","finding_id":"f_7c47f6f826e0ad995979"}],"prioritized_migration_tasks":[{"task_id":"m_7c47f6f826e0ad995979","priority":1,"finding_id":"f_7c47f6f826e0ad995979","method":"GET","path":"/orders","action":"Supply region in query on every request.","acceptance_check":"Re-run the attached offline vector and execute application tests after migration; do not use this result as proof of runtime behavior."}],"contract_test_vectors":[{"test_id":"t_7c47f6f826e0ad995979","finding_id":"f_7c47f6f826e0ad995979","method":"GET","path":"/orders","purpose":"Candidate requires query parameter region, which this consumer could omit.","execution":"OFFLINE_ONLY","predicate":"request_parameter_presence","baseline_pointer":"/paths/~1orders/get","candidate_pointer":"/paths/~1orders/get/parameters/0","fixture":{"parameter":"region","location":"query","supplied":false},"expected_baseline":"PASS","expected_candidate":"FAIL","requires_network":false,"limitation":"Checks declared JSON contracts only. Run application integration tests separately; no network request was executed."}],"unsupported_constructs":[],"explicit_unknowns":[],"coverage":{"scope":"DECLARED_CONSUMER_DOCUMENTED_CONTRACTS","complete":true,"baseline_operations":1,"candidate_operations":1,"consumer_operations":1,"analyzed_operations":1,"ignored_baseline_operations":0,"supported_rule_ids":["operation.removed","http_method.removed","request.required_parameter_added","request.parameter_removed","request.parameter_location_changed","request.parameter_type_changed","request.required_property_added","response.status_removed","response.field_removed","response.field_type_changed","request.nullability_narrowed","response.nullability_widened","request.enum_value_removed","response.enum_value_added","request.content_type_removed","response.content_type_removed","request.body_newly_required","security.requirement_changed","request.property_removed","response.required_guarantee_removed","request.field_type_changed"],"unsupported_count":0,"unknown_count":0,"limits":{"combined_bytes":2097152,"operations_per_spec":500,"consumer_operations":20,"json_depth":48,"json_nodes":60000,"work_units":30000,"findings":500},"assumptions":["Only the declared consumer operations are assessed.","Omitted usage facets inherit documented baseline contracts; explicit empty lists declare no usage.","OpenAPI declarations do not prove live implementation behavior.","No credentials, callbacks, production probes or payments are used.","No application tests were executed; attached vectors are offline contract checks."]},"input_hashes":{"baseline":"29b7617e0246dc8fa97eb3f2c772a90299edb6705161a56e44c93e59c6947b1b","candidate":"e92fc6096a0b5a6c2834eba34a75a04387bfe396853903037cbbdf469712ae39","consumer":"683485def5adb20159c69c942bc5a7c62f36e95bba1736483caa25fb5939bd57","policy":"221d1377dbc994635e7bd2d4c33ff44bb90daf4241117c9c0cf7a1c665dabac5"},"ruleset_version":"consumer-migration/0.1.0"}},"available":true,"schema_url":"https://api.pay-forge.online/v2/api-migration-pack/schema","example_url":"https://api.pay-forge.online/v2/api-migration-pack/example","preview":"/v2/api-migration-scout","method":"POST","url":"https://api.pay-forge.online/v2/api-migration-pack","price_usdc":"0.020000","price_usd":0.02,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","funnel":{"preview":"/v2/api-migration-scout","capability":"Compare two OpenAPI versions against the API operations you actually use. Return breaking changes, affected calls, prioritized migration actions and regression-test vectors with specification evidence. POST baseline/candidate/consumer JSON; optional policy. Idempotency-Key required for paid requests. Unknown/unsupported => REVIEW. 202: reuse original authorization/key/input; never pay again. Schema: https://api.pay-forge.online/v2/api-migration-pack/schema Free example: https://api.pay-forge.online/v2/api-migration-pack/example","required_input":{"additionalProperties":false,"properties":{"baseline":{"additionalProperties":true,"description":"Old/baseline OpenAPI 3.0.x or 3.1.x object in JSON; not YAML, a URL, or a file. Combined body <= 2097152 bytes; <= 500 operations per spec. Never fetched or executed.","title":"Baseline","type":"object"},"candidate":{"additionalProperties":true,"description":"New/candidate OpenAPI 3.0.x or 3.1.x JSON object; local references only. External references are not fetched; unsupported semantics produce review evidence.","title":"Candidate","type":"object"},"consumer":{"additionalProperties":false,"properties":{"operations":{"items":{"additionalProperties":false,"properties":{"method":{"enum":["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],"title":"Method","type":"string"},"path":{"maxLength":512,"pattern":"^/","title":"Path","type":"string"},"parameters":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":128,"minLength":1,"title":"Name","type":"string"},"location":{"enum":["query","header","path","cookie"],"title":"Location","type":"string"},"values":{"anyOf":[{"items":{},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"title":"Values"}},"required":["name","location"],"title":"ParameterUse","type":"object"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Omitted means inherit documented baseline parameters; [] means no parameters used.","title":"Parameters"},"request_fields":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"pointer":{"description":"RFC 6901 instance pointer, e.g. /id or /user/email. Numeric array indices supported.","maxLength":512,"pattern":"^(?:/(?:[^~]|~[01])*)*$","title":"Pointer","type":"string"},"type":{"anyOf":[{"enum":["string","integer","number","boolean","object","array","null"],"type":"string"},{"type":"null"}],"default":null,"title":"Type"},"required":{"default":true,"title":"Required","type":"boolean"},"allows_null":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Allows Null"},"values":{"anyOf":[{"items":{},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"description":"Known request values; response values are not interpreted as required output events.","title":"Values"}},"required":["pointer"],"title":"FieldUse","type":"object"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Omitted inherits the baseline request schema. Explicit fields narrow the declared usage.","title":"Request Fields"},"expected_response_fields":{"anyOf":[{"items":{"additionalProperties":false,"properties":{"pointer":{"description":"RFC 6901 instance pointer, e.g. /id or /user/email. Numeric array indices supported.","maxLength":512,"pattern":"^(?:/(?:[^~]|~[01])*)*$","title":"Pointer","type":"string"},"type":{"anyOf":[{"enum":["string","integer","number","boolean","object","array","null"],"type":"string"},{"type":"null"}],"default":null,"title":"Type"},"required":{"default":true,"title":"Required","type":"boolean"},"allows_null":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Allows Null"},"values":{"anyOf":[{"items":{},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"description":"Known request values; response values are not interpreted as required output events.","title":"Values"}},"required":["pointer"],"title":"FieldUse","type":"object"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"description":"Omitted inherits baseline response guarantees; explicit assertions define fields actually read.","title":"Expected Response Fields"},"response_statuses":{"anyOf":[{"items":{"type":"string"},"maxItems":30,"type":"array"},{"type":"null"}],"default":null,"title":"Response Statuses"},"request_content_types":{"anyOf":[{"items":{"type":"string"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"title":"Request Content Types"},"response_content_types":{"anyOf":[{"items":{"type":"string"},"maxItems":20,"type":"array"},{"type":"null"}],"default":null,"title":"Response Content Types"},"sends_request_body":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Sends Request Body"}},"required":["method","path"],"title":"ConsumerOperation","type":"object"},"maxItems":20,"minItems":1,"title":"Operations","type":"array"}},"required":["operations"],"title":"ConsumerManifest","type":"object","description":"Required usage manifest: 1-20 unique method/path operations actually used. Omitted usage facets inherit baseline; explicit [] declares no usage."},"policy":{"additionalProperties":false,"properties":{"ruleset_version":{"default":"consumer-migration/0.1.0","title":"Ruleset Version","type":"string"},"response_scope":{"default":"success","enum":["success","all"],"title":"Response Scope","type":"string"}},"title":"Policy","type":"object","description":"Optional; defaults to consumer-migration/0.1.0 and success response scope. Unknown ruleset produces review evidence."}},"required":["baseline","candidate","consumer"],"title":"MigrationInput","type":"object"},"example_input":{"baseline":{"openapi":"3.0.3","info":{"title":"Orders","version":"1"},"paths":{"/orders":{"get":{"responses":{"200":{"description":"Orders"}}}}}},"consumer":{"operations":[{"method":"GET","path":"/orders","parameters":[]}]},"candidate":{"openapi":"3.0.3","info":{"title":"Orders","version":"2"},"paths":{"/orders":{"get":{"responses":{"200":{"description":"Orders"}},"parameters":[{"name":"region","in":"query","required":true,"schema":{"type":"string"}}]}}}}},"example_output_url":"https://api.pay-forge.online/v2/api-migration-pack/example","schema_url":"https://api.pay-forge.online/v2/api-migration-pack/schema","price_usdc":"0.020000","paid_endpoint":"/v2/api-migration-pack","authorization_required":true,"execution_without_payment":false,"buyer_page_url":"https://api.pay-forge.online/tools/api-migration-pack"},"buyer_page_url":"https://api.pay-forge.online/tools/api-migration-pack","buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","available":true,"reason":"If the change is in product records rather than an API contract, use the catalog gate with current/previous product records and a flat contract.","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","preview":"/v2/catalog-update-gate/preview","automatic_execution":false,"separate_authorization_required":true}]},{"name":"evidence_search_pack","title":"Find evidence in your supplied documents","endpoint":"/v2/evidence-search-pack","amount_atomic":"20000","description":"Search up to eight supplied text documents. Return ranked matching excerpts, exact offsets and source hashes. No web search or external retrieval.","tags":["document search","evidence","source spans"],"inputSchema":{"additionalProperties":false,"properties":{"query":{"maxLength":500,"minLength":1,"title":"Query","type":"string"},"documents":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":80,"minLength":1,"pattern":"^[\\w.-]+$","title":"Id","type":"string"},"text":{"maxLength":16000,"minLength":1,"title":"Text","type":"string"},"provenance":{"default":"caller-supplied","maxLength":500,"title":"Provenance","type":"string"}},"required":["id","text"],"title":"Source","type":"object"},"maxItems":8,"minItems":1,"title":"Documents","type":"array"}},"required":["query","documents"],"title":"SearchInput","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"product":{"title":"Product","type":"string"},"result":{"additionalProperties":false,"properties":{"query":{"title":"Query","type":"string"},"matches":{"items":{"additionalProperties":false,"properties":{"source_id":{"title":"Source Id","type":"string"},"start":{"title":"Start","type":"integer"},"end":{"title":"End","type":"integer"},"text":{"title":"Text","type":"string"},"matched_terms":{"items":{"type":"string"},"title":"Matched Terms","type":"array"},"score":{"title":"Score","type":"integer"}},"required":["source_id","start","end","text","matched_terms","score"],"title":"SearchHit","type":"object"},"title":"Matches","type":"array"},"truncated":{"title":"Truncated","type":"boolean"},"unmatched_terms":{"items":{"type":"string"},"title":"Unmatched Terms","type":"array"},"search_scope":{"const":"supplied_documents_only","title":"Search Scope","type":"string"}},"required":["query","matches","truncated","unmatched_terms","search_scope"],"title":"SearchResult","type":"object"},"evidence":{"items":{"additionalProperties":true,"type":"object"},"title":"Evidence","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"next_actions":{"items":{"additionalProperties":false,"properties":{"capability":{"title":"Capability","type":"string"},"endpoint":{"title":"Endpoint","type":"string"},"reason":{"title":"Reason","type":"string"},"price_usdc":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Price Usdc"}},"required":["capability","endpoint","reason"],"title":"Action","type":"object"},"title":"Next Actions","type":"array"}},"required":["product","result","evidence","limitations","next_actions"],"title":"SearchOutcome","type":"object"},"examples":{"input":{"query":"refund policy","documents":[{"id":"policy","text":"Refund policy: contact support within 14 days. Shipping takes three days.","provenance":"caller-supplied policy v1"}]},"output":{"product":"evidence-search-pack","result":{"query":"refund policy","matches":[{"source_id":"policy","start":0,"end":46,"text":"Refund policy: contact support within 14 days.","matched_terms":["policy","refund"],"score":2}],"truncated":false,"unmatched_terms":[],"search_scope":"supplied_documents_only"},"evidence":[{"source_id":"policy","sha256":"137ab68b5be14d6119381cd675fde2f5e414b115d61493db3ccff868fbe0bb2d","provenance":"caller-supplied policy v1"}],"limitations":["Caller-supplied source identity and authenticity are not independently verified.","No third-party services were called.","Lexical retrieval only; no semantic entailment or web coverage is claimed."],"next_actions":[{"capability":"change_impact_report","endpoint":"/v2/change-impact-report/preview","reason":"If you also have an older snapshot of a matched source, preview the exact differences.","price_usdc":null}]}},"available":true,"preview":"/v2/evidence-search-pack/preview","schema_url":"https://api.pay-forge.online/v2/evidence-search-pack/schema","example_url":"https://api.pay-forge.online/v2/evidence-search-pack/example","expected_output":"Ranked source excerpts with offsets, hashes and explicit coverage.","scope":"caller_supplied_data_only","method":"POST","url":"https://api.pay-forge.online/v2/evidence-search-pack","price_usdc":"0.020000","price_usd":0.02,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","funnel":{"preview":"/v2/evidence-search-pack/preview","capability":"Search up to eight supplied text documents. Return ranked matching excerpts, exact offsets and source hashes. No web search or external retrieval.","required_input":{"additionalProperties":false,"properties":{"query":{"maxLength":500,"minLength":1,"title":"Query","type":"string"},"documents":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":80,"minLength":1,"pattern":"^[\\w.-]+$","title":"Id","type":"string"},"text":{"maxLength":16000,"minLength":1,"title":"Text","type":"string"},"provenance":{"default":"caller-supplied","maxLength":500,"title":"Provenance","type":"string"}},"required":["id","text"],"title":"Source","type":"object"},"maxItems":8,"minItems":1,"title":"Documents","type":"array"}},"required":["query","documents"],"title":"SearchInput","type":"object"},"example_input":{"query":"refund policy","documents":[{"id":"policy","text":"Refund policy: contact support within 14 days. Shipping takes three days.","provenance":"caller-supplied policy v1"}]},"example_output_url":"https://api.pay-forge.online/v2/evidence-search-pack/example","schema_url":"https://api.pay-forge.online/v2/evidence-search-pack/schema","price_usdc":"0.020000","paid_endpoint":"/v2/evidence-search-pack","authorization_required":true,"execution_without_payment":false,"runnable_http_example":"https://api.pay-forge.online/v2/examples/evidence-search-pack.sh"},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"change_impact_report","title":"See exactly what changed between two snapshots","endpoint":"/v2/change-impact-report","amount_atomic":"25000","description":"Compare two supplied text snapshots. Return added, removed and replaced line ranges, before/after evidence and review actions. No scheduled monitoring or inferred business impact.","tags":["change detection","snapshot comparison","evidence"],"inputSchema":{"additionalProperties":false,"properties":{"baseline":{"maxLength":32000,"title":"Baseline","type":"string"},"candidate":{"maxLength":32000,"title":"Candidate","type":"string"},"label":{"default":"supplied snapshots","maxLength":120,"title":"Label","type":"string"}},"required":["baseline","candidate"],"title":"ChangeInput","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"product":{"title":"Product","type":"string"},"result":{"additionalProperties":false,"properties":{"label":{"title":"Label","type":"string"},"changed":{"title":"Changed","type":"boolean"},"changes":{"items":{"additionalProperties":false,"properties":{"kind":{"enum":["insert","delete","replace"],"title":"Kind","type":"string"},"baseline_lines":{"items":{"type":"integer"},"title":"Baseline Lines","type":"array"},"candidate_lines":{"items":{"type":"integer"},"title":"Candidate Lines","type":"array"},"before":{"items":{"type":"string"},"title":"Before","type":"array"},"after":{"items":{"type":"string"},"title":"After","type":"array"},"action":{"title":"Action","type":"string"}},"required":["kind","baseline_lines","candidate_lines","before","after","action"],"title":"ChangeGroup","type":"object"},"title":"Changes","type":"array"},"truncated":{"title":"Truncated","type":"boolean"},"impact_semantics":{"const":"textual_review_required","title":"Impact Semantics","type":"string"}},"required":["label","changed","changes","truncated","impact_semantics"],"title":"ChangeResult","type":"object"},"evidence":{"items":{"additionalProperties":true,"type":"object"},"title":"Evidence","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"next_actions":{"items":{"additionalProperties":false,"properties":{"capability":{"title":"Capability","type":"string"},"endpoint":{"title":"Endpoint","type":"string"},"reason":{"title":"Reason","type":"string"},"price_usdc":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Price Usdc"}},"required":["capability","endpoint","reason"],"title":"Action","type":"object"},"title":"Next Actions","type":"array"}},"required":["product","result","evidence","limitations","next_actions"],"title":"ChangeOutcome","type":"object"},"examples":{"input":{"baseline":"GET /orders\nregion optional","candidate":"GET /orders\nregion required","label":"Orders notes"},"output":{"product":"change-impact-report","result":{"label":"Orders notes","changed":true,"changes":[{"kind":"replace","baseline_lines":[1,2],"candidate_lines":[1,2],"before":["region optional"],"after":["region required"],"action":"Review this exact textual change before relying on the new snapshot."}],"truncated":false,"impact_semantics":"textual_review_required"},"evidence":[{"source":"baseline","sha256":"84682662cb92022f3e4b63bdcc6ac160595dcf62046eafe6ad3afcdd40474954"},{"source":"candidate","sha256":"8ed001daa7a42c497c4a5e2f834c1f332f9c17242b3bc77152eb9490de5a7bb2"}],"limitations":["Caller-supplied source identity and authenticity are not independently verified.","No third-party services were called.","Textual differences do not certify business impact or API compatibility.","No scheduling, URL fetching or background monitoring is performed."],"next_actions":[{"capability":"evidence_search_pack","endpoint":"/v2/evidence-search-pack/preview","reason":"Search your supplied documents for terms appearing in the changed lines.","price_usdc":null}]}},"available":true,"preview":"/v2/change-impact-report/preview","schema_url":"https://api.pay-forge.online/v2/change-impact-report/schema","example_url":"https://api.pay-forge.online/v2/change-impact-report/example","expected_output":"Deterministic line changes, source hashes, review actions and truncation flag.","scope":"caller_supplied_data_only","method":"POST","url":"https://api.pay-forge.online/v2/change-impact-report","price_usdc":"0.025000","price_usd":0.025,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","funnel":{"preview":"/v2/change-impact-report/preview","capability":"Compare two supplied text snapshots. Return added, removed and replaced line ranges, before/after evidence and review actions. No scheduled monitoring or inferred business impact.","required_input":{"additionalProperties":false,"properties":{"baseline":{"maxLength":32000,"title":"Baseline","type":"string"},"candidate":{"maxLength":32000,"title":"Candidate","type":"string"},"label":{"default":"supplied snapshots","maxLength":120,"title":"Label","type":"string"}},"required":["baseline","candidate"],"title":"ChangeInput","type":"object"},"example_input":{"baseline":"GET /orders\nregion optional","candidate":"GET /orders\nregion required","label":"Orders notes"},"example_output_url":"https://api.pay-forge.online/v2/change-impact-report/example","schema_url":"https://api.pay-forge.online/v2/change-impact-report/schema","price_usdc":"0.025000","paid_endpoint":"/v2/change-impact-report","authorization_required":true,"execution_without_payment":false,"runnable_http_example":"https://api.pay-forge.online/v2/examples/change-impact-report.sh"},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"schema_extract","title":"Extract typed fields from JSON with source pointers","endpoint":"/v2/schema-extract","amount_atomic":"15000","description":"Map up to 30 JSON Pointers to named typed fields in your supplied JSON. Return values, missing/type errors and pointer evidence. No coercion, OCR, scraping or generated fields.","tags":["JSON extraction","typed fields","provenance"],"inputSchema":{"additionalProperties":false,"properties":{"document":{"additionalProperties":true,"title":"Document","type":"object"},"fields":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":80,"minLength":1,"pattern":"^[a-zA-Z][\\w-]*$","title":"Name","type":"string"},"pointer":{"maxLength":512,"pattern":"^(?:/(?:[^~]|~[01])*)*$","title":"Pointer","type":"string"},"type":{"enum":["string","integer","number","boolean","object","array","null"],"title":"Type","type":"string"},"required":{"default":true,"title":"Required","type":"boolean"}},"required":["name","pointer","type"],"title":"ExtractField","type":"object"},"maxItems":30,"minItems":1,"title":"Fields","type":"array"}},"required":["document","fields"],"title":"ExtractInput","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"product":{"title":"Product","type":"string"},"result":{"additionalProperties":false,"properties":{"fields":{"additionalProperties":true,"title":"Fields","type":"object"},"findings":{"items":{"additionalProperties":false,"properties":{"field":{"title":"Field","type":"string"},"issue":{"enum":["missing","type_mismatch"],"title":"Issue","type":"string"},"required":{"title":"Required","type":"boolean"}},"required":["field","issue","required"],"title":"ExtractFinding","type":"object"},"title":"Findings","type":"array"},"required_fields_valid":{"title":"Required Fields Valid","type":"boolean"},"coercions_performed":{"const":false,"title":"Coercions Performed","type":"boolean"}},"required":["fields","findings","required_fields_valid","coercions_performed"],"title":"ExtractResult","type":"object"},"evidence":{"items":{"additionalProperties":true,"type":"object"},"title":"Evidence","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"next_actions":{"items":{"additionalProperties":false,"properties":{"capability":{"title":"Capability","type":"string"},"endpoint":{"title":"Endpoint","type":"string"},"reason":{"title":"Reason","type":"string"},"price_usdc":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Price Usdc"}},"required":["capability","endpoint","reason"],"title":"Action","type":"object"},"title":"Next Actions","type":"array"}},"required":["product","result","evidence","limitations","next_actions"],"title":"ExtractOutcome","type":"object"},"examples":{"input":{"document":{"order":{"id":42,"region":"EU"}},"fields":[{"name":"order_id","pointer":"/order/id","type":"integer","required":true}]},"output":{"product":"schema-extract","result":{"fields":{"order_id":42},"findings":[],"required_fields_valid":true,"coercions_performed":false},"evidence":[{"field":"order_id","pointer":"/order/id","value_sha256":"73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049"},{"source":"document","sha256":"8015ffa67c419c85a52ff15e08c8e96ac1ba573d53dcafa20f2b7f7d9e5cbf76"}],"limitations":["Caller-supplied source identity and authenticity are not independently verified.","No third-party services were called.","Supports explicit JSON Pointers and primitive/container type checks, not arbitrary JSON Schema validation."],"next_actions":[]}},"available":true,"preview":"/v2/schema-extract/preview","schema_url":"https://api.pay-forge.online/v2/schema-extract/schema","example_url":"https://api.pay-forge.online/v2/schema-extract/example","expected_output":"Typed fields, missing/type findings and source-pointer evidence.","scope":"caller_supplied_data_only","method":"POST","url":"https://api.pay-forge.online/v2/schema-extract","price_usdc":"0.015000","price_usd":0.015,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","funnel":{"preview":"/v2/schema-extract/preview","capability":"Map up to 30 JSON Pointers to named typed fields in your supplied JSON. Return values, missing/type errors and pointer evidence. No coercion, OCR, scraping or generated fields.","required_input":{"additionalProperties":false,"properties":{"document":{"additionalProperties":true,"title":"Document","type":"object"},"fields":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":80,"minLength":1,"pattern":"^[a-zA-Z][\\w-]*$","title":"Name","type":"string"},"pointer":{"maxLength":512,"pattern":"^(?:/(?:[^~]|~[01])*)*$","title":"Pointer","type":"string"},"type":{"enum":["string","integer","number","boolean","object","array","null"],"title":"Type","type":"string"},"required":{"default":true,"title":"Required","type":"boolean"}},"required":["name","pointer","type"],"title":"ExtractField","type":"object"},"maxItems":30,"minItems":1,"title":"Fields","type":"array"}},"required":["document","fields"],"title":"ExtractInput","type":"object"},"example_input":{"document":{"order":{"id":42,"region":"EU"}},"fields":[{"name":"order_id","pointer":"/order/id","type":"integer","required":true}]},"example_output_url":"https://api.pay-forge.online/v2/schema-extract/example","schema_url":"https://api.pay-forge.online/v2/schema-extract/schema","price_usdc":"0.015000","paid_endpoint":"/v2/schema-extract","authorization_required":true,"execution_without_payment":false,"runnable_http_example":"https://api.pay-forge.online/v2/examples/schema-extract.sh","buyer_page_url":"https://api.pay-forge.online/tools/schema-extract"},"buyer_page_url":"https://api.pay-forge.online/tools/schema-extract","buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"provider_preflight","title":"Check an x402 quote before authorizing payment","endpoint":"/v2/provider-preflight","amount_atomic":"10000","description":"Analyze a supplied x402 v2 challenge against native Base USDC and an optional amount cap. Return check-by-check evidence and integration guidance. No provider contact, purchase, uptime or delivery certification.","tags":["x402 compatibility","payment terms","preflight"],"inputSchema":{"additionalProperties":false,"properties":{"challenge":{"additionalProperties":true,"title":"Challenge","type":"object"},"maximum_amount_atomic":{"anyOf":[{"maximum":1000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Maximum Amount Atomic"}},"required":["challenge"],"title":"PreflightInput","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"product":{"title":"Product","type":"string"},"result":{"additionalProperties":false,"properties":{"compatible_with_scope":{"title":"Compatible With Scope","type":"boolean"},"checks":{"items":{"additionalProperties":false,"properties":{"check":{"title":"Check","type":"string"},"passed":{"title":"Passed","type":"boolean"},"observed":{"title":"Observed"}},"required":["check","passed","observed"],"title":"Check","type":"object"},"title":"Checks","type":"array"},"certifies_provider_delivery":{"const":false,"title":"Certifies Provider Delivery","type":"boolean"},"integration_guidance":{"items":{"type":"string"},"title":"Integration Guidance","type":"array"}},"required":["compatible_with_scope","checks","certifies_provider_delivery","integration_guidance"],"title":"PreflightResult","type":"object"},"evidence":{"items":{"additionalProperties":true,"type":"object"},"title":"Evidence","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"next_actions":{"items":{"additionalProperties":false,"properties":{"capability":{"title":"Capability","type":"string"},"endpoint":{"title":"Endpoint","type":"string"},"reason":{"title":"Reason","type":"string"},"price_usdc":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Price Usdc"}},"required":["capability","endpoint","reason"],"title":"Action","type":"object"},"title":"Next Actions","type":"array"}},"required":["product","result","evidence","limitations","next_actions"],"title":"PreflightOutcome","type":"object"},"examples":{"input":{"challenge":{"x402Version":2,"resource":{"url":"https://api.pay-forge.online/v2/api-migration-pack"},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":"20000","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}]},"maximum_amount_atomic":20000},"output":{"product":"provider-preflight","result":{"compatible_with_scope":true,"checks":[{"check":"x402_v2","passed":true,"observed":2},{"check":"https_resource","passed":true,"observed":"https://api.pay-forge.online/v2/api-migration-pack"},{"check":"single_accept","passed":true,"observed":1},{"check":"exact_scheme","passed":true,"observed":"exact"},{"check":"base_mainnet","passed":true,"observed":"eip155:8453"},{"check":"native_usdc","passed":true,"observed":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},{"check":"atomic_amount","passed":true,"observed":"20000"},{"check":"within_amount_cap","passed":true,"observed":20000},{"check":"seller_address","passed":true,"observed":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5"},{"check":"usdc_domain_metadata","passed":true,"observed":{"name":"USD Coin","version":"2"}},{"check":"bounded_timeout","passed":true,"observed":300}],"certifies_provider_delivery":false,"integration_guidance":["Compare payTo with the seller identity you intended to pay.","Revalidate live terms before any separate authorization.","Preserve idempotency and reconcile uncertain settlement; do not create replacement payment."]},"evidence":[{"source":"supplied_challenge","sha256":"6336a6952268ba5d0e34550340a2eccc1ab0d649f274d507bf36f7dcc1e06c69"}],"limitations":["Caller-supplied source identity and authenticity are not independently verified.","No third-party services were called.","Static supplied metadata checks only; no live reachability, signature validity, funds, reputation or delivered-output verification."],"next_actions":[]}},"available":true,"preview":"/v2/provider-preflight/preview","schema_url":"https://api.pay-forge.online/v2/provider-preflight/schema","example_url":"https://api.pay-forge.online/v2/provider-preflight/example","expected_output":"Detailed supplied-challenge checks, mismatches and safe integration guidance.","scope":"caller_supplied_data_only","method":"POST","url":"https://api.pay-forge.online/v2/provider-preflight","price_usdc":"0.010000","price_usd":0.01,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","funnel":{"preview":"/v2/provider-preflight/preview","capability":"Analyze a supplied x402 v2 challenge against native Base USDC and an optional amount cap. Return check-by-check evidence and integration guidance. No provider contact, purchase, uptime or delivery certification.","required_input":{"additionalProperties":false,"properties":{"challenge":{"additionalProperties":true,"title":"Challenge","type":"object"},"maximum_amount_atomic":{"anyOf":[{"maximum":1000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Maximum Amount Atomic"}},"required":["challenge"],"title":"PreflightInput","type":"object"},"example_input":{"challenge":{"x402Version":2,"resource":{"url":"https://api.pay-forge.online/v2/api-migration-pack"},"accepts":[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":"20000","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}]},"maximum_amount_atomic":20000},"example_output_url":"https://api.pay-forge.online/v2/provider-preflight/example","schema_url":"https://api.pay-forge.online/v2/provider-preflight/schema","price_usdc":"0.010000","paid_endpoint":"/v2/provider-preflight","authorization_required":true,"execution_without_payment":false,"runnable_http_example":"https://api.pay-forge.online/v2/examples/provider-preflight.sh"},"buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]},{"name":"catalog_update_gate","title":"Catalog Update Gate for Apify product datasets","endpoint":"/v2/catalog-update-gate","amount_atomic":"50000","description":"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 input bytes. Fixed 0.050000 USDC per batch.","tags":["Apify","product catalog","scraping","catalog reconciliation","safe ingestion"],"inputSchema":{"additionalProperties":false,"properties":{"current":{"items":{"additionalProperties":true,"type":"object"},"maxItems":50,"title":"Current","type":"array"},"previous":{"items":{"additionalProperties":true,"type":"object"},"maxItems":50,"title":"Previous","type":"array"},"contract":{"additionalProperties":false,"properties":{"fields":{"additionalProperties":{"additionalProperties":false,"properties":{"type":{"enum":["string","integer","boolean","decimal"],"title":"Type","type":"string"},"required":{"title":"Required","type":"boolean"},"decimal_places":{"anyOf":[{"maximum":6,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Decimal Places"}},"required":["type","required"],"title":"CatalogField","type":"object"},"maxProperties":16,"minProperties":1,"title":"Fields","type":"object"},"identity_field":{"title":"Identity Field","type":"string"},"identity_mode":{"enum":["url","exact"],"title":"Identity Mode","type":"string"},"price_field":{"title":"Price Field","type":"string"},"currency_field":{"title":"Currency Field","type":"string"},"allowed_currencies":{"items":{"type":"string"},"maxItems":10,"minItems":1,"title":"Allowed Currencies","type":"array"},"unit_field":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Unit Field"},"allowed_units":{"anyOf":[{"items":{"type":"string"},"maxItems":10,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"title":"Allowed Units"}},"required":["fields","identity_field","identity_mode","price_field","currency_field","allowed_currencies"],"title":"CatalogContract","type":"object"}},"required":["current","previous","contract"],"title":"CatalogInput","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"product":{"title":"Product","type":"string"},"result":{"additionalProperties":false,"properties":{"version":{"const":"1","title":"Version","type":"string"},"status":{"enum":["READY","BLOCKED"],"title":"Status","type":"string"},"contract_sha256":{"title":"Contract Sha256","type":"string"},"previous_snapshot_sha256":{"title":"Previous Snapshot Sha256","type":"string"},"input_sha256":{"title":"Input Sha256","type":"string"},"accepted_inserts":{"items":{"additionalProperties":true,"type":"object"},"title":"Accepted Inserts","type":"array"},"accepted_updates":{"items":{"additionalProperties":true,"type":"object"},"title":"Accepted Updates","type":"array"},"unchanged_records":{"items":{"additionalProperties":true,"type":"object"},"title":"Unchanged Records","type":"array"},"quarantined_records":{"items":{"additionalProperties":true,"type":"object"},"title":"Quarantined Records","type":"array"},"duplicate_resolution":{"items":{"additionalProperties":true,"type":"object"},"title":"Duplicate Resolution","type":"array"},"schema_drift":{"items":{"additionalProperties":true,"type":"object"},"title":"Schema Drift","type":"array"},"baseline_findings":{"items":{"additionalProperties":true,"type":"object"},"title":"Baseline Findings","type":"array"},"changes":{"items":{"additionalProperties":true,"type":"object"},"title":"Changes","type":"array"},"ingestion":{"additionalProperties":true,"title":"Ingestion","type":"object"},"counts":{"additionalProperties":{"type":"integer"},"title":"Counts","type":"object"}},"required":["version","status","contract_sha256","previous_snapshot_sha256","input_sha256","accepted_inserts","accepted_updates","unchanged_records","quarantined_records","duplicate_resolution","schema_drift","baseline_findings","changes","ingestion","counts"],"title":"CatalogResult","type":"object"},"evidence":{"items":{"additionalProperties":true,"type":"object"},"title":"Evidence","type":"array"},"limitations":{"items":{"type":"string"},"title":"Limitations","type":"array"},"next_actions":{"items":{"additionalProperties":false,"properties":{"capability":{"title":"Capability","type":"string"},"endpoint":{"title":"Endpoint","type":"string"},"reason":{"title":"Reason","type":"string"},"price_usdc":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Price Usdc"}},"required":["capability","endpoint","reason"],"title":"Action","type":"object"},"title":"Next Actions","type":"array"}},"required":["product","result","evidence","limitations","next_actions"],"title":"CatalogOutcome","type":"object"},"examples":{"input":{"contract":{"identity_field":"url","identity_mode":"url","price_field":"price","currency_field":"currency","allowed_currencies":["USD","EUR"],"unit_field":"unit","allowed_units":["each","kg"],"fields":{"url":{"type":"string","required":true},"title":{"type":"string","required":true},"price":{"type":"decimal","required":true,"decimal_places":2},"currency":{"type":"string","required":true},"unit":{"type":"string","required":true}}},"previous":[{"url":"https://store.example/p/coffee","title":"Coffee","price":"12.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/tea","title":"Tea","price":"8.00","currency":"USD","unit":"each"}],"current":[{"url":"https://store.example/p/coffee","title":"Coffee","price":"13.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/tea","title":"Tea","price":"8.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/cocoa","title":"Cocoa","price":"9.50","currency":"USD","unit":"each"},{"url":"https://store.example/p/bad-price","title":"Bad price","price":"€19,99","currency":"EUR","unit":"each"},{"url":"https://store.example/p/no-currency","title":"Unknown money","price":"20.00","unit":"each"},{"url":"https://store.example/p/duplicate#one","title":"Variant","price":"5.00","currency":"USD","unit":"each"},{"url":"https://STORE.example:443/p/duplicate#two","title":"Variant","price":"50.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/missing-title","price":"4.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/drift","title":"New scraper schema","price":"4.00","currency":"USD","unit":"each","salePrice":"3.00"}]},"output":{"product":"catalog-update-gate","result":{"version":"1","status":"READY","contract_sha256":"6d0a3492c53810feaf17873a79966253cea247bfbba7da3cc550dcf4ae236541","previous_snapshot_sha256":"0d8e8ccc280a15bc58ab667f01711a534b31657a54ad6b1916a0b2a3a7300359","input_sha256":"280e43b673c52910f84bd5b9590f357c600e515959e1b6f79dde135759a401fe","accepted_inserts":[{"source_index":2,"identity":"https://store.example/p/cocoa","record":{"currency":"USD","price":"9.50","title":"Cocoa","unit":"each","url":"https://store.example/p/cocoa"},"provenance":{"currency":{"source_pointer":"/current/2/currency","normalization":"unchanged"},"price":{"source_pointer":"/current/2/price","normalization":"unchanged"},"title":{"source_pointer":"/current/2/title","normalization":"unchanged"},"unit":{"source_pointer":"/current/2/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/2/url","normalization":"unchanged"}}}],"accepted_updates":[{"source_index":0,"identity":"https://store.example/p/coffee","record":{"currency":"USD","price":"13.00","title":"Coffee","unit":"each","url":"https://store.example/p/coffee"},"provenance":{"currency":{"source_pointer":"/current/0/currency","normalization":"unchanged","previous_source_pointer":"/previous/0/currency"},"price":{"source_pointer":"/current/0/price","normalization":"unchanged","previous_source_pointer":"/previous/0/price"},"title":{"source_pointer":"/current/0/title","normalization":"unchanged","previous_source_pointer":"/previous/0/title"},"unit":{"source_pointer":"/current/0/unit","normalization":"unchanged","previous_source_pointer":"/previous/0/unit"},"url":{"source_pointer":"/current/0/url","normalization":"unchanged","previous_source_pointer":"/previous/0/url"}},"expected_previous_record_sha256":"f9bb07dfd46350a89511f9a7426e1737f9aec9c03b9d829a2e535f33c99eb475"}],"unchanged_records":[{"source_index":1,"identity":"https://store.example/p/tea","record":{"currency":"USD","price":"8.00","title":"Tea","unit":"each","url":"https://store.example/p/tea"},"provenance":{"currency":{"source_pointer":"/current/1/currency","normalization":"unchanged","previous_source_pointer":"/previous/1/currency"},"price":{"source_pointer":"/current/1/price","normalization":"unchanged","previous_source_pointer":"/previous/1/price"},"title":{"source_pointer":"/current/1/title","normalization":"unchanged","previous_source_pointer":"/previous/1/title"},"unit":{"source_pointer":"/current/1/unit","normalization":"unchanged","previous_source_pointer":"/previous/1/unit"},"url":{"source_pointer":"/current/1/url","normalization":"unchanged","previous_source_pointer":"/previous/1/url"}}}],"quarantined_records":[{"source_index":3,"identity":"https://store.example/p/bad-price","record":{"currency":"EUR","title":"Bad price","unit":"each","url":"https://store.example/p/bad-price"},"provenance":{"currency":{"source_pointer":"/current/3/currency","normalization":"unchanged"},"title":{"source_pointer":"/current/3/title","normalization":"unchanged"},"unit":{"source_pointer":"/current/3/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/3/url","normalization":"unchanged"}},"reasons":[{"code":"invalid_decimal_format","field":"price","source_pointer":"/current/3/price"}]},{"source_index":4,"identity":"https://store.example/p/no-currency","record":{"price":"20.00","title":"Unknown money","unit":"each","url":"https://store.example/p/no-currency"},"provenance":{"price":{"source_pointer":"/current/4/price","normalization":"unchanged"},"title":{"source_pointer":"/current/4/title","normalization":"unchanged"},"unit":{"source_pointer":"/current/4/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/4/url","normalization":"unchanged"}},"reasons":[{"code":"missing_required_field","field":"currency","source_pointer":"/current/4/currency"}]},{"source_index":5,"identity":"https://store.example/p/duplicate","record":{"currency":"USD","price":"5.00","title":"Variant","unit":"each","url":"https://store.example/p/duplicate"},"provenance":{"currency":{"source_pointer":"/current/5/currency","normalization":"unchanged"},"price":{"source_pointer":"/current/5/price","normalization":"unchanged"},"title":{"source_pointer":"/current/5/title","normalization":"unchanged"},"unit":{"source_pointer":"/current/5/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/5/url","normalization":"explicit_contract_normalization"}},"reasons":[{"code":"duplicate_identity_conflict","field":"url","source_pointer":"/current/5/url"}]},{"source_index":6,"identity":"https://store.example/p/duplicate","record":{"currency":"USD","price":"50.00","title":"Variant","unit":"each","url":"https://store.example/p/duplicate"},"provenance":{"currency":{"source_pointer":"/current/6/currency","normalization":"unchanged"},"price":{"source_pointer":"/current/6/price","normalization":"unchanged"},"title":{"source_pointer":"/current/6/title","normalization":"unchanged"},"unit":{"source_pointer":"/current/6/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/6/url","normalization":"explicit_contract_normalization"}},"reasons":[{"code":"duplicate_identity_conflict","field":"url","source_pointer":"/current/6/url"}]},{"source_index":7,"identity":"https://store.example/p/missing-title","record":{"currency":"USD","price":"4.00","unit":"each","url":"https://store.example/p/missing-title"},"provenance":{"currency":{"source_pointer":"/current/7/currency","normalization":"unchanged"},"price":{"source_pointer":"/current/7/price","normalization":"unchanged"},"unit":{"source_pointer":"/current/7/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/7/url","normalization":"unchanged"}},"reasons":[{"code":"missing_required_field","field":"title","source_pointer":"/current/7/title"}]},{"source_index":8,"identity":"https://store.example/p/drift","record":{"currency":"USD","price":"4.00","title":"New scraper schema","unit":"each","url":"https://store.example/p/drift"},"provenance":{"currency":{"source_pointer":"/current/8/currency","normalization":"unchanged"},"price":{"source_pointer":"/current/8/price","normalization":"unchanged"},"title":{"source_pointer":"/current/8/title","normalization":"unchanged"},"unit":{"source_pointer":"/current/8/unit","normalization":"unchanged"},"url":{"source_pointer":"/current/8/url","normalization":"unchanged"}},"reasons":[{"code":"unexpected_field_schema_drift","field":"salePrice","source_pointer":"/current/8/salePrice"}]}],"duplicate_resolution":[{"identity":"https://store.example/p/duplicate","source_indices":[5,6],"action":"quarantine_all_conflicting"}],"schema_drift":[{"code":"invalid_decimal_format","field":"price","source_pointer":"/current/3/price"},{"code":"missing_required_field","field":"currency","source_pointer":"/current/4/currency"},{"code":"missing_required_field","field":"title","source_pointer":"/current/7/title"},{"code":"unexpected_field_schema_drift","field":"salePrice","source_pointer":"/current/8/salePrice"}],"baseline_findings":[],"changes":[{"identity":"https://store.example/p/cocoa","operation":"insert","fields":["currency","price","title","unit","url"]},{"identity":"https://store.example/p/coffee","operation":"update","fields":[{"field":"price","before":"12.00","after":"13.00","source_pointer":"/current/0/price","previous_source_pointer":"/previous/0/price"}]}],"ingestion":{"mode":"upsert_only","deletes":[],"atomic_apply_required":true,"compare_and_swap_previous_sha256":"0d8e8ccc280a15bc58ab667f01711a534b31657a54ad6b1916a0b2a3a7300359","instructions":"Apply accepted inserts/updates only if status=READY and the previous snapshot hash still matches. Preserve unchanged, absent and quarantined products. Never infer deletion."},"counts":{"inserts":1,"updates":1,"unchanged":1,"quarantined":6,"unprocessed":0}},"evidence":[{"source":"supplied_batch","sha256":"280e43b673c52910f84bd5b9590f357c600e515959e1b6f79dde135759a401fe"}],"limitations":["No source authenticity or scraped-price truth certification.","Flat explicit catalog contracts only; no currency conversion, unit conversion, arbitrary JSON Schema, fuzzy matching or inferred deletion.","The caller must enforce the previous-snapshot hash and apply accepted operations atomically. Quarantines preserve the existing catalog.","No third-party service, dataset retrieval, payment or ingestion write is performed."],"next_actions":[]}},"available":true,"preview":"/v2/catalog-update-gate/preview","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","example_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","expected_output":"Deterministic accepted catalog operations plus precise quarantines, provenance and optimistic-concurrency preconditions.","scope":"caller_supplied_data_only","method":"POST","url":"https://api.pay-forge.online/v2/catalog-update-gate","price_usdc":"0.050000","price_usd":0.05,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0xd8dd9fc8c143207ddbe84e1e9237f11a69814cb5","funnel":{"preview":"/v2/catalog-update-gate/preview","capability":"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 input bytes. Fixed 0.050000 USDC per batch.","required_input":{"additionalProperties":false,"properties":{"current":{"items":{"additionalProperties":true,"type":"object"},"maxItems":50,"title":"Current","type":"array"},"previous":{"items":{"additionalProperties":true,"type":"object"},"maxItems":50,"title":"Previous","type":"array"},"contract":{"additionalProperties":false,"properties":{"fields":{"additionalProperties":{"additionalProperties":false,"properties":{"type":{"enum":["string","integer","boolean","decimal"],"title":"Type","type":"string"},"required":{"title":"Required","type":"boolean"},"decimal_places":{"anyOf":[{"maximum":6,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Decimal Places"}},"required":["type","required"],"title":"CatalogField","type":"object"},"maxProperties":16,"minProperties":1,"title":"Fields","type":"object"},"identity_field":{"title":"Identity Field","type":"string"},"identity_mode":{"enum":["url","exact"],"title":"Identity Mode","type":"string"},"price_field":{"title":"Price Field","type":"string"},"currency_field":{"title":"Currency Field","type":"string"},"allowed_currencies":{"items":{"type":"string"},"maxItems":10,"minItems":1,"title":"Allowed Currencies","type":"array"},"unit_field":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Unit Field"},"allowed_units":{"anyOf":[{"items":{"type":"string"},"maxItems":10,"minItems":1,"type":"array"},{"type":"null"}],"default":null,"title":"Allowed Units"}},"required":["fields","identity_field","identity_mode","price_field","currency_field","allowed_currencies"],"title":"CatalogContract","type":"object"}},"required":["current","previous","contract"],"title":"CatalogInput","type":"object"},"example_input":{"contract":{"identity_field":"url","identity_mode":"url","price_field":"price","currency_field":"currency","allowed_currencies":["USD","EUR"],"unit_field":"unit","allowed_units":["each","kg"],"fields":{"url":{"type":"string","required":true},"title":{"type":"string","required":true},"price":{"type":"decimal","required":true,"decimal_places":2},"currency":{"type":"string","required":true},"unit":{"type":"string","required":true}}},"previous":[{"url":"https://store.example/p/coffee","title":"Coffee","price":"12.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/tea","title":"Tea","price":"8.00","currency":"USD","unit":"each"}],"current":[{"url":"https://store.example/p/coffee","title":"Coffee","price":"13.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/tea","title":"Tea","price":"8.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/cocoa","title":"Cocoa","price":"9.50","currency":"USD","unit":"each"},{"url":"https://store.example/p/bad-price","title":"Bad price","price":"€19,99","currency":"EUR","unit":"each"},{"url":"https://store.example/p/no-currency","title":"Unknown money","price":"20.00","unit":"each"},{"url":"https://store.example/p/duplicate#one","title":"Variant","price":"5.00","currency":"USD","unit":"each"},{"url":"https://STORE.example:443/p/duplicate#two","title":"Variant","price":"50.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/missing-title","price":"4.00","currency":"USD","unit":"each"},{"url":"https://store.example/p/drift","title":"New scraper schema","price":"4.00","currency":"USD","unit":"each","salePrice":"3.00"}]},"example_output_url":"https://api.pay-forge.online/v2/catalog-update-gate/example","schema_url":"https://api.pay-forge.online/v2/catalog-update-gate/schema","price_usdc":"0.050000","paid_endpoint":"/v2/catalog-update-gate","authorization_required":true,"execution_without_payment":false,"runnable_http_example":"https://api.pay-forge.online/v2/examples/catalog-update-gate.sh","workflow":"https://api.pay-forge.online/v2/catalog-update-gate/workflow","apify_example":"https://api.pay-forge.online/v2/catalog-update-gate/apify-example.py","sequence":["existing Apify dataset export","free contract preview","separately authorized catalog reconciliation","atomic accepted upserts"],"free_mcp_preview":"machine_shop_catalog_update_gate_preview","buyer_page_url":"https://api.pay-forge.online/tools/catalog-update-gate"},"buyer_page_url":"https://api.pay-forge.online/tools/catalog-update-gate","buyer_guide":"https://api.pay-forge.online/v2/buyer-guide","related_products":[]}],"canonical_manifest":"https://api.pay-forge.online/v2/manifest"}