{"api":"v1","generated_at":"2026-09-16T04:39:23.982Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/handel-halowerk-com-v1-allergen-check-dc58b8","pinned_page":"https://tollindex.com/e/handel-halowerk-com-v1-allergen-check-dc58b8/at/2026-09-15T21-20Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-09-15T21:20:12.737Z","snapshot_stamp":"2026-09-15T21-20Z","endpoint":{"slug":"handel-halowerk-com-v1-allergen-check-dc58b8","canonical_url":"https://handel.halowerk.com/v1/allergen-check","resource":"https://handel.halowerk.com/v1/allergen-check","http_method":"POST","type":"http","x402_version":2,"registries":["cdp"],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Returns what a product declares about allergens: the allergen tags, the trace warnings, the ingredients text in its original language, and the completeness of the record. The distinction it holds to throughout is between not declared and not present. The data come from volunteers and manufacturer submissions, so an empty allergen field means nobody entered one, and for somebody with an allergy that difference is the difference that matters — every absent allergen is therefore reported as not…","service_name":null,"declared_category":null,"declared_tags":[],"route_template":null,"registry_updated":"2026-09-06T22:11:17.297Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"allergen check","category":"other","first_observed_by_toll":"2026-09-10T19:08:24.178Z","last_observed_by_toll":"2026-09-15T21:20:12.737Z","observation_began":"2026-09-10"},"presence":{"listed_now":true,"first_absent_at":null,"delisting_confirmed_at":null,"events":[{"registry":"cdp","at":"2026-09-10T19:08:24.178Z","event":"listed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.005 USDC","amount_units":0.005,"decimals_known":true,"pay_to":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","scheme":"exact"}],"counters":{"observed_at":"2026-09-15T21:20:12.737Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-09-06T22:11:16.808Z"},"validation":{"latest":{"observed_at":"2026-09-15T06:44:35.559Z","state":"pass","failed_checks":["bazaar.info.output"],"endpoint_http_status":402,"run_id":"daily-2026-09-15"},"uptime":[{"days":7,"observed":5,"passed":5,"ratio":1},{"days":30,"observed":5,"passed":5,"ratio":1},{"days":90,"observed":5,"passed":5,"ratio":1}],"history_90d":[{"observed_at":"2026-09-15T06:44:35.559Z","state":"pass","failed_checks":["bazaar.info.output"],"run_id":"daily-2026-09-15","state_changed":false},{"observed_at":"2026-09-14T06:12:53.177Z","state":"pass","failed_checks":["bazaar.info.output"],"run_id":"daily-2026-09-14","state_changed":false},{"observed_at":"2026-09-13T06:04:01.796Z","state":"pass","failed_checks":["bazaar.info.output"],"run_id":"daily-2026-09-13","state_changed":false},{"observed_at":"2026-09-12T08:21:26.517Z","state":"pass","failed_checks":["bazaar.info.output"],"run_id":"daily-2026-09-12","state_changed":false},{"observed_at":"2026-09-11T13:38:11.995Z","state":"pass","failed_checks":["bazaar.info.output"],"run_id":"daily-2026-09-11","state_changed":true}]},"seller":{"wallet":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","page":"https://tollindex.com/seller/0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","endpoints":1553,"hosts":67},"reports":0,"registry_record":{"cdp":[{"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","asset":"USDC","version":"2","eip712Domain":{"name":"USD Coin","chainId":8453,"version":"2","verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"network_name":"Base Mainnet","assetTransferMethod":"eip3009"},"payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","amount":"5000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":300}],"quality":{"lastCalledAt":"2026-09-06T22:11:16.808Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://handel.halowerk.com/v1/allergen-check","extensions":{"bazaar":{"info":{"input":{"body":{"barcode":"3017620422003"},"type":"http","method":"POST","bodyType":"json"}},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["barcode"],"properties":{"barcode":{"type":"string","maxLength":20,"minLength":8}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false}}}}},"description":"Returns what a product declares about allergens: the allergen tags, the trace warnings, the ingredients text in its original language, and the completeness of the record. The distinction it holds to throughout is between not declared and not present. The data come from volunteers and manufacturer submissions, so an empty allergen field means nobody entered one, and for somebody with an allergy that difference is the difference that matters — every absent allergen is therefore reported as not…","lastUpdated":"2026-09-06T22:11:17.297Z","x402Version":2}]}}