FETCH402
← Protocol index

Resource / 164

healthy

2s.

List the official holidays for a country and year, with exact observed dates including substitute days (e.g. a Saturday July 4th observed on Friday). Query: country (ISO 3166-1 alpha-2, 200+ supported), year, optional region (subdivision code like CA for US-California or BY for DE-Bavaria), optional types filter (public, bank, school, optional, observance — comma-separated), optional lang (ISO 639-1) for localized names. Returns one item per holiday: { date (YYYY-MM-DD), name, type, substitute, rule }. Dates are computed from maintained per-country rules — including movable feasts and lunar-calendar holidays — so they stay correct year over year. Use for scheduling, delivery estimates, payment terms, and SLA math.

Eligibility
probeable
Failures
0
Last quote
2026-08-12 22:00:00 UTC
Last probe
2026-08-12 22:00:00 UTC
Payment requirements / accepts[] 2 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 2500 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5
active solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp exact 2500 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn

All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.

Probe evidence 1 recent
healthy 2026-08-12 22:00:00 UTC GET · HTTP 402 · 34ms · accepts 2 · base 1 ok
Request
GET https://2s.io/api/calendar/holidays
Robots
allow
Note
http_402;accepts=2;base=1
Accepts fingerprint
6fcb2e53e8049ab29748ddd9a2e9ed532a49654f11ec569f4e7b9fb89b260a10

Accepts snapshot

[
  {
    "amount": "2500",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 60,
    "network": "eip155:8453",
    "payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
    "paymentFlow": null,
    "raw": {
      "amount": "2500",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "max_timeout_seconds": 60,
      "network": "eip155:8453",
      "payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
      "pay_to": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
      "scheme": "exact"
    },
    "scheme": "exact"
  },
  {
    "amount": "2500",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "assetTransferMethod": null,
    "extra": {
      "feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
      "name": "USDC",
      "version": "1"
    },
    "maxTimeoutSeconds": 60,
    "network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
    "payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
    "paymentFlow": null,
    "raw": {
      "amount": "2500",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
        "name": "USDC",
        "version": "1"
      },
      "maxTimeoutSeconds": 60,
      "max_timeout_seconds": 60,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
      "pay_to": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "2500",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
      "scheme": "exact"
    },
    {
      "amount": "2500",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
        "name": "USDC",
        "version": "1"
      },
      "maxTimeoutSeconds": 60,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
      "scheme": "exact"
    }
  ],
  "error": "PAYMENT-SIGNATURE required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "country": "US",
            "types": "public",
            "year": "2026"
          },
          "type": "http"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "properties": {
              "method": {
                "const": "GET"
              },
              "queryParams": {
                "properties": {
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, JP.",
                    "type": "string"
                  },
                  "lang": {
                    "description": "Optional ISO 639-1 language for holiday names.",
                    "type": "string"
                  },
                  "region": {
                    "description": "Optional subdivision code, e.g. CA (US-California), BY (DE-Bavaria).",
                    "type": "string"
                  },
                  "types": {
                    "description": "Optional comma-separated filter: public, bank, school, optional, observance.",
                    "type": "string"
                  },
                  "year": {
                    "description": "Calendar year, e.g. 2026.",
                    "type": "string"
                  }
                },
                "required": [
                  "country",
                  "year"
                ]
              },
              "type": {
                "const": "http"
              }
            },
            "required": [
              "type",
              "method",
              "queryParams"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "List the official holidays for a country and year, with exact observed dates including substitute days (e.g. a Saturday July 4th observed on Friday). Query: country (ISO 3166-1 alpha-2, 200+ supported), year, optional region (subdivision code like CA for US-California or BY for DE-Bavaria), optional types filter (public, bank, school, optional, observance — comma-separated), optional lang (ISO 639-1) for localized names. Returns one item per holiday: { date (YYYY-MM-DD), name, type, substitute, rule }. Dates are computed from maintained per-country rules — including movable feasts and lunar-calendar holidays — so they stay correct year over year. Use for scheduling, delivery estimates, payment terms, and SLA math.",
    "iconUrl": "https://2s.io/icon-512.png",
    "mimeType": "application/json",
    "serviceName": "2s",
    "tags": [
      "public-records",
      "identifiers",
      "ai-agents",
      "us-gov-data",
      "x402",
      "upto-billing",
      "ai-gateway",
      "agent-infrastructure"
    ],
    "url": "https://2s.io/api/calendar/holidays"
  },
  "x402Version": 2
}

Response headers

{
  "access-control-allow-headers": "Authorization, Content-Type",
  "access-control-allow-methods": "GET, POST, OPTIONS",
  "access-control-allow-origin": "*",
  "access-control-max-age": "86400",
  "age": "0",
  "cache-control": "public, max-age=0, must-revalidate",
  "content-security-policy": "default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'",
  "content-type": "application/json",
  "date": "Wed, 12 Aug 2026 22:00:00 GMT",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MmI2RDQ5ODhEYjQ3MjNFNjkwOERiODZBYjJiOGRGQmM1MUZDMzJDNSIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiVFc2bnRhR3p2ajYzWmdQanN6ZDRGQ0dtVlRHZnp2MU1BWVpialljeVdobiIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTREMiLCJ2ZXJzaW9uIjoiMSIsImZlZVBheWVyIjoiSGMzc2RFQXNDR1FjcGdmaXZ5d29nOXV3dGs4Z1VCVVpnc3hkTUUxRUp5ODgifX1dLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovLzJzLmlvL2FwaS9jYWxlbmRhci9ob2xpZGF5cyIsImRlc2NyaXB0aW9uIjoiTGlzdCB0aGUgb2ZmaWNpYWwgaG9saWRheXMgZm9yIGEgY291bnRyeSBhbmQgeWVhciwgd2l0aCBleGFjdCBvYnNlcnZlZCBkYXRlcyBpbmNsdWRpbmcgc3Vic3RpdHV0ZSBkYXlzIChlLmcuIGEgU2F0dXJkYXkgSnVseSA0dGggb2JzZXJ2ZWQgb24gRnJpZGF5KS4gUXVlcnk6IGNvdW50cnkgKElTTyAzMTY2LTEgYWxwaGEtMiwgMjAwKyBzdXBwb3J0ZWQpLCB5ZWFyLCBvcHRpb25hbCByZWdpb24gKHN1YmRpdmlzaW9uIGNvZGUgbGlrZSBDQSBmb3IgVVMtQ2FsaWZvcm5pYSBvciBCWSBmb3IgREUtQmF2YXJpYSksIG9wdGlvbmFsIHR5cGVzIGZpbHRlciAocHVibGljLCBiYW5rLCBzY2hvb2wsIG9wdGlvbmFsLCBvYnNlcnZhbmNlIOKAlCBjb21tYS1zZXBhcmF0ZWQpLCBvcHRpb25hbCBsYW5nIChJU08gNjM5LTEpIGZvciBsb2NhbGl6ZWQgbmFtZXMuIFJldHVybnMgb25lIGl0ZW0gcGVyIGhvbGlkYXk6IHsgZGF0ZSAoWVlZWS1NTS1ERCksIG5hbWUsIHR5cGUsIHN1YnN0aXR1dGUsIHJ1bGUgfS4gRGF0ZXMgYXJlIGNvbXB1dGVkIGZyb20gbWFpbnRhaW5lZCBwZXItY291bnRyeSBydWxlcyDigJQgaW5jbHVkaW5nIG1vdmFibGUgZmVhc3RzIGFuZCBsdW5hci1jYWxlbmRhciBob2xpZGF5cyDigJQgc28gdGhleSBzdGF5IGNvcnJlY3QgeWVhciBvdmVyIHllYXIuIFVzZSBmb3Igc2NoZWR1bGluZywgZGVsaXZlcnkgZXN0aW1hdGVzLCBwYXltZW50IHRlcm1zLCBhbmQgU0xBIG1hdGguIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiIycyIsImljb25VcmwiOiJodHRwczovLzJzLmlvL2ljb24tNTEyLnBuZyIsInRhZ3MiOlsicHVibGljLXJlY29yZHMiLCJpZGVudGlmaWVycyIsImFpLWFnZW50cyIsInVzLWdvdi1kYXRhIiwieDQwMiIsInVwdG8tYmlsbGluZyIsImFpLWdhdGV3YXkiLCJhZ2VudC1pbmZyYXN0cnVjdHVyZSJdfSwiZXJyb3IiOiJQQVlNRU5ULVNJR05BVFVSRSByZXF1aXJlZCIsImV4dGVuc2lvbnMiOnsiYmF6YWFyIjp7ImluZm8iOnsiaW5wdXQiOnsidHlwZSI6Imh0dHAiLCJtZXRob2QiOiJHRVQiLCJxdWVyeVBhcmFtcyI6eyJjb3VudHJ5IjoiVVMiLCJ5ZWFyIjoiMjAyNiIsInR5cGVzIjoicHVibGljIn19fSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImlucHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsiY29uc3QiOiJodHRwIn0sIm1ldGhvZCI6eyJjb25zdCI6IkdFVCJ9LCJxdWVyeVBhcmFtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvdW50cnkiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiSVNPIDMxNjYtMSBhbHBoYS0yIGNvdW50cnkgY29kZSwgZS5nLiBVUywgREUsIEpQLiJ9LCJ5ZWFyIjp7InR5cGUiOiJzdHJpbmciLCJkZXNjcmlwdGlvbiI6IkNhbGVuZGFyIHllYXIsIGUuZy4gMjAyNi4ifSwicmVnaW9uIjp7InR5cGUiOiJzdHJpbmciLCJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIHN1YmRpdmlzaW9uIGNvZGUsIGUuZy4gQ0EgKFVTLUNhbGlmb3JuaWEpLCBCWSAoREUtQmF2YXJpYSkuIn0sInR5cGVzIjp7InR5cGUiOiJzdHJpbmciLCJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGNvbW1hLXNlcGFyYXRlZCBmaWx0ZXI6IHB1YmxpYywgYmFuaywgc2Nob29sLCBvcHRpb25hbCwgb2JzZXJ2YW5jZS4ifSwibGFuZyI6eyJ0eXBlIjoic3RyaW5nIiwiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBJU08gNjM5LTEgbGFuZ3VhZ2UgZm9yIGhvbGlkYXkgbmFtZXMuIn19LCJyZXF1aXJlZCI6WyJjb3VudHJ5IiwieWVhciJdfX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiLCJxdWVyeVBhcmFtcyJdfX0sInJlcXVpcmVkIjpbImlucHV0Il19fX19",
  "permissions-policy": "geolocation=(), camera=(), microphone=()",
  "referrer-policy": "no-referrer",
  "server": "Vercel",
  "strict-transport-security": "max-age=63072000; includeSubDomains; preload",
  "transfer-encoding": "chunked",
  "x-content-type-options": "nosniff",
  "x-frame-options": "DENY",
  "x-matched-path": "/api/calendar/holidays",
  "x-payment-requirements": "x402",
  "x-vercel-cache": "MISS",
  "x-vercel-id": "iad1::iad1::c72gt-1786572000419-a05cf4c380de"
}

Response body

{
  "accepts": [
    {
      "amount": "2500",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
      "scheme": "exact"
    },
    {
      "amount": "2500",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
        "name": "USDC",
        "version": "1"
      },
      "maxTimeoutSeconds": 60,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
      "scheme": "exact"
    }
  ],
  "error": "PAYMENT-SIGNATURE required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "country": "US",
            "types": "public",
            "year": "2026"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "items": [
              {
                "date": "2026-01-01",
                "name": "New Year's Day",
                "rule": "01-01 and if sunday then next monday if saturday then previous friday",
                "substitute": false,
                "type": "public"
              }
            ],
            "ok": true,
            "source": {
              "license": "ISC (code) + CC BY 3.0 (holiday data)",
              "provider": "date-holidays rule set (computed locally by 2s.io)",
              "url": "https://github.com/commenthol/date-holidays"
            },
            "total": 12
          },
          "schema": {
            "properties": {
              "items": {
                "items": {
                  "properties": {
                    "date": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "rule": {
                      "type": "string"
                    },
                    "substitute": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ok": {
                "type": "boolean"
              },
              "source": {
                "properties": {
                  "license": {
                    "type": "string"
                  },
                  "provider": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "total": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "properties": {
              "method": {
                "const": "GET"
              },
              "queryParams": {
                "properties": {
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, JP.",
                    "type": "string"
                  },
                  "lang": {
                    "description": "Optional ISO 639-1 language for holiday names.",
                    "type": "string"
                  },
                  "region": {
                    "description": "Optional subdivision code, e.g. CA (US-California), BY (DE-Bavaria).",
                    "type": "string"
                  },
                  "types": {
                    "description": "Optional comma-separated filter: public, bank, school, optional, observance.",
                    "type": "string"
                  },
                  "year": {
                    "description": "Calendar year, e.g. 2026.",
                    "type": "string"
                  }
                },
                "required": [
                  "country",
                  "year"
                ]
              },
              "type": {
                "const": "http"
              }
            },
            "required": [
              "type",
              "method",
              "queryParams"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "items": {
                "items": {
                  "properties": {
                    "date": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "rule": {
                      "type": "string"
                    },
                    "substitute": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ok": {
                "type": "boolean"
              },
              "source": {
                "properties": {
                  "license": {
                    "type": "string"
                  },
                  "provider": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "total": {
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "List the official holidays for a country and year, with exact observed dates including substitute days (e.g. a Saturday July 4th observed on Friday). Query: country (ISO 3166-1 alpha-2, 200+ supported), year, optional region (subdivision code like CA for US-California or BY for DE-Bavaria), optional types filter (public, bank, school, optional, observance — comma-separated), optional lang (ISO 639-1) for localized names. Returns one item per holiday: { date (YYYY-MM-DD), name, type, substitute, rule }. Dates are computed from maintained per-country rules — including movable feasts and lunar-calendar holidays — so they stay correct year over year. Use for scheduling, delivery estimates, payment terms, and SLA math.",
    "iconUrl": "https://2s.io/icon-512.png",
    "mimeType": "application/json",
    "serviceName": "2s",
    "tags": [
      "public-records",
      "identifiers",
      "ai-agents",
      "us-gov-data",
      "x402",
      "upto-billing",
      "ai-gateway",
      "agent-infrastructure"
    ],
    "url": "https://2s.io/api/calendar/holidays"
  },
  "x402Version": 2
}

Request headers

{
  "accept": "*/*",
  "user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}

Machine contract

Schemas.

InputJSON
{
  "method": "GET",
  "queryParams": {
    "country": "US",
    "types": "public",
    "year": "2026"
  },
  "type": "http"
}
OutputJSON
{}