api.invoket.com
https://api.invoket.com/legal/diffShares a payout wallet with 40 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.
Before your agent updates a contract clause or a compliance rule that depends on a law: see exactly what changed in a French or EU article between two dates — resolves the version in force at each date, from the official LEGI and EUR-Lex datasets, and returns a word-level diff plus a git-style unified patch with both versions' metadata. Covers 12 major French codes and statutes and key EU acts (GDPR, DSA, AI Act, MiCA and more).
Reliability & health
Uptime and response time from our own unpaid probes, plus the reliability score built from them.
Uptime
100.0% avgResponse time
p50 182ms · p95 193msData table
| Bucket | Uptime | Probes | Response time |
|---|---|---|---|
| 8/13/2026, 8:00:00 PM | 100% | 1 | 186ms |
| 8/13/2026, 9:00:00 PM | 100% | 1 | 187ms |
| 8/13/2026, 11:00:00 PM | 100% | 1 | 188ms |
| 8/14/2026, 12:00:00 AM | 100% | 1 | 182ms |
| 8/14/2026, 1:00:00 AM | 100% | 1 | 187ms |
| 8/14/2026, 2:00:00 AM | 100% | 1 | 196ms |
| 8/14/2026, 3:00:00 AM | 100% | 1 | 193ms |
| 8/14/2026, 4:00:00 AM | 100% | 1 | 187ms |
| 8/14/2026, 6:00:00 AM | 100% | 1 | 184ms |
| 8/14/2026, 7:00:00 AM | 100% | 1 | 183ms |
| 8/14/2026, 8:00:00 AM | 100% | 1 | 187ms |
| 8/14/2026, 9:00:00 AM | 100% | 1 | 188ms |
| 8/14/2026, 10:00:00 AM | 100% | 1 | 197ms |
| 8/14/2026, 11:00:00 AM | 100% | 1 | 186ms |
| 8/14/2026, 12:00:00 PM | 100% | 1 | 190ms |
| 8/14/2026, 2:00:00 PM | 100% | 1 | 190ms |
| 8/14/2026, 3:00:00 PM | 100% | 1 | 189ms |
| 8/14/2026, 4:00:00 PM | 100% | 1 | 184ms |
| 8/14/2026, 5:00:00 PM | 100% | 1 | 193ms |
| 8/14/2026, 6:00:00 PM | 100% | 1 | 193ms |
| 8/14/2026, 8:00:00 PM | 100% | 1 | 188ms |
| 8/14/2026, 9:00:00 PM | 100% | 1 | 189ms |
| 8/14/2026, 10:00:00 PM | 100% | 1 | 185ms |
| 8/14/2026, 11:00:00 PM | 100% | 1 | 193ms |
| 8/15/2026, 12:00:00 AM | 100% | 1 | 184ms |
| 8/15/2026, 1:00:00 AM | 100% | 1 | 191ms |
| 8/15/2026, 2:00:00 AM | 100% | 1 | 189ms |
| 8/15/2026, 3:00:00 AM | 100% | 1 | 185ms |
| 8/15/2026, 5:00:00 AM | 100% | 1 | 189ms |
| 8/15/2026, 6:00:00 AM | 100% | 1 | 189ms |
| 8/15/2026, 7:00:00 AM | 100% | 1 | 189ms |
| 8/15/2026, 8:00:00 AM | 100% | 1 | 189ms |
| 8/15/2026, 9:00:00 AM | 100% | 1 | 186ms |
| 8/15/2026, 10:00:00 AM | 100% | 1 | 175ms |
| 8/15/2026, 11:00:00 AM | 100% | 1 | 175ms |
| 8/15/2026, 12:00:00 PM | 100% | 1 | 182ms |
| 8/15/2026, 2:00:00 PM | 100% | 1 | 176ms |
| 8/15/2026, 3:00:00 PM | 100% | 1 | 179ms |
| 8/15/2026, 4:00:00 PM | 100% | 1 | 180ms |
| 8/15/2026, 5:00:00 PM | 100% | 1 | 174ms |
| 8/15/2026, 6:00:00 PM | 100% | 1 | 179ms |
| 8/15/2026, 7:00:00 PM | 100% | 1 | 177ms |
| 8/15/2026, 9:00:00 PM | 100% | 1 | 175ms |
| 8/15/2026, 10:00:00 PM | 100% | 1 | 178ms |
| 8/15/2026, 11:00:00 PM | 100% | 1 | 176ms |
| 8/16/2026, 12:00:00 AM | 100% | 1 | 182ms |
| 8/16/2026, 1:00:00 AM | 100% | 1 | 180ms |
| 8/16/2026, 2:00:00 AM | 100% | 1 | 180ms |
| 8/16/2026, 4:00:00 AM | 100% | 1 | 185ms |
| 8/16/2026, 5:00:00 AM | 100% | 1 | 188ms |
| 8/16/2026, 6:00:00 AM | 100% | 1 | 178ms |
| 8/16/2026, 7:00:00 AM | 100% | 1 | 178ms |
| 8/16/2026, 8:00:00 AM | 100% | 1 | 174ms |
| 8/16/2026, 9:00:00 AM | 100% | 1 | 190ms |
| 8/16/2026, 11:00:00 AM | 100% | 1 | 175ms |
| 8/16/2026, 12:00:00 PM | 100% | 1 | 179ms |
| 8/16/2026, 1:00:00 PM | 100% | 1 | 180ms |
| 8/16/2026, 2:00:00 PM | 100% | 1 | 187ms |
| 8/16/2026, 3:00:00 PM | 100% | 1 | 174ms |
| 8/16/2026, 4:00:00 PM | 100% | 1 | 176ms |
| 8/16/2026, 6:00:00 PM | 100% | 1 | 177ms |
| 8/16/2026, 7:00:00 PM | 100% | 1 | 183ms |
| 8/16/2026, 8:00:00 PM | 100% | 1 | 182ms |
| 8/16/2026, 9:00:00 PM | 100% | 1 | 181ms |
| 8/16/2026, 10:00:00 PM | 100% | 1 | 176ms |
| 8/16/2026, 11:00:00 PM | 100% | 1 | 178ms |
| 8/17/2026, 1:00:00 AM | 100% | 1 | 182ms |
| 8/17/2026, 2:00:00 AM | 100% | 1 | 178ms |
| 8/17/2026, 3:00:00 AM | 100% | 1 | 179ms |
| 8/17/2026, 4:00:00 AM | 100% | 1 | 181ms |
| 8/17/2026, 5:00:00 AM | 100% | 1 | 178ms |
| 8/17/2026, 6:00:00 AM | 100% | 1 | 175ms |
| 8/17/2026, 8:00:00 AM | 100% | 1 | 178ms |
| 8/17/2026, 9:00:00 AM | 100% | 1 | 175ms |
| 8/17/2026, 10:00:00 AM | 100% | 1 | 179ms |
| 8/17/2026, 11:00:00 AM | 100% | 1 | 180ms |
| 8/17/2026, 12:00:00 PM | 100% | 1 | 174ms |
| 8/17/2026, 1:00:00 PM | 100% | 1 | 180ms |
| 8/17/2026, 3:00:00 PM | 100% | 1 | 178ms |
| 8/17/2026, 4:00:00 PM | 100% | 1 | 182ms |
| 8/17/2026, 5:00:00 PM | 100% | 1 | 179ms |
| 8/17/2026, 6:00:00 PM | 100% | 1 | 183ms |
| 8/17/2026, 7:00:00 PM | 100% | 1 | 179ms |
| 8/17/2026, 8:00:00 PM | 100% | 1 | 189ms |
| 8/17/2026, 10:00:00 PM | 100% | 1 | 180ms |
| 8/17/2026, 11:00:00 PM | 100% | 1 | 178ms |
| 8/18/2026, 12:00:00 AM | 100% | 1 | 178ms |
| 8/18/2026, 1:00:00 AM | 100% | 1 | 180ms |
| 8/18/2026, 2:00:00 AM | 100% | 1 | 177ms |
| 8/18/2026, 3:00:00 AM | 100% | 1 | 180ms |
| 8/18/2026, 5:00:00 AM | 100% | 1 | 193ms |
| 8/18/2026, 6:00:00 AM | 100% | 1 | 180ms |
| 8/18/2026, 7:00:00 AM | 100% | 1 | 177ms |
| 8/18/2026, 8:00:00 AM | 100% | 1 | 182ms |
| 8/18/2026, 9:00:00 AM | 100% | 1 | 178ms |
| 8/18/2026, 10:00:00 AM | 100% | 1 | 182ms |
| 8/18/2026, 12:00:00 PM | 100% | 1 | 177ms |
| 8/18/2026, 1:00:00 PM | 100% | 1 | 182ms |
| 8/18/2026, 2:00:00 PM | 100% | 1 | 174ms |
| 8/18/2026, 3:00:00 PM | 100% | 1 | 185ms |
| 8/18/2026, 4:00:00 PM | 100% | 1 | 176ms |
| 8/18/2026, 5:00:00 PM | 100% | 1 | 178ms |
| 8/18/2026, 7:00:00 PM | 100% | 1 | 178ms |
| 8/18/2026, 8:00:00 PM | 100% | 1 | 179ms |
| 8/18/2026, 9:00:00 PM | 100% | 1 | 175ms |
| 8/18/2026, 10:00:00 PM | 100% | 1 | 193ms |
| 8/18/2026, 11:00:00 PM | 100% | 1 | 185ms |
| 8/19/2026, 12:00:00 AM | 100% | 1 | 179ms |
| 8/19/2026, 2:00:00 AM | 100% | 1 | 177ms |
| 8/19/2026, 3:00:00 AM | 100% | 1 | 180ms |
| 8/19/2026, 4:00:00 AM | 100% | 1 | 190ms |
| 8/19/2026, 5:00:00 AM | 100% | 1 | 191ms |
| 8/19/2026, 6:00:00 AM | 100% | 1 | 180ms |
| 8/19/2026, 7:00:00 AM | 100% | 1 | 188ms |
| 8/19/2026, 9:00:00 AM | 100% | 1 | 176ms |
| 8/19/2026, 10:00:00 AM | 100% | 1 | 173ms |
| 8/19/2026, 11:00:00 AM | 100% | 1 | 188ms |
| 8/19/2026, 12:00:00 PM | 100% | 1 | 178ms |
| 8/19/2026, 1:00:00 PM | 100% | 1 | 175ms |
| 8/19/2026, 2:00:00 PM | 100% | 1 | 182ms |
| 8/19/2026, 4:00:00 PM | 100% | 1 | 185ms |
| 8/19/2026, 5:00:00 PM | 100% | 1 | 191ms |
| 8/19/2026, 6:00:00 PM | 100% | 1 | 186ms |
| 8/19/2026, 7:00:00 PM | 100% | 1 | 189ms |
| 8/19/2026, 8:00:00 PM | 100% | 1 | 179ms |
| 8/19/2026, 9:00:00 PM | 100% | 1 | 192ms |
| 8/19/2026, 10:00:00 PM | 100% | 1 | 188ms |
| 8/20/2026, 12:00:00 AM | 100% | 1 | 189ms |
| 8/20/2026, 1:00:00 AM | 100% | 1 | 184ms |
| 8/20/2026, 2:00:00 AM | 100% | 1 | 189ms |
| 8/20/2026, 3:00:00 AM | 100% | 1 | 185ms |
| 8/20/2026, 4:00:00 AM | 100% | 1 | 187ms |
| 8/20/2026, 5:00:00 AM | 100% | 1 | 185ms |
| 8/20/2026, 7:00:00 AM | 100% | 1 | 186ms |
| 8/20/2026, 8:00:00 AM | 100% | 1 | 198ms |
| 8/20/2026, 9:00:00 AM | 100% | 1 | 192ms |
| 8/20/2026, 10:00:00 AM | 100% | 1 | 186ms |
| 8/20/2026, 11:00:00 AM | 100% | 1 | 191ms |
| 8/20/2026, 12:00:00 PM | 100% | 1 | 182ms |
| 8/20/2026, 2:00:00 PM | 100% | 1 | 193ms |
| 8/20/2026, 3:00:00 PM | 100% | 1 | 188ms |
| 8/20/2026, 4:00:00 PM | 100% | 1 | 192ms |
| 8/20/2026, 5:00:00 PM | 100% | 1 | 202ms |
| 8/20/2026, 6:00:00 PM | 100% | 1 | 191ms |
- Availability
- 100
- Latency
- 100
- Security
- 100
- Transparency
- 67
- Activity
- 4
How often it was reachable when we probed it (weight 35%).
How quickly it answers when it is up — fast scores high (weight 20%).
Whether it serves over working TLS / https (weight 15%).
Whether the operator disclosed what it does — description, schema, identity (weight 15%).
Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).
Confidence 100% — how much probe evidence backs this score. A thin history is flagged, not hidden.
See the scoring methodology for exactly how each number is computed.
Payment
- Currencies
- USDC
- Networks
- base, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
- Facilitator
- unknown
- SDK
- unknown
Operator
- Company
- inferred — unknown
- Jurisdiction
- —
- Registrar
- Register SPA
- Domain registered
- 2026-06-15
- Hosting network
- FR-OVH-20150522
- Hosting country
- FR
Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.
On-chain activity (base)
Payments per day
last payment 8/17/2026Data table
| Day | Payments | Volume (USD) | Paying wallets |
|---|---|---|---|
| 7/22/2026 | 26 | 0.28 | 2 |
| 7/23/2026 | 15 | 0.17 | 2 |
| 7/24/2026 | 23 | 0.26 | 2 |
| 7/25/2026 | 14 | 0.15 | 2 |
| 7/26/2026 | 14 | 0.15 | 2 |
| 7/27/2026 | 18 | 0.19 | 3 |
| 7/28/2026 | 6 | 0.06 | 1 |
| 7/29/2026 | 6 | 0.06 | 1 |
| 7/30/2026 | 6 | 0.06 | 1 |
| 7/31/2026 | 485 | 7.08 | 8 |
| 8/1/2026 | 6 | 0.06 | 1 |
| 8/2/2026 | 6 | 0.06 | 1 |
| 8/3/2026 | 6 | 0.06 | 1 |
| 8/4/2026 | 6 | 0.06 | 1 |
| 8/5/2026 | 6 | 0.06 | 1 |
| 8/6/2026 | 6 | 0.06 | 1 |
| 8/7/2026 | 6 | 0.06 | 1 |
| 8/8/2026 | 6 | 0.06 | 1 |
| 8/9/2026 | 8 | 0.08 | 3 |
| 8/10/2026 | 8 | 0.08 | 2 |
| 8/11/2026 | 6 | 0.06 | 1 |
| 8/12/2026 | 7 | 0.07 | 2 |
| 8/13/2026 | 6 | 0.06 | 1 |
| 8/14/2026 | 7 | 0.1 | 3 |
| 8/17/2026 | 33 | 1.24 | 1 |
This payout wallet is shared: figures cover all 41 endpoints paid at it, since payments cannot be attributed to one of them. Only payments settled on chains and facilitators we index.
Linked by wallet — likely same operator
On-chain agent identity and the x402 endpoint that shares its settlement wallet.
Response schema
{
"properties": {
"data": {
"properties": {
"article": {
"type": "string"
},
"celex": {
"type": "string"
},
"changed": {
"description": "Whether the consolidated text differs between the two dates (false when the same version is in force at both). When false the diff is returned empty — no segments, empty unified patch, zero counters: the article's text itself is sold by /legal/article?date=",
"type": "boolean"
},
"code": {
"type": "string"
},
"coverage_window": {
"description": "Period over which this text or act is actually queryable: from (inclusive) and to (exclusive, null when open) — how far back a monitoring agent can diff without paying for a call that will fail",
"type": "object"
},
"diff": {
"properties": {
"added": {
"type": "integer"
},
"changed": {
"type": "boolean"
},
"removed": {
"type": "integer"
},
"segments": {
"items": {
"properties": {
"op": {
"description": "Word-level diff operation for this segment: 'equal', 'insert' (present only at 'to') or 'delete' (present only at 'from')",
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"op",
"text"
],
"type": "object"
},
"type": "array"
},
"unified": {
"type": "string"
}
},
"required": [
"added",
"changed",
"removed",
"segments",
"unified"
],
"type": "object"
},
"differs": {
"description": "changed OR status_changed OR in_force_changed — the single field to filter on to monitor a citation: it catches a rewritten text, a repeal that left the wording untouched, and a repeal that left the status untouched too",
"type": "boolean"
},
"eli": {
"type": "string"
},
"from": {
"type": "string"
},
"from_in_force": {
"type": "boolean"
},
"from_version": {
"description": "Version in force at the 'from' date, or null if none (e.g. before the first version) — the diff then shows a full insertion. 'date_fin' closes the version (absent while it is still open) and 'continuity' tells whether the article number kept designating the same text across the change ('same_article') or was renumbered ('renumbered') - French law only",
"properties": {
"continuity": {
"type": "string"
},
"date_debut": {
"type": "string"
},
"date_fin": {
"type": "string"
},
"etat": {
"type": "string"
},
"version_id": {
"type": "string"
}
},
"required": [
"date_debut",
"etat",
"version_id"
],
"type": [
"object",
"null"
]
},
"in_force_changed": {
"description": "Whether the text stopped (or started) being the applicable law between the two dates — the only flag that fires on a French-style repeal, where both dates resolve to the same version and both 'changed' and 'status_changed' stay false",
"type": "boolean"
},
"label": {
"type": "string"
},
"renumbering_suspected": {
"description": "Whether a renumbering break falls between the two dates: the article number stopped designating one text and started designating another, so the diff describes a change that never happened. French Civil Code art. 1240 from 2000-01-01 returns a perfectly credible diff between 'payment made in good faith' (the old art. 1240) and tort liability (the old art. 1382, renumbered 1240 in 2016). The diff itself is unchanged and this flag stays out of 'differs' — it is a warning about how to read the diff, not one more change event. Always false for EU law, whose consolidations keep their numbering",
"type": "boolean"
},
"status_changed": {
"description": "Whether the legal status (etat) differs between the two dates — true on a repeal that keeps the last known wording, where 'changed' stays false, and whenever only one of the two dates has a version at all",
"type": "boolean"
},
"to": {
"type": "string"
},
"to_in_force": {
"type": "boolean"
},
"to_version": {
"description": "Version retained at the 'to' date, or null if none (e.g. before the first version) — the diff then shows a full deletion. 'date_fin' closes the version (absent while it is still open) and 'continuity' tells whether the article number kept designating the same text across the change ('same_article') or was renumbered ('renumbered') - French law only",
"properties": {
"continuity": {
"type": "string"
},
"date_debut": {
"type": "string"
},
"date_fin": {
"type": "string"
},
"etat": {
"type": "string"
},
"version_id": {
"type": "string"
}
},
"required": [
"date_debut",
"etat",
"version_id"
],
"type": [
"object",
"null"
]
}
},
"required": [
"changed",
"diff",
"differs",
"from",
"from_in_force",
"from_version",
"in_force_changed",
"label",
"renumbering_suspected",
"status_changed",
"to",
"to_in_force",
"to_version"
],
"type": "object"
},
"provenance": {
"properties": {
"fetched_at": {
"type": "string"
},
"freshness": {
"properties": {
"as_of": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"required": [
"as_of",
"kind"
],
"type": "object"
},
"source": {
"type": "string"
}
},
"required": [
"fetched_at",
"freshness",
"source"
],
"type": "object"
}
},
"required": [
"data",
"provenance"
],
"type": "object"
}