Your base URL
Drop this into any OpenAI-compatible client. The key prefix is fixed; the full secret only shows once at creation.
base_url
https://api.umbra.dev/v1copy# one base_url swap — no new SDK
from openai import OpenAI
client = OpenAI(
base_url="https://api.umbra.dev/v1",
api_key="umbra-7Xq9p2…RwK")
resp = client.chat.completions.create(
model="gemma-4-12b-coder-fable5",
messages=[{"role":"user","content":"ping"}],
extra_body={"trust_level":"hardware"})
print(resp.choices[0].message.content)
from openai import OpenAI
client = OpenAI(
base_url="https://api.umbra.dev/v1",
api_key="umbra-7Xq9p2…RwK")
resp = client.chat.completions.create(
model="gemma-4-12b-coder-fable5",
messages=[{"role":"user","content":"ping"}],
extra_body={"trust_level":"hardware"})
print(resp.choices[0].message.content)
Create a key
copy now · shown once
Umbra stores the PBKDF2 hash of the full secret. The plaintext is shown exactly once at creation.
Active keys —
| Name | Prefix | Created | Last used | Rate | Action |
|---|