{"openapi":"3.1.0","info":{"title":"Koyori Utils API","version":"1.0.0","description":"Lightweight x402-powered developer utilities on Stacks mainnet."},"servers":[{"url":"https://koyori-utils-api.koyori-aibtc.workers.dev"}],"paths":{"/api/json-prune-null":{"post":{"summary":"JSON Null Pruner","description":"Remove null values from objects recursively. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-depth":{"post":{"summary":"JSON Depth","description":"Calculate nesting depth of JSON data. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-rename-key":{"post":{"summary":"JSON Rename Key","description":"Rename a safe key in a JSON object. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-count-values":{"post":{"summary":"JSON Value Counter","description":"Count primitive value types in nested JSON. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-object-entries":{"post":{"summary":"JSON Object Entries","description":"Convert a JSON object into key-value entries. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-entries-object":{"post":{"summary":"JSON Entries to Object","description":"Build an object from key-value entries. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-defaults":{"post":{"summary":"JSON Defaults","description":"Fill missing top-level fields using defaults. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-key-prefix":{"post":{"summary":"JSON Key Prefix","description":"Add a prefix to keys in a flat JSON object. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-key-suffix":{"post":{"summary":"JSON Key Suffix","description":"Add a suffix to keys in a flat JSON object. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-size":{"post":{"summary":"JSON Size Calculator","description":"Measure compact JSON size in UTF-8 bytes. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-chunk":{"post":{"summary":"Array Chunk","description":"Split an array into chunks of chosen size. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-slice":{"post":{"summary":"Array Slice","description":"Extract a specified index range from an array. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-rotate":{"post":{"summary":"Array Rotate","description":"Rotate array elements by a given offset. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-intersection":{"post":{"summary":"Array Intersection","description":"Find distinct values common to two arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-difference":{"post":{"summary":"Array Difference","description":"Find distinct items present only in the left array. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-union":{"post":{"summary":"Array Union","description":"Combine two arrays removing duplicate values. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-group-by":{"post":{"summary":"Array Group By","description":"Group JSON objects by a named field. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-count-by":{"post":{"summary":"Array Count By","description":"Count JSON objects by a named field. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-paginate":{"post":{"summary":"Array Pagination","description":"Paginate arrays with page and size. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-partition":{"post":{"summary":"Array Partition","description":"Partition objects by equality on a field. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-word-wrap":{"post":{"summary":"Text Word Wrap","description":"Wrap plain text at a chosen character width. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-initials":{"post":{"summary":"Text Initials","description":"Extract initials from words in a name or phrase. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-palindrome":{"post":{"summary":"Text Palindrome Check","description":"Check whether normalized text reads the same backward. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-anagram":{"post":{"summary":"Text Anagram Check","description":"Compare whether two phrases use the same letters. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-keyword-density":{"post":{"summary":"Keyword Density","description":"Calculate the fraction of words matching a keyword. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-extract-numbers":{"post":{"summary":"Number Extractor","description":"Extract numeric tokens from plain text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-extract-urls":{"post":{"summary":"URL Extractor","description":"Find HTTP and HTTPS URL candidates in plain text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-redact-emails":{"post":{"summary":"Email Redactor","description":"Replace email addresses with a privacy placeholder. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-line-lengths":{"post":{"summary":"Line Lengths","description":"Measure the character count of each text line. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-common-words":{"post":{"summary":"Common Word Finder","description":"List distinct words shared between two texts. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-clamp":{"post":{"summary":"Number Clamp","description":"Keep a number between minimum and maximum values. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-range":{"post":{"summary":"Number Range","description":"Generate a bounded arithmetic sequence. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-statistics":{"post":{"summary":"Number Statistics","description":"Calculate min, max, average, and median. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-percent-change":{"post":{"summary":"Percentage Change","description":"Calculate percentage change between two numbers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-percent-of":{"post":{"summary":"Percentage Of","description":"Compute a percentage of a numeric total. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-base-convert":{"post":{"summary":"Integer Base Converter","description":"Convert safe integers between bases 2 and 36. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-prime":{"post":{"summary":"Prime Checker","description":"Check whether a bounded positive integer is prime. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-gcd":{"post":{"summary":"Greatest Common Divisor","description":"Calculate greatest common divisor of two integers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-lcm":{"post":{"summary":"Least Common Multiple","description":"Calculate least common multiple of two integers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-round":{"post":{"summary":"Decimal Rounder","description":"Round numbers to a requested decimal precision. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-weekday":{"post":{"summary":"Date Weekday","description":"Get weekday information from ISO timestamps. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-business-days":{"post":{"summary":"Business Day Counter","description":"Count weekdays between two UTC dates excluding the end. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-start-of-day":{"post":{"summary":"UTC Start of Day","description":"Convert an ISO timestamp to midnight UTC. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-iso-week":{"post":{"summary":"ISO Week Number","description":"Calculate ISO 8601 week number and week-year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-days-in-month":{"post":{"summary":"Days In Month","description":"Find the number of days in an ISO date month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-age-years":{"post":{"summary":"Age in Years","description":"Calculate full years elapsed between dates. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-hour-offset":{"post":{"summary":"Timezone Hour Offset","description":"Shift a timestamp by a numeric number of hours. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-month-boundaries":{"post":{"summary":"Month Boundaries","description":"Get the first and last UTC dates of a month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-day-of-year":{"post":{"summary":"Day of Year","description":"Get the ordinal day of a UTC calendar year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-quarter":{"post":{"summary":"Calendar Quarter","description":"Get calendar quarter for an ISO timestamp. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-deep-equal":{"post":{"summary":"JSON Deep Equal","description":"Compare JSON values regardless of object key order. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-copy-key":{"post":{"summary":"JSON Rename Key","description":"Rename a top-level JSON object property. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-pick-keys":{"post":{"summary":"JSON Pick Keys","description":"Retain selected top-level object fields. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-omit-keys":{"post":{"summary":"JSON Omit Keys","description":"Remove selected top-level object fields. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-keys-with-lengths":{"post":{"summary":"JSON Object Entries","description":"Convert an object into key-value pairs. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-from-entries":{"post":{"summary":"JSON From Entries","description":"Build an object from key-value pairs. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-values-sorted-keys":{"post":{"summary":"JSON Sort Keys","description":"Sort object properties alphabetically. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-count-by-type":{"post":{"summary":"JSON Value Type Counts","description":"Count immediate object properties by JSON data type. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-keys-prefix":{"post":{"summary":"JSON Keys Prefix Filter","description":"List object keys starting with a prefix. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-keys-suffix":{"post":{"summary":"JSON Keys Suffix Filter","description":"List object keys ending with a suffix. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-rotate-left":{"post":{"summary":"Array Rotate Left","description":"Rotate elements left by a chosen offset. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-rotate-right":{"post":{"summary":"Array Rotate Right","description":"Rotate elements right by a chosen offset. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-take-while":{"post":{"summary":"Array Take While Equal","description":"Take values from the start while they match a value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-drop-while":{"post":{"summary":"Array Drop While Equal","description":"Remove values from the start while matching a value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-interleave":{"post":{"summary":"Array Interleave","description":"Alternate items from two arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-zip-longest":{"post":{"summary":"Array Zip","description":"Pair two arrays by matching indexes. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-pair-swap":{"post":{"summary":"Array Unzip","description":"Split an array of pairs into two arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-pad-right":{"post":{"summary":"Array Pad Right","description":"Pad an array to a given length. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-pad-left":{"post":{"summary":"Array Pad Left","description":"Prepend a padding value to reach a length. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-split-at":{"post":{"summary":"Array Split At","description":"Split an array at a specified position. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-line-prefix":{"post":{"summary":"Text Line Prefix","description":"Add a prefix to every input line. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-line-suffix":{"post":{"summary":"Text Line Suffix","description":"Append a suffix to every input line. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-tabify":{"post":{"summary":"Text Indent","description":"Indent each line by a bounded number of spaces. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-unindent":{"post":{"summary":"Text Unindent","description":"Remove up to N leading spaces from each line. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-acronym-dot":{"post":{"summary":"Text Initials","description":"Extract first letters from space-separated words. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-vowel-count":{"post":{"summary":"Text English Vowels","description":"Count Latin vowel letters in text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-consonant-count":{"post":{"summary":"Text English Consonants","description":"Count Latin consonant letters in text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-extract-integers":{"post":{"summary":"Text Extract Numbers","description":"Extract signed decimal numbers from a string. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-ends-with":{"post":{"summary":"Text Ends With","description":"Check whether text ends with a given string. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-starts-with":{"post":{"summary":"Text Starts With","description":"Check whether text starts with a given string. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-distance-zero":{"post":{"summary":"Absolute Value","description":"Compute the absolute value of a finite number. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-sign-label":{"post":{"summary":"Number Sign","description":"Report a number sign as -1, 0, or 1. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-cube":{"post":{"summary":"Number Cube","description":"Cube a number with overflow protection. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-modulo":{"post":{"summary":"Modulo","description":"Calculate nonnegative modulo for a nonzero divisor. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-basis-points":{"post":{"summary":"Percent of Value","description":"Calculate a percentage of a number. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-percent-difference":{"post":{"summary":"Percentage Change","description":"Calculate percent change from a starting value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-is-even":{"post":{"summary":"Even Integer Check","description":"Test whether a safe integer is even. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-is-odd":{"post":{"summary":"Odd Integer Check","description":"Test whether a safe integer is odd. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-factorial":{"post":{"summary":"Factorial","description":"Calculate factorials for nonnegative integers up to 170. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-are-coprime":{"post":{"summary":"Greatest Common Divisor","description":"Find GCD of two bounded integers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-year":{"post":{"summary":"Date UTC Year","description":"Extract the UTC calendar year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-month":{"post":{"summary":"Date UTC Month","description":"Extract the UTC month number. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-day":{"post":{"summary":"Date UTC Day","description":"Extract UTC day of month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-hour":{"post":{"summary":"Date UTC Hour","description":"Extract the UTC hour from an ISO timestamp. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-minute":{"post":{"summary":"Date UTC Minute","description":"Extract the UTC minute from an ISO timestamp. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-second":{"post":{"summary":"Date UTC Second","description":"Extract the UTC second from an ISO timestamp. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-is-weekday":{"post":{"summary":"Weekend Check","description":"Test if a date is Saturday or Sunday in UTC. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-quarter-label":{"post":{"summary":"Calendar Quarter","description":"Find the UTC quarter of the year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-start-of-quarter":{"post":{"summary":"Start of Quarter","description":"Get the first UTC instant of a calendar quarter. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-end-of-quarter":{"post":{"summary":"End of Quarter","description":"Get the last UTC millisecond of a calendar quarter. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-field-count":{"post":{"summary":"JSON Field Count","description":"Count top-level JSON properties. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-node-count":{"post":{"summary":"JSON Node Count","description":"Count primitive and container nodes in JSON. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-leaf-paths":{"post":{"summary":"JSON Leaf Paths","description":"Enumerate leaf JSON paths using bracket notation. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-type-map":{"post":{"summary":"JSON Type Map","description":"Describe top-level JSON field types. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-string-fields":{"post":{"summary":"JSON String Fields","description":"Return top-level JSON fields containing strings. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-number-fields":{"post":{"summary":"JSON Number Fields","description":"Return top-level JSON fields containing numbers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-null-fields":{"post":{"summary":"JSON Null Fields","description":"List top-level JSON properties with null values. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-boolean-fields":{"post":{"summary":"JSON Boolean Fields","description":"Extract boolean-valued top-level object properties. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-is-empty":{"post":{"summary":"JSON Object Empty Check","description":"Check whether a JSON object has any own keys. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-pair-lookup":{"post":{"summary":"JSON Pair Lookup","description":"Look up a string key in an array of key/value pairs. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-every-equal":{"post":{"summary":"Array Every Equal","description":"Test whether all array elements equal a target value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-flatten-one":{"post":{"summary":"Array Flatten One Level","description":"Flatten one level of nested arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-every-unique":{"post":{"summary":"Array All Unique","description":"Check if every item in an array is unique by JSON value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-equals":{"post":{"summary":"Array Equality","description":"Compare two arrays element-by-element. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-overlap-count":{"post":{"summary":"Array Overlap Count","description":"Count unique array values shared by two arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-symmetric-difference":{"post":{"summary":"Array Symmetric Difference","description":"Find values present in only one of two arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-count-matches":{"post":{"summary":"Array Count Matches","description":"Count array values equal to a JSON target. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-group-by-field":{"post":{"summary":"Array Group By Field","description":"Group JSON objects by a top-level string/number field. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-pluck-field":{"post":{"summary":"Array Pluck Field","description":"Extract a named field from an array of JSON objects. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-non-null":{"post":{"summary":"Array Non Null","description":"Remove null values from an array. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-digit-count":{"post":{"summary":"Text Digit Count","description":"Count Unicode decimal digits in text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-uppercase-count":{"post":{"summary":"Text Uppercase Count","description":"Count uppercase Unicode letters in text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-lowercase-count":{"post":{"summary":"Text Lowercase Count","description":"Count lowercase Unicode letters in text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-longest-word":{"post":{"summary":"Text Longest Word","description":"Find the longest word in a text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-shortest-word":{"post":{"summary":"Text Shortest Word","description":"Find the shortest word in a text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-unique-words":{"post":{"summary":"Text Unique Words","description":"List distinct words in first-occurrence order. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-sentence-count":{"post":{"summary":"Text Sentence Counter","description":"Estimate sentence count using punctuation boundaries. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-punctuation-count":{"post":{"summary":"Text Punctuation Count","description":"Count Unicode punctuation symbols in text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-surround":{"post":{"summary":"Text Surround","description":"Wrap a string in a supplied prefix and suffix. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-remove-line-numbers":{"post":{"summary":"Text Remove Line Numbers","description":"Remove leading numbered-list prefixes from each line. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-triangle":{"post":{"summary":"Triangular Number","description":"Calculate the nth triangular number of a bounded integer. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-square":{"post":{"summary":"Number Square","description":"Square a finite input number with overflow protection. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-reciprocal":{"post":{"summary":"Number Reciprocal","description":"Compute one divided by a nonzero number. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-weighted-average":{"post":{"summary":"Weighted Average","description":"Calculate a weighted arithmetic mean. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-variance":{"post":{"summary":"Population Variance","description":"Calculate the population variance of a numeric list. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-stddev":{"post":{"summary":"Population Standard Deviation","description":"Calculate population standard deviation. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-celsius-to-fahrenheit":{"post":{"summary":"Celsius to Fahrenheit","description":"Convert temperatures from Celsius to Fahrenheit. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-fahrenheit-to-celsius":{"post":{"summary":"Fahrenheit to Celsius","description":"Convert temperatures from Fahrenheit to Celsius. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-prime-check":{"post":{"summary":"Prime Checker","description":"Test whether a bounded positive integer is prime. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-histogram":{"post":{"summary":"Numeric Histogram","description":"Bin numeric samples into a fixed number of equal-width buckets. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-start-of-year":{"post":{"summary":"Start of Year","description":"Return first UTC instant of the calendar year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-end-of-year":{"post":{"summary":"End of Year","description":"Return last UTC millisecond of a calendar year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-start-of-month":{"post":{"summary":"Start of Month","description":"Return the UTC first instant of a calendar month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-end-of-month":{"post":{"summary":"End of Month","description":"Return last millisecond of a UTC calendar month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-end-of-day":{"post":{"summary":"End of UTC Day","description":"Return last millisecond of a UTC calendar day. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-weekday-name":{"post":{"summary":"Weekday Name","description":"Return the English UTC weekday name. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-is-first-of-month":{"post":{"summary":"First of Month Check","description":"Check if a UTC date is the first day of its month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-add-weeks":{"post":{"summary":"Add Weeks","description":"Shift a timestamp by a bounded number of seven-day weeks. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-days-between":{"post":{"summary":"Days Between","description":"Calculate signed fractional days between ISO timestamps. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-is-last-of-month":{"post":{"summary":"Last of Month Check","description":"Check if a UTC date is last calendar day of its month. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-select-paths":{"post":{"summary":"JSON Select Paths","description":"Select top-level keys into a new JSON object. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-omit-fields":{"post":{"summary":"JSON Omit Fields","description":"Remove selected top-level fields. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-sort-keys":{"post":{"summary":"JSON Sort Keys","description":"Sort top-level JSON object keys lexicographically. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-invert-map":{"post":{"summary":"JSON Invert Map","description":"Invert a flat string-to-string mapping. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-keys-validate":{"post":{"summary":"JSON Keys Validator","description":"Check object keys against a list of allowed field names. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-required-fields":{"post":{"summary":"JSON Required Fields","description":"Find missing top-level required object fields. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-value-search":{"post":{"summary":"JSON Value Search","description":"Find top-level keys matching a JSON value exactly. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-key-lengths":{"post":{"summary":"JSON Key Lengths","description":"Report character lengths of top-level object keys. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-object-to-pairs":{"post":{"summary":"JSON Object to Pairs","description":"Convert an object into two-element tuple pairs. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-pairs-to-object":{"post":{"summary":"JSON Pairs to Object","description":"Build an object from two-element tuple pairs. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-reverse":{"post":{"summary":"Array Reverse","description":"Return an array in reverse order. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-take":{"post":{"summary":"Array Take","description":"Take the first N array elements. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-drop":{"post":{"summary":"Array Drop","description":"Drop the first N array elements. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-distinct-json":{"post":{"summary":"Array Unique","description":"Deduplicate array items by JSON representation. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-index-of":{"post":{"summary":"Array Index Of","description":"Find the first index of a JSON value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-last-index-of":{"post":{"summary":"Array Last Index Of","description":"Find the last index of a JSON value. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-zip":{"post":{"summary":"Array Zip","description":"Zip two arrays into ordered pairs. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-unzip":{"post":{"summary":"Array Unzip","description":"Split an array of pairs into left and right arrays. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-frequency":{"post":{"summary":"Array Value Frequency","description":"Count distinct JSON values in an array. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-window":{"post":{"summary":"Array Sliding Window","description":"Generate consecutive fixed-size windows from an array. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-lines-to-array":{"post":{"summary":"Text Lines to Array","description":"Split text into an array of lines. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-array-to-lines":{"post":{"summary":"Array to Text Lines","description":"Join string array items into newline separated text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-prefix-lines":{"post":{"summary":"Text Prefix Lines","description":"Add a prefix to every line of text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-suffix-lines":{"post":{"summary":"Text Suffix Lines","description":"Append a suffix to every line of text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-empty-lines":{"post":{"summary":"Empty Line Counter","description":"Count blank lines in plain text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-indent":{"post":{"summary":"Text Indenter","description":"Indent every line by the specified number of spaces. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-dedent":{"post":{"summary":"Text Dedenter","description":"Remove common leading whitespace from non-empty lines. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-first-line":{"post":{"summary":"Text First Line","description":"Extract the first line of text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-last-line":{"post":{"summary":"Text Last Line","description":"Extract the last line of text. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-line-contains":{"post":{"summary":"Text Matching Lines","description":"Return line numbers containing a string. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-absolute":{"post":{"summary":"Absolute Value","description":"Return the absolute magnitude of a finite number. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-sign":{"post":{"summary":"Number Sign","description":"Return -1, 0 or +1 for a number. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-is-integer":{"post":{"summary":"Integer Checker","description":"Check if a numeric value is an integer. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-even-odd":{"post":{"summary":"Even Odd Checker","description":"Determine the parity of a bounded integer. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-sum":{"post":{"summary":"Number Sum","description":"Sum a list of finite numeric values. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-product":{"post":{"summary":"Number Product","description":"Multiply a list of finite numbers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-min-max":{"post":{"summary":"Number Min Max","description":"Calculate the minimum and maximum of a list. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-mean":{"post":{"summary":"Arithmetic Mean","description":"Calculate the average of finite numbers. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-median":{"post":{"summary":"Median Calculator","description":"Find the median of finite numeric values. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/number-ratio":{"post":{"summary":"Ratio Calculator","description":"Express two numbers as a ratio and decimal. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-unix-ms":{"post":{"summary":"Unix Milliseconds","description":"Convert a timezone-aware ISO date to milliseconds. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-unix-seconds":{"post":{"summary":"Unix Seconds","description":"Convert an ISO date to Unix seconds. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-utc-components":{"post":{"summary":"UTC Date Components","description":"Extract UTC year, month, day and time components. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-compare":{"post":{"summary":"Date Comparison","description":"Compare two timezone-aware ISO date-times. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-difference-minutes":{"post":{"summary":"Date Difference Minutes","description":"Calculate signed minutes between two dates. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-difference-hours":{"post":{"summary":"Date Difference Hours","description":"Calculate signed hours between two dates. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-add-minutes":{"post":{"summary":"Date Add Minutes","description":"Add or subtract bounded minutes from a timestamp. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-add-days":{"post":{"summary":"Date Add Days","description":"Add or subtract bounded UTC days. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-is-leap-year":{"post":{"summary":"Leap Year Checker","description":"Check if an ISO date falls in a leap year. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-is-weekend":{"post":{"summary":"Weekend Checker","description":"Check whether an ISO date falls on Saturday or Sunday UTC. Requires x402 STX payment.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-pick":{"post":{"summary":"JSON Pick","description":"Select named top-level fields from a JSON object. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-omit":{"post":{"summary":"JSON Omit","description":"Remove named top-level fields from a JSON object. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-merge":{"post":{"summary":"JSON Merge","description":"Shallow or deeply merge two JSON objects. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-unflatten":{"post":{"summary":"JSON Unflatten","description":"Rebuild nested JSON from safe dotted key paths. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-filter":{"post":{"summary":"Array Filter","description":"Filter an array of objects by a field value. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-sort":{"post":{"summary":"Array Sort","description":"Sort an array of objects by a field. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/array-unique":{"post":{"summary":"Array Unique","description":"Deduplicate JSON array values. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-type-profile":{"post":{"summary":"JSON Type Profile","description":"Summarize JSON value types and collection sizes. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-line-join":{"post":{"summary":"Text Line Join","description":"Join text lines with a custom separator. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/email-extract":{"post":{"summary":"Email Extractor","description":"Extract email address candidates from text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/hashtag-extract":{"post":{"summary":"Hashtag Extractor","description":"Extract distinct hashtags from text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-mask":{"post":{"summary":"Text Mask","description":"Mask all but the final characters of a text value. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-template":{"post":{"summary":"Text Template","description":"Replace named placeholders with supplied values. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/text-ngrams":{"post":{"summary":"Text N-grams","description":"Count frequent word sequences in text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/csv-column-select":{"post":{"summary":"CSV Column Select","description":"Choose columns from a CSV document. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/csv-column-rename":{"post":{"summary":"CSV Column Rename","description":"Rename CSV column headings. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/url-host-info":{"post":{"summary":"URL Host Info","description":"Inspect the hostname and parts of an HTTP URL. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/url-path-join":{"post":{"summary":"URL Path Join","description":"Combine an HTTP base URL with path segments. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-add":{"post":{"summary":"Date Add","description":"Add days, hours or minutes to an ISO timestamp. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/date-difference":{"post":{"summary":"Date Difference","description":"Compute elapsed time between two ISO timestamps. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-keys":{"post":{"summary":"JSON Keys","description":"List keys of a JSON object, optionally including nested paths. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-path-get":{"post":{"summary":"JSON Path Get","description":"Read a JSON value by a dot-separated or bracketed numeric path. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-flatten":{"post":{"summary":"JSON Flatten","description":"Flatten nested JSON objects and arrays into dotted paths. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/word-frequency":{"post":{"summary":"Word Frequency","description":"Count the most common words in text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/line-diff":{"post":{"summary":"Line Diff","description":"Compare two texts line-by-line and summarize changes. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/csv-statistics":{"post":{"summary":"CSV Statistics","description":"Summarize column counts and missing cells in CSV. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/url-query-builder":{"post":{"summary":"URL Query Builder","description":"Create a URL with encoded query parameters. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/html-escape":{"post":{"summary":"HTML Escape","description":"Escape text safely for HTML display. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response"},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}}}},"/api/json-schema-test-cases":{"post":{"summary":"Generate valid and invalid test cases for a basic JSON Schema","description":"Generates deterministic valid examples and deliberate invalid examples from type, properties, required, items, scalar enum and unconstrained empty schemas. count controls desired valid examples from 1 to 5; fewer may be returned if distinct values are impossible. Unsupported schema keywords are rejected. Examples are illustrative, not exhaustive. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"},"count":{"type":"integer","minimum":1,"maximum":5}}}}}},"responses":{"200":{"description":"Valid and deliberately invalid test cases"},"400":{"description":"Invalid request or unsupported JSON Schema feature"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-compatibility":{"post":{"summary":"Check directional compatibility of two basic JSON Schemas","description":"schemaA is the old schema and schemaB is new. backwardCompatible means all values accepted by A are accepted by B; forwardCompatible means all B values are accepted by A. Performs a conservative subset check over explicit basic types, properties, required, items, scalar enum and unconstrained empty schemas. JSON Schema defaults allow arbitrary extra object properties, so even an optional typed field can restrict old values. Does not analyze other JSON Schema keywords. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schemaA","schemaB"],"properties":{"schemaA":{"type":"object"},"schemaB":{"type":"object"}}}}}},"responses":{"200":{"description":"Directional compatibility results with issue paths"},"400":{"description":"Invalid request or unsupported schema feature"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-compare":{"post":{"summary":"Compare two basic JSON Schemas","description":"Compares nested property paths, types, required flags and enum values within a basic JSON Schema subset. Does not determine full JSON Schema compatibility. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schemaA","schemaB"],"properties":{"schemaA":{"type":"object"},"schemaB":{"type":"object"}}}}}},"responses":{"200":{"description":"Differences between schemaA and schemaB"},"400":{"description":"Invalid request or unsupported schema keyword"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-field-search":{"post":{"summary":"Search fields in a basic JSON Schema","description":"Finds nested fields by case-insensitive partial name, exact data type, or both. Supports a basic JSON Schema subset. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"},"name":{"type":"string"},"type":{"type":"string"}}}}}},"responses":{"200":{"description":"Matching fields and their paths"},"400":{"description":"Invalid request or schema"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-type-summary":{"post":{"summary":"Summarize JSON Schema data types","description":"Returns type counts, percentages, dominant type, field paths and nesting depth. Supports a basic JSON Schema subset. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON Schema type summary"},"400":{"description":"Invalid or unsupported schema"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-required":{"post":{"summary":"Analyze required fields in JSON Schema","description":"Extracts required property paths, types and nesting depths from a basic JSON Schema. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"}}}}}},"responses":{"200":{"description":"Required field analysis"},"400":{"description":"Invalid or unsupported schema"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-statistics":{"post":{"summary":"Analyze basic JSON Schema statistics","description":"Counts schema nodes, properties, required fields, data types, array schemas, enum schemas and nesting depth. Supports a basic JSON Schema subset. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON Schema statistics"},"400":{"description":"Invalid or unsupported schema"},"402":{"description":"Payment Required"},"413":{"description":"Size or complexity limit"}}}},"/api/json-schema-documentation":{"post":{"summary":"Generate Markdown documentation from JSON Schema","description":"Documents type, properties, required fields, items and enum. Supports a basic JSON Schema subset. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"}}}}}},"responses":{"200":{"description":"Generated Markdown documentation"},"400":{"description":"Invalid or unsupported schema"},"402":{"description":"Payment Required"},"413":{"description":"Schema size or complexity limit"}}}},"/api/json-schema-example":{"post":{"summary":"Generate sample JSON from a basic JSON Schema","description":"Supports type, properties, required, items and enum. Generates illustrative examples, not random data. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"}}}}}},"responses":{"200":{"description":"Generated sample JSON"},"400":{"description":"Invalid or unsupported schema"},"402":{"description":"Payment Required"},"413":{"description":"Schema size or complexity limit"}}}},"/api/json-schema-generate":{"post":{"summary":"Generate a basic JSON Schema from JSON data","description":"Infers types, properties, required fields and array items. Mixed types use unconstrained schemas. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{}}}}}},"responses":{"200":{"description":"Generated JSON Schema"},"400":{"description":"Invalid request"},"402":{"description":"Payment Required"},"413":{"description":"Input size or complexity limit exceeded"}}}},"/api/json-schema-validate":{"post":{"summary":"Validate JSON against a basic schema","description":"Supports type, required, properties, items and enum only. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["data","schema"],"properties":{"data":{},"schema":{"type":"object"}}}}}},"responses":{"200":{"description":"Validation result with valid and errors"},"400":{"description":"Invalid input or unsupported schema"},"402":{"description":"Payment Required"},"413":{"description":"Input or complexity limit exceeded"}}}},"/api/json-diff":{"post":{"summary":"Compare two JSON objects","description":"Finds added, removed and changed fields, including nested objects. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["before","after"],"properties":{"before":{"type":"object"},"after":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON comparison results"},"400":{"description":"Invalid input"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}},"/api/hash":{"post":{"summary":"Create a SHA-256 hash","description":"Hashes UTF-8 text with SHA-256. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful hash response"},"402":{"description":"Payment Required"}}}},"/api/format":{"post":{"summary":"Format JSON","description":"Validates and pretty-prints a JSON string. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Formatted JSON response"},"402":{"description":"Payment Required"}}}},"/api/count":{"post":{"summary":"Count text","description":"Counts characters, words, and UTF-8 bytes. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Count response"},"402":{"description":"Payment Required"}}}},"/api/dedupe-lines":{"post":{"summary":"Remove duplicate lines","description":"Removes duplicate lines while preserving original order. Supports case-sensitive matching and optional empty-line removal. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"caseSensitive":{"type":"boolean","default":true},"removeEmpty":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Deduplicated text response"},"400":{"description":"Invalid request"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/regex-test":{"post":{"summary":"Test regular expression","description":"Tests a regular expression against text and returns matches. Potentially unsafe expressions are rejected. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","pattern"],"properties":{"text":{"type":"string"},"pattern":{"type":"string"},"flags":{"type":"string","default":""}}}}}},"responses":{"200":{"description":"Regular expression test response"},"400":{"description":"Invalid or unsafe regular expression"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}},"/api/sort-lines":{"post":{"summary":"Sort text lines","description":"Sorts text lines in ascending or descending order using text or numeric comparison. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"direction":{"type":"string","enum":["asc","desc"],"default":"asc"},"mode":{"type":"string","enum":["text","numeric"],"default":"text"},"caseSensitive":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"Sorted lines response"},"400":{"description":"Invalid input or options"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}},"/api/filter-lines":{"post":{"summary":"Filter text lines","description":"Keeps or removes lines that match a text query. Supports case-sensitive matching and optional empty-line removal. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","query"],"properties":{"text":{"type":"string"},"query":{"type":"string"},"mode":{"type":"string","enum":["include","exclude"],"default":"include"},"caseSensitive":{"type":"boolean","default":true},"removeEmpty":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Filtered lines response"},"400":{"description":"Invalid input or options"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}},"/api/line-numberer":{"post":{"summary":"Add line numbers","description":"Adds sequential numbers to each line of text. Supports a custom starting number and separator. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"start":{"type":"integer","default":1},"separator":{"type":"string","default":". "}}}}}},"responses":{"200":{"description":"Numbered text response"},"400":{"description":"Invalid input or options"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}},"/api/whitespace-cleaner":{"post":{"summary":"Clean whitespace","description":"Trims lines, collapses repeated spaces or tabs, and can remove empty lines. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"trimLines":{"type":"boolean","default":true},"collapseSpaces":{"type":"boolean","default":true},"removeEmptyLines":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Cleaned text response"},"400":{"description":"Invalid input"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}},"/api/uuid":{"post":{"summary":"Generate UUID v4","description":"Generates a UUID v4. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"UUID response"},"402":{"description":"Payment Required"}}}},"/api/base64":{"post":{"summary":"Base64 encode/decode","description":"Encodes or decodes Base64. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Base64 response"},"402":{"description":"Payment Required"}}}},"/api/url-encode":{"post":{"summary":"URL encode/decode","description":"Encodes or decodes URL components. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"URL encode/decode response"},"402":{"description":"Payment Required"}}}},"/api/hex":{"post":{"summary":"Hex encode/decode","description":"Encodes or decodes hexadecimal text. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Hex response"},"402":{"description":"Payment Required"}}}},"/api/timestamp":{"post":{"summary":"Convert timestamps","description":"Converts between Unix timestamps and ISO dates. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Timestamp conversion response"},"402":{"description":"Payment Required"}}}},"/api/slug":{"post":{"summary":"Generate slug","description":"Creates a URL-friendly slug. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Slug response"},"402":{"description":"Payment Required"}}}},"/api/csv-to-json":{"post":{"summary":"Convert CSV to JSON","description":"Converts CSV text into JSON rows. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["csv"],"properties":{"csv":{"type":"string"}}}}}},"responses":{"200":{"description":"CSV converted to JSON response"},"400":{"description":"Invalid CSV input"},"402":{"description":"Payment Required"}}}},"/api/json-to-csv":{"post":{"summary":"Convert JSON to CSV","description":"Converts an array of JSON objects into CSV text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object"}}}}}}},"responses":{"200":{"description":"JSON converted to CSV response"},"400":{"description":"Invalid JSON input"},"402":{"description":"Payment Required"}}}},"/api/markdown-to-html":{"post":{"summary":"Convert Markdown to HTML","description":"Converts Markdown text into HTML. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["markdown"],"properties":{"markdown":{"type":"string"}}}}}},"responses":{"200":{"description":"Markdown converted to HTML response"},"400":{"description":"Invalid Markdown input"},"402":{"description":"Payment Required"}}}},"/api/json-minify":{"post":{"summary":"Minify JSON","description":"Parses JSON text and returns a compact minified JSON string. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"}}}}}},"responses":{"200":{"description":"Minified JSON response"},"400":{"description":"Invalid JSON input"},"402":{"description":"Payment Required"}}}},"/api/url-parser":{"post":{"summary":"Parse URL","description":"Parses a URL into protocol, hostname, port, pathname, query parameters, hash and origin. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Parsed URL response"},"400":{"description":"Invalid URL input"},"402":{"description":"Payment Required"}}}},"/api/jwt-decode":{"post":{"summary":"Decode JWT","description":"Decodes JWT header and payload without verifying the signature. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string"}}}}}},"responses":{"200":{"description":"Decoded JWT response"},"400":{"description":"Invalid JWT input"},"402":{"description":"Payment Required"}}}},"/api/html-to-markdown":{"post":{"summary":"Convert HTML to Markdown","description":"Converts HTML text into Markdown. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["html"],"properties":{"html":{"type":"string"}}}}}},"responses":{"200":{"description":"HTML converted to Markdown response"},"400":{"description":"Invalid HTML input"},"402":{"description":"Payment Required"}}}},"/api/query-parser":{"post":{"summary":"Parse Query String","description":"Parses a URL query string into structured JSON. Repeated keys are returned as arrays. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"}}}}}},"responses":{"200":{"description":"Parsed query string response"},"400":{"description":"Invalid query string input"},"402":{"description":"Payment Required"}}}},"/api/base64url":{"post":{"summary":"Base64URL encode/decode","description":"Encodes UTF-8 text to Base64URL or decodes Base64URL text back to UTF-8. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["mode","text"],"properties":{"mode":{"type":"string","enum":["encode","decode"]},"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Base64URL encode/decode response"},"400":{"description":"Invalid Base64URL input"},"402":{"description":"Payment Required"}}}},"/api/color-convert":{"post":{"summary":"Convert Color","description":"Converts colors between 6-digit HEX and RGB formats. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["mode","value"],"properties":{"mode":{"type":"string","enum":["hex-to-rgb","rgb-to-hex"]},"value":{"type":"string"}}}}}},"responses":{"200":{"description":"Converted color response"},"400":{"description":"Invalid color input"},"402":{"description":"Payment Required"}}}},"/api/fetch":{"post":{"summary":"Fetch web content","description":"Fetches a public HTTP/HTTPS web resource and returns text content. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Fetched web content response"},"400":{"description":"Invalid or blocked URL"},"402":{"description":"Payment Required"},"413":{"description":"Response too large"},"502":{"description":"Web fetch failed"}}}},"/api/extract-links":{"post":{"summary":"Extract links from a web page","description":"Fetches a public HTTP/HTTPS web page and extracts HTTP/HTTPS links from its HTML. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Extracted links response"},"400":{"description":"Invalid or blocked URL, or non-HTML resource"},"402":{"description":"Payment Required"},"413":{"description":"Response too large"},"502":{"description":"Link extraction failed"}}}},"/api/search-text":{"post":{"summary":"Search text on a web page","description":"Fetches a public HTTP/HTTPS web page and searches its text content for a keyword. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","query"],"properties":{"url":{"type":"string"},"query":{"type":"string"}}}}}},"responses":{"200":{"description":"Text search response"},"400":{"description":"Invalid input, blocked URL, or non-HTML resource"},"402":{"description":"Payment Required"},"413":{"description":"Response too large"},"502":{"description":"Text search failed"}}}},"/api/page-info":{"post":{"summary":"Get basic page information","description":"Fetches a public HTTP/HTTPS web page and returns basic page information such as status, content type, title, and size when available. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Page information response"},"400":{"description":"Invalid or blocked URL"},"402":{"description":"Payment Required"},"413":{"description":"Response too large"},"502":{"description":"Page info lookup failed"}}}},"/api/meta-extract":{"post":{"summary":"Extract page metadata","description":"Fetches a public HTTP/HTTPS web page and extracts its title, description, Open Graph metadata, and canonical URL. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Extracted page metadata response"},"400":{"description":"Invalid, blocked, or non-HTML URL"},"402":{"description":"Payment Required"},"413":{"description":"Response too large"},"502":{"description":"Metadata extraction failed"}}}},"/api/html-to-text":{"post":{"summary":"Convert HTML to plain text","description":"Converts HTML content into clean plain text. Removes scripts, styles, tags, and decodes common HTML entities. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["html"],"properties":{"html":{"type":"string"}}}}}},"responses":{"200":{"description":"HTML to text conversion response"},"400":{"description":"Invalid or empty HTML input"},"402":{"description":"Payment Required"},"413":{"description":"HTML input too large"},"502":{"description":"HTML to text conversion failed"}}}},"/api/case-convert":{"post":{"summary":"Convert text case","description":"Converts text between upper, lower, camel, snake, kebab, and pascal case formats. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","mode"],"properties":{"text":{"type":"string"},"mode":{"type":"string","enum":["upper","lower","camel","snake","kebab","pascal"]}}}}}},"responses":{"200":{"description":"Case conversion response"},"400":{"description":"Invalid text or conversion mode"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"},"502":{"description":"Case conversion failed"}}}},"/api/json-escape":{"post":{"summary":"Escape or unescape JSON string text","description":"Escapes text for use inside JSON strings or unescapes JSON string escape sequences. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","mode"],"properties":{"text":{"type":"string"},"mode":{"type":"string","enum":["escape","unescape"]}}}}}},"responses":{"200":{"description":"JSON escape conversion response"},"400":{"description":"Invalid text or conversion mode"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/random":{"post":{"summary":"Generate random value","description":"Generates a random string or integer. Requires x402 payment of 0.001 STX.","responses":{"200":{"description":"Random value response"},"402":{"description":"Payment Required"}}}},"/api/slugify":{"post":{"summary":"Convert text to URL-friendly slug","description":"Converts text into a clean URL-friendly slug. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Slug conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/camel-case":{"post":{"summary":"Convert text to camelCase","description":"Converts text into camelCase format. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"camelCase conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/pascal-case":{"post":{"summary":"Convert text to PascalCase","description":"Converts text into PascalCase format. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"PascalCase conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/snake-case":{"post":{"summary":"Convert text to snake_case","description":"Converts text into snake_case format. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"snake_case conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/kebab-case":{"post":{"summary":"Convert text to kebab-case","description":"Converts text into kebab-case format. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"kebab-case conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/title-case":{"post":{"summary":"Convert text to Title Case","description":"Converts text into Title Case format. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Title Case conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/sentence-case":{"post":{"summary":"Convert text to Sentence case","description":"Converts text into sentence case format. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Sentence case conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/lowercase-first":{"post":{"summary":"Lowercase the first character","description":"Lowercases only the first character of text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Lowercase first conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/uppercase-first":{"post":{"summary":"Uppercase the first character","description":"Uppercases only the first character of text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Uppercase first conversion response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/remove-spaces":{"post":{"summary":"Remove whitespace from text","description":"Removes all whitespace characters from text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Whitespace removal response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/collapse-spaces":{"post":{"summary":"Collapse repeated whitespace","description":"Collapses repeated whitespace into a single space. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Whitespace collapse response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/trim":{"post":{"summary":"Trim text","description":"Removes leading and trailing whitespace from text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Trimmed text response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/trim-start":{"post":{"summary":"Trim leading whitespace","description":"Removes leading whitespace from text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Trimmed-start text response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/trim-end":{"post":{"summary":"Trim trailing whitespace","description":"Removes trailing whitespace from text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}}}}}},"responses":{"200":{"description":"Trimmed-end text response"},"400":{"description":"Invalid text input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/repeat-text":{"post":{"summary":"Repeat text","description":"Repeats text a specified number of times. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","count"],"properties":{"text":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":100}}}}}},"responses":{"200":{"description":"Repeated text response"},"400":{"description":"Invalid text or count input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/text-prefix":{"post":{"summary":"Add text prefix","description":"Adds a prefix to the beginning of text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","prefix"],"properties":{"text":{"type":"string"},"prefix":{"type":"string"}}}}}},"responses":{"200":{"description":"Prefixed text response"},"400":{"description":"Invalid text or prefix input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/text-suffix":{"post":{"summary":"Add text suffix","description":"Adds a suffix to the end of text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","suffix"],"properties":{"text":{"type":"string"},"suffix":{"type":"string"}}}}}},"responses":{"200":{"description":"Suffixed text response"},"400":{"description":"Invalid text or suffix input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/remove-prefix":{"post":{"summary":"Remove text prefix","description":"Removes a matching prefix from the beginning of text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","prefix"],"properties":{"text":{"type":"string"},"prefix":{"type":"string"}}}}}},"responses":{"200":{"description":"Prefix removal response"},"400":{"description":"Invalid text or prefix input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/remove-suffix":{"post":{"summary":"Remove text suffix","description":"Removes a matching suffix from the end of text. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","suffix"],"properties":{"text":{"type":"string"},"suffix":{"type":"string"}}}}}},"responses":{"200":{"description":"Suffix removal response"},"400":{"description":"Invalid text or suffix input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/text-slice":{"post":{"summary":"Slice text","description":"Extracts a portion of text using a start position and optional end position. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","start"],"properties":{"text":{"type":"string"},"start":{"type":"integer"},"end":{"type":"integer"}}}}}},"responses":{"200":{"description":"Sliced text response"},"400":{"description":"Invalid text, start, or end input"},"402":{"description":"Payment Required"},"413":{"description":"Text input too large"}}}},"/api/text-contains":{"post":{"summary":"Check text contains","description":"Checks whether text contains a search string, with optional case sensitivity. Requires x402 payment of 0.001 STX.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","search"],"properties":{"text":{"type":"string"},"search":{"type":"string"},"caseSensitive":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Text contains response"},"400":{"description":"Invalid text, search, or caseSensitive input"},"402":{"description":"Payment Required"},"413":{"description":"Input too large"}}}}}}