All workflows

JSON Change Set

Compare JSON snapshots and return only changed fields with hashes, exact counts and configurable ignored paths.

1 credit per call · $0.005 USDC with x402

Sample input

{
  "before": {
    "price": 20,
    "checked_at": "a"
  },
  "after": {
    "price": 25,
    "checked_at": "b"
  },
  "ignore_paths": [
    "/checked_at"
  ]
}

Worked sample output

{
  "ok": true,
  "mode": "json_change_set",
  "changed": true,
  "change_count": 1,
  "changes": [
    {
      "op": "replace",
      "path": "/price",
      "before": 20,
      "after": 25
    }
  ],
  "truncated": false,
  "before_sha256": "5adf9685dac0b888d682345e53c7a94c648cc0aff9ab907c49851470ca7d5fd9",
  "after_sha256": "0a2ae3be02b8ed73daa3b00ac7c2084f11ad0c73ff90f893150a3aa7102049b1",
  "ignored_paths": [
    "/checked_at"
  ],
  "limitations": [
    "Arrays compare by index. Changes are a report, not an executable JSON Patch."
  ]
}

Worked example using published sample data only. Own-data execution is paid.

Connect in curl

Set BOUNTY_API_KEY privately after your payment is verified. Change the retry key for each new logical request.

curl 'https://bounty-engineer-x402-prod.onrender.com/v1/prepaid/json-change-set' \
  -H "Authorization: Bearer $BOUNTY_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: workflow-request-001' \
  -H 'X-Max-Credits: 1' \
  --data '{"before":{"price":20,"checked_at":"a"},"after":{"price":25,"checked_at":"b"},"ignore_paths":["/checked_at"]}'

Connect in n8n

Download the inactive n8n template. Import it, configure the private Header Auth credential, inspect the sample and run it manually. A new execution creates a new billable request; there is no automatic schedule.

Use an HTTP POST to https://bounty-engineer-x402-prod.onrender.com/v1/prepaid/json-change-set. Send JSON and these headers; store the Bearer token as a private credential.

{
  "method": "POST",
  "headers": {
    "Authorization": "Bearer YOUR_PRIVATE_API_KEY",
    "Content-Type": "application/json",
    "Idempotency-Key": "UNIQUE_PER_LOGICAL_REQUEST",
    "X-Max-Credits": "1"
  },
  "body": {
    "before": {
      "price": 20,
      "checked_at": "a"
    },
    "after": {
      "price": 25,
      "checked_at": "b"
    },
    "ignore_paths": [
      "/checked_at"
    ]
  }
}

Reuse a retry key only for the same input. Failed execution returns reserved credits. Full integration and recovery guide · Machine-readable recipe