About Anvil
Anvil is a tiny public API for the jobs every project ends up needing: an ID, a password, "what time is it in Tokyo", "when does this cron run", "is Monday a bank holiday".
Privacy
- No accounts, API keys, cookies or tracking analytics.
- We keep one anonymous daily tally of views per page, plus the domain of a site that linked here (for example a search engine). No cookies, IP addresses or browser details are stored, so no visitor can be told apart or followed. API calls are not counted.
- No request logs. The server does not write your IP address, query or response anywhere.
- Rate limiting keeps a short-lived counter in memory, keyed by a salted hash that changes every restart. It is never written to disk.
- Query strings travel in the URL and may be seen by proxies along the way, so don't send secrets. For private hashing or encoding, use the in-browser tools at Tooltern, which never upload anything.
Limits
- 60 requests a minute and 5,000 a day per client. Over that you get
429with aRetry-Afterheader.RateLimit-Remainingis on every response. - Text inputs are capped at 4 KB. Counts are capped (100 IDs, 50 cron runs, 20 passwords).
- Only
GET,HEADandOPTIONS. CORS is open (*), so browser apps can call it directly.
Errors
Every error is JSON with a stable machine code and a human sentence:
{"error": {"code": "bad_timezone", "message": "Unknown time zone 'Mars/Olympus'…"}}
Codes: missing_param, bad_param, bad_timezone, bad_cron, too_long, rate_limited, not_found, method_not_allowed, internal.
Accuracy
Holidays are calculated from the published rules plus known one-off proclamations, so new one-offs appear only after they are announced. Time zones come from the IANA database on the server. Random values use the operating system's cryptographic generator. Check official sources before relying on a date for anything legal or financial.
Stability
Everything lives under /v1. Fields may be added, but existing fields won't be renamed or removed within v1. Health: /v1/status and the status page. Version 1.24.0.