{"api":"v1","generated_at":"2026-11-01T13:40:02.637Z","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/api-zfinia-com-x402-v1-json-schema-migration-impact-c28ed2","pinned_page":"https://tollindex.com/e/api-zfinia-com-x402-v1-json-schema-migration-impact-c28ed2/at/2026-11-01T13-19Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-11-01T13:19:08.063Z","snapshot_stamp":"2026-11-01T13-19Z","endpoint":{"slug":"api-zfinia-com-x402-v1-json-schema-migration-impact-c28ed2","canonical_url":"https://api.zfinia.com/x402/v1/json-schema-migration-impact","resource":"https://api.zfinia.com/x402/v1/json-schema-migration-impact","http_method":"POST","type":"http","x402_version":2,"registries":[],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Decide whether a schema change is safe to ship, with evidence. Returns the compatibility verdict for your clients and, separately, how many of the real payloads you supply would newly be rejected, with the failing constraints ranked by how many payloads each costs. A breaking change nothing relies on is a different decision from one that rejects a tenth of your traffic.","service_name":"Migration Impact","declared_category":null,"declared_tags":["migration impact","breaking change","release safety","schema compatibility","evidence"],"route_template":null,"registry_updated":"2026-10-04T07:52:10.795Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"json schema migration impact","category":"other","first_observed_by_toll":"2026-10-04T12:19:28.655Z","last_observed_by_toll":"2026-10-10T12:29:27.642Z","observation_began":"2026-09-10"},"presence":{"listed_now":false,"first_absent_at":"2026-10-10T21:42:09.512Z","delisting_confirmed_at":"2026-10-11T05:44:11.219Z","events":[{"registry":"cdp","at":"2026-10-04T12:19:28.656Z","event":"listed"},{"registry":"cdp","at":"2026-10-10T21:42:09.512Z","event":"delisted"},{"registry":"cdp","at":"2026-10-11T05:44:11.219Z","event":"delisting_confirmed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.22 USDC","amount_units":0.22,"decimals_known":true,"pay_to":"0x25e8245f07d5e4873987293dad666afbe56a9608","scheme":"exact"}],"counters":{"observed_at":"2026-10-10T12:29:27.643Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-10-04T07:52:06.556Z"},"validation":{"latest":{"observed_at":"2026-10-10T17:56:14.257Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-10-10"},"uptime":[{"days":7,"observed":0,"passed":0,"ratio":null},{"days":30,"observed":8,"passed":6,"ratio":0.75},{"days":90,"observed":8,"passed":6,"ratio":0.75}],"history_90d":[{"observed_at":"2026-10-10T17:56:14.257Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-10","state_changed":true},{"observed_at":"2026-10-09T11:11:40.325Z","state":"fail","failed_checks":["endpoint_reachable"],"run_id":"daily-2026-10-09","state_changed":true},{"observed_at":"2026-10-08T12:46:08.889Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-08","state_changed":false},{"observed_at":"2026-10-07T12:03:06.846Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-07","state_changed":false},{"observed_at":"2026-10-06T12:43:44.049Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-06","state_changed":false},{"observed_at":"2026-10-05T11:15:35.814Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-05","state_changed":false},{"observed_at":"2026-10-04T13:59:23.252Z","state":"pass","failed_checks":[],"run_id":"daily-2026-10-04","state_changed":true},{"observed_at":"2026-10-04T12:47:34.163Z","state":"fail","failed_checks":["endpoint_reachable"],"run_id":"new-after-daily-2026-10-04","state_changed":true}]},"seller":{"wallet":"0x25e8245f07d5e4873987293dad666afbe56a9608","page":"https://tollindex.com/seller/0x25e8245f07d5e4873987293dad666afbe56a9608","endpoints":179,"hosts":5},"reports":0,"registry_record":{"cdp":[{"tags":["migration impact","breaking change","release safety","schema compatibility","evidence"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"payTo":"0x25e8245f07d5e4873987293dad666afbe56a9608","amount":"220000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":60}],"quality":{"lastCalledAt":"2026-10-04T07:52:06.556Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://api.zfinia.com/x402/v1/json-schema-migration-impact","extensions":{"bazaar":{"info":{"input":{"body":{"role":"producers","after":{"type":"object","required":["email"],"properties":{"age":{"type":"integer","minimum":18},"tier":{"enum":["free","pro"],"type":"string"},"email":{"type":"string","format":"email"}}},"before":{"type":"object","properties":{"age":{"type":"integer"},"tier":{"type":"string"},"email":{"type":"string"}}},"documents":[{"age":30,"tier":"pro","email":"a@example.com"},{"age":16,"tier":"free","email":"b@example.com"},{"age":40,"tier":"free","email":"not-an-email"},{"age":25,"tier":"enterprise"},{"age":22,"tier":"pro","email":"d@example.com"}]},"type":"http","method":"POST","bodyType":"json"},"output":{"type":"json","example":{"role":"producers","limits":{"maxLines":2000,"maxHeaders":100,"maxFindings":500,"maxPointers":2000,"maxTextBytes":262144,"maxBatchItems":500,"maxDocumentBytes":262144},"complete":true,"evidence":{"valid_after":2,"valid_before":5,"document_count":5,"newly_accepted":0,"newly_rejected":3,"rejection_rate":0.6,"breaking_constraints":[{"code":"BELOW_MINIMUM","example":"16 violates minimum 18.","pointer":"/age","documents":1},{"code":"FORMAT_MISMATCH","example":"Does not look like a email.","pointer":"/email","documents":1},{"code":"REQUIRED_PROPERTY_MISSING","example":"Required property email is absent.","pointer":"/email","documents":1}]},"findings":[{"code":"DOCUMENT_NEWLY_REJECTED","detail":"Document 1 satisfies the before schema and is rejected by the after schema.","errors":[{"code":"BELOW_MINIMUM","detail":"16 violates minimum 18.","pointer":"/age"}],"document":1},{"code":"DOCUMENT_NEWLY_REJECTED","detail":"Document 2 satisfies the before schema and is rejected by the after schema.","errors":[{"code":"FORMAT_MISMATCH","detail":"Does not look like a email.","pointer":"/email"}],"document":2},{"code":"DOCUMENT_NEWLY_REJECTED","detail":"Document 3 satisfies the before schema and is rejected by the after schema.","errors":[{"code":"REQUIRED_PROPERTY_MISSING","detail":"Required property email is absent.","pointer":"/email","property":"email"},{"code":"NOT_IN_ENUM","detail":"\"enterprise\" is not one of the 2 permitted values.","pointer":"/tier"}],"document":3}],"request_id":"example-request","service_id":"json_schema_migration_impact","assumptions":["The supplied documents stand in for real traffic. A change that breaks nothing in this batch may still break a payload the batch does not contain.","A document counted as newly rejected satisfied the before schema and fails the after schema, which is the only comparison that isolates the effect of the change."],"limitations":["Impact over the batch supplied, plus the schema-level verdict. Neither alone decides a release, which is why both are returned.","safe_to_ship is true only when the schema change breaks nobody for the stated role, no supplied payload regressed, and nothing was left unexamined."],"observed_at":"2026-10-02T00:00:00.000Z","not_examined":[],"safe_to_ship":false,"finding_count":3,"schema_verdict":{"findings":[{"code":"REQUIRED_PROPERTY_ADDED","breaks":["producers"],"detail":"email is now required, so a sender that omitted it now fails.","pointer":"/email","property":"email","severity":"breaking"},{"to":"email","code":"FORMAT_ADDED","breaks":["producers"],"detail":"A format of email was added.","pointer":"/email","severity":"risky"},{"to":18,"code":"BOUND_ADDED","breaks":["producers"],"detail":"minimum 18 was added where the value was unbounded.","keyword":"minimum","pointer":"/age/minimum","severity":"breaking"}],"compatible":false,"risky_count":1,"breaking_count":3,"unclassified_count":0},"service_version":"1.0.0","findings_by_code":{"DOCUMENT_NEWLY_REJECTED":3}}}},"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":["before","after","documents"],"properties":{"role":{"enum":["producers","consumers","both"],"type":"string"},"after":{"type":"object"},"before":{"type":"object"},"documents":{"type":"array","items":{},"maxItems":500,"minItems":1}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}}}},"description":"Decide whether a schema change is safe to ship, with evidence. Returns the compatibility verdict for your clients and, separately, how many of the real payloads you supply would newly be rejected, with the failing constraints ranked by how many payloads each costs. A breaking change nothing relies on is a different decision from one that rejects a tenth of your traffic.","lastUpdated":"2026-10-04T07:52:10.795Z","serviceName":"Migration Impact","x402Version":2}]}}