561 Group Market

JSON Schema Instance Validation

Judge JSON values against native JSON Schema drafts 4, 6, 7, 2019-09 or 2020-12, including dynamic references and unevaluated values. Retain BASIC validity and instance/keyword locations. evaluated=false means compilation/graph failure, not invalid data. Explicit corpus only; no HTTP/file retrieval. Format annotation by default; assertion opt-in. Up to 65536 JSON bytes, 8192 nodes, depth 64, 16 references and 64 errors. Invalid data and schema diagnostics are paid results.

Price
from $0.0012 USDC per request (starting price; the 402 response quotes the exact amount for your input)
Network
Base mainnet, eip155:8453, settled in USDC through the Coinbase CDP facilitator
Method and URL
POST https://market.561.group/v1/data/json-schema-validate
Response type
application/json
Seller
Causeway Services (561 Group)

Input contract

Input that fails this contract is refused with a 4xx status before any payment is requested.

{
  "maxBytes": 102400,
  "bodySchema": {
    "type": "object",
    "additionalProperties": false,
    "required": [
      "schema",
      "value"
    ],
    "properties": {
      "schema": {
        "type": [
          "object",
          "boolean"
        ],
        "description": "JSON Schema document, evaluated by its declared supported dialect or the selected default."
      },
      "schemas": {
        "type": "array",
        "maxItems": 16,
        "items": {
          "type": "object"
        },
        "description": "Explicit reference documents with native $id (or id for draft 4). No HTTP or file retrieval."
      },
      "dialect": {
        "type": "string",
        "enum": [
          "4",
          "6",
          "7",
          "2019-09",
          "2020-12"
        ],
        "default": "2020-12"
      },
      "baseUri": {
        "type": "string",
        "maxLength": 2048,
        "description": "Optional absolute HTTP(S) or URN retrieval identifier; resolves relative schema identifiers/references. No fetching."
      },
      "assertFormats": {
        "type": "boolean",
        "default": false,
        "description": "Format is annotation by default; true explicitly enables native format assertions."
      },
      "value": {
        "description": "The exact JSON value to evaluate; no coercion or defaults."
      }
    }
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/data/json-schema-validate",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "required": [
        "id",
        "tags"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        }
      },
      "additionalProperties": false
    },
    "value": {
      "id": "offer-1",
      "tags": [
        "x402",
        "data"
      ]
    }
  }
}

Output

{
  "schema": {
    "type": "object",
    "required": [
      "evaluated",
      "formatAssertion"
    ],
    "properties": {
      "evaluated": {
        "type": "boolean"
      },
      "formatAssertion": {
        "type": "boolean"
      },
      "valid": {
        "type": "boolean"
      },
      "errors": {
        "type": "array",
        "maxItems": 64,
        "items": {
          "type": "object"
        }
      },
      "errorsTruncated": {
        "type": "boolean"
      },
      "diagnostic": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "message": {
            "type": "string",
            "maxLength": 2048
          },
          "output": {
            "type": "object"
          }
        }
      }
    }
  },
  "example": {
    "evaluated": true,
    "valid": true,
    "errors": [],
    "errorsTruncated": false,
    "formatAssertion": false
  }
}

How to buy with x402

  1. Send the request without payment. The server answers 402 Payment Required with a base64 JSON PAYMENT-REQUIRED header holding the amount, asset, network and payee.
  2. Have your wallet sign an EIP-3009 transferWithAuthorization for exactly those terms (an x402 client library does this for you).
  3. Repeat the identical request with the signed payload in the PAYMENT-SIGNATURE header.
  4. The server verifies, runs the operation, settles, and returns 200 with the result and a PAYMENT-RESPONSE header carrying the settlement receipt.

Read the price without paying

curl --include --request POST --header 'accept: application/json' --header 'content-type: application/json' --data-raw '{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["id","tags"],"properties":{"id":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"minItems":1}},"additionalProperties":false},"value":{"id":"offer-1","tags":["x402","data"]}}' --url 'https://market.561.group/v1/data/json-schema-validate'

This request authorizes nothing; it returns the live payment terms. Read the full explanation of x402.

Machine-readable