api.invoket.com

https://api.invoket.com/legal/diff

Shares 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).

64
reliability

Reliability & health

Uptime and response time from our own unpaid probes, plus the reliability score built from them.

Uptime

100.0% avg
0% 50% 100% Thu 4 PMSat 11 PMTue 6 AMThu 2 PM

Response time

p50 182ms · p95 193ms
0ms 100ms 200ms Thu 4 PMSat 11 PMTue 6 AMThu 2 PM
Data table
Reliability history per time bucket over the last 7 days (hourly).
Bucket Uptime Probes Response time
8/13/2026, 4:00:00 PM 100% 1 186ms
8/13/2026, 5:00:00 PM 100% 1 192ms
8/13/2026, 6:00:00 PM 100% 1 189ms
8/13/2026, 7:00:00 PM 100% 1 187ms
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
64
Composite reliability — the weighted average of the dimensions below, on a 0–100 scale.
Availability
100

How often it was reachable when we probed it (weight 35%).

Latency
100

How quickly it answers when it is up — fast scores high (weight 20%).

Security
100

Whether it serves over working TLS / https (weight 15%).

Transparency
67

Whether the operator disclosed what it does — description, schema, identity (weight 15%).

Activity
4

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)

736
payments (30d)
10.61
USD volume (30d)
13
paying wallets (30d)

Payments per day

last payment 8/17/2026
0 250 500 Jul 22Jul 30Aug 7Aug 17
Data table
Settled payments per day.
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"
}