561 Group Market

RFC 9110 HTTP-date to UTC JSON

Parse the three RFC 9110 HTTP-date formats and normalize to IMF-fixdate plus exact UTC fields. Strict ASCII case/spacing/GMT. Obsolete two-digit years require referenceUnixMilliseconds and use the rolling 50-year rule. Years1900–9999; validates calendar and weekday. Leap-second notation is retained with unixMilliseconds:null, without certifying historical insertion. No ambient clock/model/upstream. Bounded request/output below4096 UTF-8 bytes.

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-date-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": 26624,
  "bodySchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "date": {
        "type": "string",
        "maxLength": 33
      },
      "referenceUnixMilliseconds": {
        "type": "integer",
        "minimum": -2208988800000,
        "maximum": 253402300799999,
        "description": "Required for rfc850-date; caller reference time for the rolling 50-year rule."
      }
    },
    "required": [
      "date"
    ]
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/data/http-date-to-json",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "date": "Sun, 06 Nov 1994 08:49:37 GMT"
  }
}

Output

{
  "schema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "format": {
        "type": "string",
        "enum": [
          "IMF-fixdate",
          "rfc850-date",
          "asctime-date"
        ]
      },
      "year": {
        "type": "integer",
        "minimum": 1900,
        "maximum": 9999
      },
      "month": {
        "type": "integer",
        "minimum": 1,
        "maximum": 12
      },
      "day": {
        "type": "integer",
        "minimum": 1,
        "maximum": 31
      },
      "hour": {
        "type": "integer",
        "minimum": 0,
        "maximum": 23
      },
      "minute": {
        "type": "integer",
        "minimum": 0,
        "maximum": 59
      },
      "second": {
        "type": "integer",
        "minimum": 0,
        "maximum": 60
      },
      "weekday": {
        "type": "string",
        "enum": [
          "Sun",
          "Mon",
          "Tue",
          "Wed",
          "Thu",
          "Fri",
          "Sat"
        ]
      },
      "httpDate": {
        "type": "string",
        "minLength": 29,
        "maxLength": 29
      },
      "leapSecond": {
        "type": "boolean"
      },
      "unixMilliseconds": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Null for leap-second notation: JavaScript/POSIX milliseconds cannot uniquely represent :60."
      }
    },
    "required": [
      "format",
      "year",
      "month",
      "day",
      "hour",
      "minute",
      "second",
      "weekday",
      "httpDate",
      "leapSecond",
      "unixMilliseconds"
    ]
  },
  "example": {
    "format": "IMF-fixdate",
    "year": 1994,
    "month": 11,
    "day": 6,
    "hour": 8,
    "minute": 49,
    "second": 37,
    "weekday": "Sun",
    "httpDate": "Sun, 06 Nov 1994 08:49:37 GMT",
    "leapSecond": false,
    "unixMilliseconds": 784111777000
  }
}

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 '{"date":"Sun, 06 Nov 1994 08:49:37 GMT"}' --url 'https://market.561.group/v1/data/http-date-to-json'

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

Machine-readable