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
- Send the request without payment. The server answers
402 Payment Requiredwith a base64 JSONPAYMENT-REQUIREDheader holding the amount, asset, network and payee. - Have your wallet sign an EIP-3009
transferWithAuthorizationfor exactly those terms (an x402 client library does this for you). - Repeat the identical request with the signed payload in the
PAYMENT-SIGNATUREheader. - The server verifies, runs the operation, settles, and returns
200with the result and aPAYMENT-RESPONSEheader 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
- /.well-known/x402: x402 discovery document for every offer
- /v1/catalog: full catalog with contracts and examples
- /llms.txt: the market in llms.txt form
- services.561.group: Causeway Services