Data Transformation & Quality · x402 V2

Structured Diff

Use this service when you need this capability: computes a deterministic bounded structural difference between two JSON values using escaped JSON Pointer paths and index-based array comparison.

Price and endpoint

LivePOSTBase USDC

0.01 USDC per call

x402 V2 exact payment on Base mainnet (eip155:8453) using USDC. The HTTP 402 challenge confirms the exact requirements before an authorized payment.

POST https://signalharness.ai/api/agent/services/structured_diff/invoke

Purpose

Computes a deterministic bounded structural difference between two JSON values using escaped JSON Pointer paths and index-based array comparison.

This service applies bounded processing to the supplied input. Review its schema, result fields, and limits for the exact supported capability.

Inputs

Request fields and validation limits
FieldTypeRequiredLimits
beforeobject or array or string or number or boolean or nullRequiredSee the complete OpenAPI schema.
afterobject or array or string or number or boolean or nullRequiredSee the complete OpenAPI schema.

Example request body

{
  "before": {
    "version": 1
  },
  "after": {
    "version": 2
  }
}
View complete input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "minProperties": 2,
  "maxProperties": 2,
  "required": [
    "before",
    "after"
  ],
  "properties": {
    "before": {
      "type": [
        "object",
        "array",
        "string",
        "number",
        "boolean",
        "null"
      ]
    },
    "after": {
      "type": [
        "object",
        "array",
        "string",
        "number",
        "boolean",
        "null"
      ]
    }
  }
}

Realistic output shape

Illustrative output from the canonical adapter fixture and schema. It is not a completed paid execution or a current live observation.

{
  "added": [
    {
      "path": "example",
      "value": {}
    }
  ],
  "removed": [
    {
      "path": "example",
      "value": {}
    }
  ],
  "changed": [
    {
      "path": "example",
      "before": {},
      "after": {}
    }
  ],
  "unchangedCount": 0,
  "summary": {
    "added": 0,
    "removed": 0,
    "changed": 0,
    "total": 0
  }
}
View complete output schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "minProperties": 5,
  "maxProperties": 5,
  "required": [
    "added",
    "removed",
    "changed",
    "unchangedCount",
    "summary"
  ],
  "properties": {
    "added": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 2,
        "maxProperties": 2,
        "required": [
          "path",
          "value"
        ],
        "properties": {
          "path": {
            "type": "string",
            "minLength": 0,
            "maxLength": 2048
          },
          "value": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ]
          }
        }
      }
    },
    "removed": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 2,
        "maxProperties": 2,
        "required": [
          "path",
          "value"
        ],
        "properties": {
          "path": {
            "type": "string",
            "minLength": 0,
            "maxLength": 2048
          },
          "value": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ]
          }
        }
      }
    },
    "changed": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 3,
        "maxProperties": 3,
        "required": [
          "path",
          "before",
          "after"
        ],
        "properties": {
          "path": {
            "type": "string",
            "minLength": 0,
            "maxLength": 2048
          },
          "before": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ]
          },
          "after": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ]
          }
        }
      }
    },
    "unchangedCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 8192
    },
    "summary": {
      "type": "object",
      "additionalProperties": false,
      "minProperties": 4,
      "maxProperties": 4,
      "required": [
        "added",
        "removed",
        "changed",
        "total"
      ],
      "properties": {
        "added": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2048
        },
        "removed": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2048
        },
        "changed": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2048
        },
        "total": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2048
        }
      }
    }
  }
}

Execution limits

  • MaxInputBytes: 262144
  • MaxOutputBytes: 1048576
  • MaxConcurrentExecutions: 4
  • MaxArtifacts: 0
  • MaxArtifactBytes: 0
  • RateLimitPerMinute: 60

Timeout: 3000 ms. Full schemas are in OpenAPI.

Copyable unpaid request

This schema-valid request returns the canonical HTTP 402 challenge without executing the service. A payment-capable client validates the challenge, signs only with prior authority and budget, and retries the identical body.

curl -i -X POST https://signalharness.ai/api/agent/services/structured_diff/invoke \
  -H "Content-Type: application/json" \
  --data '{"before":{"version":1},"after":{"version":2}}'

Continue with the paid-call walkthrough →