561 Group Market

RFC 9651 Structured Field to Typed JSON

Parse native RFC 9651 Item/List/Dictionary into tagged JSON. Preserve all eight bare types: integral decimals, 15-digit epoch seconds, binary Base64, Unicode Display Strings, plus ordered parameters/maps and inner lists. RFC duplicate wire keys overwrite in place. Up to 16384 field bytes and 65536 JSON bytes. Malformed fields refused before payment; not legacy HTTP grammar.

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/http-field-to-json
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": [
      "kind",
      "text"
    ],
    "properties": {
      "kind": {
        "type": "string",
        "enum": [
          "item",
          "list",
          "dictionary"
        ]
      },
      "text": {
        "type": "string",
        "maxLength": 16384,
        "description": "ASCII structured field value, up to 16384 bytes. Select its defined container; not legacy Accept, Cookie or Cache-Control grammar."
      }
    }
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/data/http-field-to-json",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "kind": "dictionary",
    "text": "u=1, i, label=%\"caf%c3%a9\", expiry=@1735689600, ratio=1.0"
  }
}

Output

{
  "schema": {
    "oneOf": [
      {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "kind",
          "value"
        ],
        "properties": {
          "kind": {
            "const": "item"
          },
          "value": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "type",
              "value",
              "parameters"
            ],
            "properties": {
              "type": {
                "const": "item"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "value"
                    ],
                    "properties": {
                      "type": {
                        "const": "integer"
                      },
                      "value": {
                        "type": "integer",
                        "minimum": -999999999999999,
                        "maximum": 999999999999999
                      }
                    }
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "value"
                    ],
                    "properties": {
                      "type": {
                        "const": "decimal"
                      },
                      "value": {
                        "type": "number",
                        "minimum": -999999999999.999,
                        "maximum": 999999999999.999
                      }
                    }
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "value"
                    ],
                    "properties": {
                      "type": {
                        "const": "string"
                      },
                      "value": {
                        "type": "string",
                        "description": "Structured-field string or token"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "value"
                    ],
                    "properties": {
                      "type": {
                        "const": "token"
                      },
                      "value": {
                        "type": "string",
                        "description": "Structured-field string or token"
                      }
                    }
                  },
          
… (truncated; the full contract is in /v1/catalog)

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 '{"kind":"dictionary","text":"u=1, i, label=%\"caf%c3%a9\", expiry=@1735689600, ratio=1.0"}' --url 'https://market.561.group/v1/data/http-field-to-json'

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

Machine-readable