The base URL has no default
HOLLERITH_BASE_URL is required. With no base_url= argument and no environment variable, the
constructor raises a plain Python ValueError before any request is sent.
That ValueError is not a HollerithError, so an except HollerithError block will not catch
it. A missing key is different: that raises AuthenticationError with code missing_api_key.
The origin you point at proxies only /v1/* and /sdk/*. Everything else on that host is the
console, not the API.
Create a key
- Sign in to the console and open API Keys.
- Create a key. It begins with
hk_live_. - Copy it. The plaintext is shown exactly once and is never retrievable again.
hk_live_••••3f9a alongside the time it was last used.
The placeholder ellipsis
Console snippets write the placeholder ashk_live_… with a single Unicode ellipsis character,
not three periods. Pasted unchanged, it is a syntactically valid string that matches no key, and
every call returns invalid_api_key.
Replace the whole placeholder, ellipsis included, with the key you copied.
Integrating from a language other than Python? The REST API
documents the same calls on the wire.
Rotate or revoke
Revoking a key disables it immediately; the next request with it returnsrevoked_api_key.
Create the replacement first if you want no gap in service.
Revoked keys are retained rather than deleted. This is deliberate — the row carries the
last-used timestamp, so revoking a key does not erase the record of what it did.
One key, one organization
A key resolves to exactly one organization, and every read is scoped to that organization. Reaching a job, fitted context or key belonging to another one returnsorg_forbidden.
Cross-organization access is never permitted and cannot be granted. To run against data another
organization owns, create a key there.
Next
- Errors — every code, the envelope fields, and the
requestIdto quote - Quickstart — first prediction in about a minute
- Limits and quotas — what your key is allowed to spend per day