AnvilJSON utilities

Anvil › Docs

Anvil API docs and code examples

Every endpoint has its own page with a live form, a parameter table, a real example response, copy-ready code in curl, JavaScript and Python, and answers to the questions people actually ask.

Quick start

  • Base URL: https://api.oddlathe.com. Everything is a GET under /v1.
  • No key and no sign-up. CORS is open, so you can call it straight from a web page.
  • 60 requests a minute and 5,000 a day per client. Every response carries RateLimit-Remaining; over the limit you get 429 with Retry-After.
  • Errors are JSON with a stable code and a human message. Add compact to any query for one-line JSON.
  • Calling from a script? Send any User-Agent header. A few bare library defaults (Python's urllib, for one) are refused by the edge network with 403; curl, browsers, Node and requests work as they are.
  • Machine-readable spec: /openapi.json (OpenAPI 3.1). List of endpoints as JSON: /v1.
A tiny client you can paste anywhere (JavaScript)
async function anvil(path, params = {}) {
  const res = await fetch(`https://api.oddlathe.com${path}?${new URLSearchParams(params)}`);
  const data = await res.json();
  if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
  return data;
}

const { uuids } = await anvil("/v1/uuid", { version: 7, count: 3 });
const next = await anvil("/v1/holidays/next", { region: "gb-eng" });

Identifiers

Random

Time

Calendar

Convert

Text

Design

Web

Meta

Updated