{"x402Version":2,"kind":"resource-server","name":"webref","description":"Web standards and time reference for AI agents: HTTP status codes with what the client should do, retry semantics, MIME types and content-type matching, request-method safety and idempotency, plus deadline arithmetic - time until a moment, weekday and business-day checks, duration conversion and Unix timestamps. Pay per call in USDC on Base via x402 or USDC on Tempo via MPP. No signup, no API key, no KYC.","resources":[{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/http_status","description":"Look up an HTTP status code: what it means, what the client must do, whether it is retryable, whether it is safe to replay, the defining RFC and the common causes.","mimeType":"application/json","serviceName":"webref http_status","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"code":{"def":{"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"detail":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"summary":"summary","full":"full","decision":"decision"}},"type":"enum","enum":{"summary":"summary","full":"full","decision":"decision"},"options":["summary","full","decision"]},"defaultValue":"full"},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","code":{"def":{"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"detail":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"summary":"summary","full":"full","decision":"decision"}},"type":"enum","enum":{"summary":"summary","full":"full","decision":"decision"},"options":["summary","full","decision"]},"defaultValue":"full"},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref http_status","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/http_status","method":"POST","description":"Look up an HTTP status code: what it means, what the client must do, whether it is retryable, whether it is safe to replay, the defining RFC and the common causes."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/status_for_situation","description":"Find the HTTP status code that matches a described situation, when the code is not known in advance — for example 'the caller is being rate limited' or 'upstream returned garbage'.","mimeType":"application/json","serviceName":"webref status_for_situation","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"situation":{"def":{"type":"string"},"type":"string"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","situation":{"def":{"type":"string"},"type":"string"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref status_for_situation","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/status_for_situation","method":"POST","description":"Find the HTTP status code that matches a described situation, when the code is not known in advance — for example 'the caller is being rate limited' or 'upstream returned garbage'."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/retry_advice","description":"Decide how a client should react to a status code: retry with backoff, check the outcome before retrying, or do not retry. Includes a suggested backoff schedule.","mimeType":"application/json","serviceName":"webref retry_advice","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"code":{"def":{"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"idempotent":{"def":{"type":"default","innerType":{"def":{"type":"boolean"},"type":"boolean"},"defaultValue":true},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","code":{"def":{"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"type":"union","options":[{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},{"def":{"type":"string"},"type":"string"}]},"idempotent":{"def":{"type":"default","innerType":{"def":{"type":"boolean"},"type":"boolean"},"defaultValue":true},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref retry_advice","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/retry_advice","method":"POST","description":"Decide how a client should react to a status code: retry with backoff, check the outcome before retrying, or do not retry. Includes a suggested backoff schedule."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/mime_type","description":"Look up a MIME type by full type or by file extension: the top-level type, what it is for, and the usual file extension.","mimeType":"application/json","serviceName":"webref mime_type","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"extension":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"extension":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref mime_type","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/mime_type","method":"POST","description":"Look up a MIME type by full type or by file extension: the top-level type, what it is for, and the usual file extension."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/list_mime_types","description":"List or search MIME types by top-level type or by keyword, for example image types or anything to do with calendars.","mimeType":"application/json","serviceName":"webref list_mime_types","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"query":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"topLevel":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},"defaultValue":50},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","query":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"topLevel":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"limit":{"def":{"type":"default","innerType":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},"defaultValue":50},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref list_mime_types","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/list_mime_types","method":"POST","description":"List or search MIME types by top-level type or by keyword, for example image types or anything to do with calendars."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/content_type_advice","description":"Check whether a Content-Type header matches what an endpoint kind expects, and say what to send instead when it does not.","mimeType":"application/json","serviceName":"webref content_type_advice","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"contentType":{"def":{"type":"string"},"type":"string"},"endpointKind":{"def":{"type":"enum","entries":{"json":"json","form":"form","multipart":"multipart","xml":"xml","text":"text","binary":"binary"}},"type":"enum","enum":{"json":"json","form":"form","multipart":"multipart","xml":"xml","text":"text","binary":"binary"},"options":["json","form","multipart","xml","text","binary"]}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","contentType":{"def":{"type":"string"},"type":"string"},"endpointKind":{"def":{"type":"enum","entries":{"json":"json","form":"form","multipart":"multipart","xml":"xml","text":"text","binary":"binary"}},"type":"enum","enum":{"json":"json","form":"form","multipart":"multipart","xml":"xml","text":"text","binary":"binary"},"options":["json","form","multipart","xml","text","binary"]}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref content_type_advice","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/content_type_advice","method":"POST","description":"Check whether a Content-Type header matches what an endpoint kind expects, and say what to send instead when it does not."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/web/http_method","description":"Describe an HTTP method: whether it is safe, whether it is idempotent, whether it carries a body, and what it is for.","mimeType":"application/json","serviceName":"webref http_method","tags":["http","status","retry","mime-type","rfc"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"method":{"def":{"type":"string"},"type":"string"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","method":{"def":{"type":"string"},"type":"string"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref http_method","tags":["http","status","retry","mime-type","rfc"],"url":"https://webref.johnaio281.workers.dev/api/web/http_method","method":"POST","description":"Describe an HTTP method: whether it is safe, whether it is idempotent, whether it carries a body, and what it is for."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/time_until","description":"How much time is between two instants: the direction, the total in every unit, and a day/hour/minute/second breakdown. Use it to compute a retry delay, a rate-limit reset, or whether a deadline has passed.","mimeType":"application/json","serviceName":"webref time_until","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"from":{"def":{"type":"string"},"type":"string"},"to":{"def":{"type":"string"},"type":"string"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","from":{"def":{"type":"string"},"type":"string"},"to":{"def":{"type":"string"},"type":"string"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref time_until","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/time_until","method":"POST","description":"How much time is between two instants: the direction, the total in every unit, and a day/hour/minute/second breakdown. Use it to compute a retry delay, a rate-limit reset, or whether a deadline has passed."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/describe_instant","description":"Describe an instant: its date, weekday and time in UTC and in Tehran local time (UTC+03:30), plus the Unix timestamp. Use it when a response carries a timestamp and the local date matters.","mimeType":"application/json","serviceName":"webref describe_instant","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"at":{"def":{"type":"string"},"type":"string"},"timezone":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"utc":"utc","tehran":"tehran"}},"type":"enum","enum":{"utc":"utc","tehran":"tehran"},"options":["utc","tehran"]},"defaultValue":"utc"},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","at":{"def":{"type":"string"},"type":"string"},"timezone":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"utc":"utc","tehran":"tehran"}},"type":"enum","enum":{"utc":"utc","tehran":"tehran"},"options":["utc","tehran"]},"defaultValue":"utc"},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref describe_instant","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/describe_instant","method":"POST","description":"Describe an instant: its date, weekday and time in UTC and in Tehran local time (UTC+03:30), plus the Unix timestamp. Use it when a response carries a timestamp and the local date matters."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/weekday_of","description":"Which day of the week a date falls on, and whether it is a business day. Use it before scheduling work or setting a deadline that lands on a weekend.","mimeType":"application/json","serviceName":"webref weekday_of","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"date":{"def":{"type":"string"},"type":"string"},"weekStartsOn":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"sunday":"sunday","monday":"monday"}},"type":"enum","enum":{"sunday":"sunday","monday":"monday"},"options":["sunday","monday"]},"defaultValue":"sunday"},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","date":{"def":{"type":"string"},"type":"string"},"weekStartsOn":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"sunday":"sunday","monday":"monday"}},"type":"enum","enum":{"sunday":"sunday","monday":"monday"},"options":["sunday","monday"]},"defaultValue":"sunday"},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref weekday_of","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/weekday_of","method":"POST","description":"Which day of the week a date falls on, and whether it is a business day. Use it before scheduling work or setting a deadline that lands on a weekend."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/business_days_between","description":"Count the business days between two dates, excluding weekends. Use it to turn a calendar deadline into a working-day deadline. Public holidays are not excluded, so the count is an upper bound.","mimeType":"application/json","serviceName":"webref business_days_between","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"from":{"def":{"type":"string"},"type":"string"},"to":{"def":{"type":"string"},"type":"string"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","from":{"def":{"type":"string"},"type":"string"},"to":{"def":{"type":"string"},"type":"string"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref business_days_between","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/business_days_between","method":"POST","description":"Count the business days between two dates, excluding weekends. Use it to turn a calendar deadline into a working-day deadline. Public holidays are not excluded, so the count is an upper bound."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/add_duration","description":"Add a duration to an instant and get the result, in UTC and in Tehran local time. Use it for a TTL, a lock expiry, or a token lifetime.","mimeType":"application/json","serviceName":"webref add_duration","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"at":{"def":{"type":"string"},"type":"string"},"amount":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},"unit":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"}},"type":"enum","enum":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"},"options":["milliseconds","seconds","minutes","hours","days","weeks"]},"defaultValue":"seconds"},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","at":{"def":{"type":"string"},"type":"string"},"amount":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},"unit":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"}},"type":"enum","enum":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"},"options":["milliseconds","seconds","minutes","hours","days","weeks"]},"defaultValue":"seconds"},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref add_duration","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/add_duration","method":"POST","description":"Add a duration to an instant and get the result, in UTC and in Tehran local time. Use it for a TTL, a lock expiry, or a token lifetime."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/convert_duration","description":"Convert a duration between units and get it in plain language. Use it to express a timeout in the unit the caller asked for, or to check whether a limit is seconds, minutes or milliseconds.","mimeType":"application/json","serviceName":"webref convert_duration","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"value":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},"from":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"}},"type":"enum","enum":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"},"options":["milliseconds","seconds","minutes","hours","days","weeks"]},"defaultValue":"seconds"},"type":"default"},"to":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"}},"type":"enum","enum":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"},"options":["milliseconds","seconds","minutes","hours","days","weeks"]},"defaultValue":"seconds"},"type":"default"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","value":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true},"from":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"}},"type":"enum","enum":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"},"options":["milliseconds","seconds","minutes","hours","days","weeks"]},"defaultValue":"seconds"},"type":"default"},"to":{"def":{"type":"default","innerType":{"def":{"type":"enum","entries":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"}},"type":"enum","enum":{"milliseconds":"milliseconds","seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","weeks":"weeks"},"options":["milliseconds","seconds","minutes","hours","days","weeks"]},"defaultValue":"seconds"},"type":"default"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref convert_duration","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/convert_duration","method":"POST","description":"Convert a duration between units and get it in plain language. Use it to express a timeout in the unit the caller asked for, or to check whether a limit is seconds, minutes or milliseconds."},{"resource":{"url":"https://webref.johnaio281.workers.dev/api/time/unix_time","description":"Convert between a date and a Unix timestamp, in either direction. Use it when a payload carries one and the other is needed.","mimeType":"application/json","serviceName":"webref unix_time","tags":["time","duration","unix","business-days","calendar"]},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","maxTimeoutSeconds":300,"extra":{"name":"USD Coin","version":"2"}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"date":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"timestamp":{"def":{"type":"optional","innerType":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true}},"type":"optional"}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}}},"extensionsGet":{"bazaar":{"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","date":{"def":{"type":"optional","innerType":{"def":{"type":"string"},"type":"string"}},"type":"optional"},"timestamp":{"def":{"type":"optional","innerType":{"def":{"type":"number","checks":[]},"type":"number","isFinite":true}},"type":"optional"}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}}},"serviceName":"webref unix_time","tags":["time","duration","unix","business-days","calendar"],"url":"https://webref.johnaio281.workers.dev/api/time/unix_time","method":"POST","description":"Convert between a date and a Unix timestamp, in either direction. Use it when a payload carries one and the other is needed."}],"attestation":{"type":"none"},"docs":"https://webref.johnaio281.workers.dev/","contact":"johnaio281@gmail.com","updated":"2026-10-21T00:00:00Z"}