The bench, over HTTP

Every station is one POST. Signed-in accounts send their x-api-key header to attach runs to their plan limits.

Endpoints

POSTBodyReturns
/api/phones{count, seed, format, as}TEST-DATA-stamped fictional 555-01XX numbers
/api/dataset{dataset, count, seed, as}CSV or JSON preset dataset
/api/validate{kind: phone|luhn|isbn|ean13|iban, value}{valid, …} — failures carry the specific reason
/api/ids{kind: uuid|luhn|ean13, count, seed, prefix}Check-digit-correct test IDs

Errors are JSON with an error field and a real status code — 400 for a bad request, 413 over the row ceiling, 429 at the daily limit. Nothing fails silently.