{"info":{"title":"Halowerk","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/abtest/evaluate":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Abtest Evaluate","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Reads one conversion experiment two ways at once. Frequentist: two-proportion test, p value, confidence interval on the absolute lift, and the sample size the requested minimum detectable effect needs at the requested power. Bayesian: Beta-Binomial posteriors, probability the variant is better, expected loss either way, credible intervals - closed form, not sampled, so the numbers repeat exactly. "},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Abtest Evaluate","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Reads one conversion experiment two ways at once. Frequentist: two-proportion test, p value, confidence interval on the absolute lift, and the sample size the requested minimum detectable effect needs at the requested power. Bayesian: Beta-Binomial posteriors, probability the variant is better, expected loss either way, credible intervals - closed form, not sampled, so the numbers repeat exactly. "}},"/v1/cohort/retention":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Cohort Retention","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Builds the cohort table from the events you pass: users grouped by the period of their first event, counted again in each following period. Returns the table per cohort, a retention curve across all cohorts, and, where events carry a value, cumulative value and value per user. The curve counts only cohorts old enough for a given period, so a young cohort is not scored as churn. Day, week and month"},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Cohort Retention","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Builds the cohort table from the events you pass: users grouped by the period of their first event, counted again in each following period. Returns the table per cohort, a retention curve across all cohorts, and, where events carry a value, cumulative value and value per user. The curve counts only cohorts old enough for a given period, so a young cohort is not scored as churn. Day, week and month"}},"/v1/currency/normalize":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Currency Normalize","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Findet Betraege in Freitext, deutet deutsche und englische Tausender- und Dezimaltrennung richtig, loest Mio, Mrd, Tsd und k auf, erkennt 50 Waehrungen an Symbol, Code oder Wort einschliesslich USDC und Bitcoin und liefert Zahl, Waehrungscode, kleinste Einheit und Fundstelle getrennt. Rechnet bewusst nicht um."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Currency Normalize","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Findet Betraege in Freitext, deutet deutsche und englische Tausender- und Dezimaltrennung richtig, loest Mio, Mrd, Tsd und k auf, erkennt 50 Waehrungen an Symbol, Code oder Wort einschliesslich USDC und Bitcoin und liefert Zahl, Waehrungscode, kleinste Einheit und Fundstelle getrennt. Rechnet bewusst nicht um."}},"/v1/file/inspect":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: File Inspect","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Bestimmt den tatsaechlichen Dateityp aus der Signatur, erkennt Office- und Archivinhalte am Verzeichnis, meldet Makros, eingebettete ausfuehrbare Dateien, Pfadwechsel im Archiv, JavaScript und Startaktionen in PDF sowie den Widerspruch zwischen Dateiendung und Inhalt. Die Datei wird weder ausgefuehrt noch gespeichert."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: File Inspect","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Bestimmt den tatsaechlichen Dateityp aus der Signatur, erkennt Office- und Archivinhalte am Verzeichnis, meldet Makros, eingebettete ausfuehrbare Dateien, Pfadwechsel im Archiv, JavaScript und Startaktionen in PDF sowie den Widerspruch zwischen Dateiendung und Inhalt. Die Datei wird weder ausgefuehrt noch gespeichert."}},"/v1/funnel/analyze":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Funnel Analyze","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Walks the events you pass through the ordered steps you name and reports per step: how many arrived, conversion from the previous step and from the first, drop-off in users and as a rate, and time to the next step as median, p90 and mean. A step counts only if it happened after the one before and inside the window. Where events carry a segment, each is tested against the largest with the same two-"},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Funnel Analyze","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Walks the events you pass through the ordered steps you name and reports per step: how many arrived, conversion from the previous step and from the first, drop-off in users and as a rate, and time to the next step as median, p90 and mean. A step counts only if it happened after the one before and inside the window. Where events carry a segment, each is tested against the largest with the same two-"}},"/v1/iban/check":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Iban Check","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Prueft die IBAN nach ISO 13616 und ISO 7064 mit Pruefsumme mod 97-10 gegen die Laengentabelle von 74 Laendern, zerlegt die BBAN fuer elf Laender in Bankleitzahl und Kontonummer, meldet SEPA-Zugehoerigkeit und prueft eine mitgegebene BIC auf Format und Landesgleichheit. Trifft keine Aussage zu Existenz oder Deckung."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Iban Check","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Prueft die IBAN nach ISO 13616 und ISO 7064 mit Pruefsumme mod 97-10 gegen die Laengentabelle von 74 Laendern, zerlegt die BBAN fuer elf Laender in Bankleitzahl und Kontonummer, meldet SEPA-Zugehoerigkeit und prueft eine mitgegebene BIC auf Format und Landesgleichheit. Trifft keine Aussage zu Existenz oder Deckung."}},"/v1/phone/parse":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Phone Parse","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Nimmt jede Schreibweise, erkennt die Landeskennzahl aus 150 Vorwahlen, ergaenzt bei nationaler Schreibweise das Standardland, zerlegt in Vorwahl und Teilnehmernummer und bestimmt fuer Deutschland Festnetz, Mobilfunk und Sonderrufnummern mit Kostenhinweis. Liefert E.164, internationale und nationale Schreibweise sowie tel-URI."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Phone Parse","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Nimmt jede Schreibweise, erkennt die Landeskennzahl aus 150 Vorwahlen, ergaenzt bei nationaler Schreibweise das Standardland, zerlegt in Vorwahl und Teilnehmernummer und bestimmt fuer Deutschland Festnetz, Mobilfunk und Sonderrufnummern mit Kostenhinweis. Liefert E.164, internationale und nationale Schreibweise sowie tel-URI."}},"/v1/route/matrix":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Route Matrix","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Berechnet Entfernung und Fahrzeit zwischen bis zu 25 Punkten, wahlweise als volle Matrix oder als Start-Ziel-Kreuz. Nimmt Koordinaten oder Anschriften und geokodiert sie selbst. Nutzt freie Streckendaten auf Basis von OpenStreetMap fuer Auto, Rad und Fussweg und faellt bei Ausfall nachvollziehbar auf eine Luftlinienschaetzung mit Umwegfaktor zurueck."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Route Matrix","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Berechnet Entfernung und Fahrzeit zwischen bis zu 25 Punkten, wahlweise als volle Matrix oder als Start-Ziel-Kreuz. Nimmt Koordinaten oder Anschriften und geokodiert sie selbst. Nutzt freie Streckendaten auf Basis von OpenStreetMap fuer Auto, Rad und Fussweg und faellt bei Ausfall nachvollziehbar auf eine Luftlinienschaetzung mit Umwegfaktor zurueck."}},"/v1/screenshot":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: V1 Screenshot","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Rendert eine URL in Headless Chrome und liefert PNG als Base64 plus kurzlebige Abhol-URL. Viewport, Vollseite und Wartebedingung steuerbar."},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: V1 Screenshot","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Rendert eine URL in Headless Chrome und liefert PNG als Base64 plus kurzlebige Abhol-URL. Viewport, Vollseite und Wartebedingung steuerbar."}},"/v1/series/anomaly":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Series Anomaly","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Runs three detectors over one series and reports what each saw: a robust z score on median and median absolute deviation, a robust seasonal-trend decomposition with a z score on the residual, and an isolation forest over value and step-to-previous. Every score is returned per point, so callers set their own threshold instead of trusting a verdict. The forest draws from a fixed seed: same request, "},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Series Anomaly","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Runs three detectors over one series and reports what each saw: a robust z score on median and median absolute deviation, a robust seasonal-trend decomposition with a z score on the residual, and an isolation forest over value and step-to-previous. Every score is returned per point, so callers set their own threshold instead of trusting a verdict. The forest draws from a fixed seed: same request, "}},"/v1/telemetry/normalize":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Telemetry Normalize","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Turns SenML (JSON or CBOR) and LwM2M TLV into one record shape: resolved name, unit, absolute timestamp, typed value. Optionally puts every series on a shared time axis with a chosen interval and fill rule (last value, bucket mean, linear). Works only on the payload you pass: no device is contacted, nothing is stored, the same request returns the same bytes. TLV carries no type on the wire; unmapp"},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Telemetry Normalize","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Turns SenML (JSON or CBOR) and LwM2M TLV into one record shape: resolved name, unit, absolute timestamp, typed value. Optionally puts every series on a shared time axis with a chosen interval and fill rule (last value, bucket mean, linear). Works only on the payload you pass: no device is contacted, nothing is stored, the same request returns the same bytes. TLV carries no type on the wire; unmapp"}},"/v1/traffic/classify":{"post":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Traffic Classify","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Groups the access records you pass into clients and sorts each in two stages: person or machine, then, for a machine, the purpose. Signals: cadence and its scatter, path shape and consecutive numeric runs, asset share, referer, method mix, not-found share, robots.txt, user agent product token. Each signal returns what was observed, its weight and why. A lead under two points stays unknown. Nothing"},"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Halowerk: Traffic Classify","intent":"charge","method":"evm","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"}]},"summary":"Groups the access records you pass into clients and sorts each in two stages: person or machine, then, for a machine, the purpose. Signals: cadence and its scatter, path shape and consecutive numeric runs, asset share, referer, method mix, not-found share, robots.txt, user agent product token. Each signal returns what was observed, its weight and why. A lead under two points stays unknown. Nothing"}}},"x-service-info":{"description":"Halowerk is an x402-native service at https://tools.halowerk.com, indexed from the x402 Bazaar (Coinbase's public discovery directory). It charges callers itself in USDC on Base and is paid directly at its own wallet; Monex Protocol passes your request and payment headers through untouched. 12 endpoints listed."}}