From registerto your first signed record.
The same registration endpoint the dashboard uses — wrapped here as a single public walkthrough so a new operator can see the wiring before signing in. Five minutes from a registration curl to a SHA-256 record chained into your ledger.
Step 01 · Register
Register a model.
The registration endpoint mints a one-time pl_… API key (only its SHA-256 is stored) and returns paste-runnable Node + Python snippets that the dashboard already wires for you after the call. It's gated by your signed-in session — paste your __Secure-better-auth.session_token cookie in place of $YOUR_SESSION_COOKIE below.
curl -X POST \
https://plumbline-ai-9.polsia.app/api/models/register \
-H "Content-Type: application/json" \
-b "__Secure-better-auth.session_token=$YOUR_SESSION_COOKIE" \
-d '{"name":"eval-claude","version":"0.1.0","owner_team":"ai-eval-team"}'Response envelope (mirrors ModelRegisterResult):
{
"model_id": "<your_model_id>",
"api_key": "pl_<64-hex>", // shown ONCE — only sha256 is stored
"snippets": {
"node": "POLSIA_API_KEY=… POLSIA_MODEL_ID=… POLSIA_MODEL_VERSION=0.1.0 POLSIA_API_BASE=… node -e \"import('@plumbline/eval-sdk').then(m=>m.recordEval({input:'hello',output:'hi',version:'0.1.0'}))\"",
"python": "POLSIA_API_KEY=… \\\n POLSIA_MODEL_ID=… \\\n POLSIA_MODEL_VERSION=0.1.0 \\\n POLSIA_API_BASE=… \\\n python -c \"from polsia import record_eval; record_eval(input='hello', output='hi', version='0.1.0')\""
}
}Step 02 · Install
Install the SDK.
Two paths to the same wire. The Node one ships in this repo today (sdks/eval-sdk/); the Python one is illustrative — the package isn't published yet, but the env-var stack already matches the dashboard's install shape.
POLSIA_API_KEY=pl_<polsia-api-key> \ POLSIA_MODEL_ID=<polsia-model-id> \ POLSIA_MODEL_VERSION=<polsia-model-version> \ POLSIA_API_BASE=https://plumbline-ai-9.polsia.app \ node -e "import('@plumbline/eval-sdk').then(m=>m.recordEval({input:'hello',output:'hi',version:'<polsia-model-version>'}))"# Illustrative Python snippet — the 'polsia' package is not published yet.
POLSIA_API_KEY=pl_<polsia-api-key> \
POLSIA_MODEL_ID=<polsia-model-id> \
POLSIA_MODEL_VERSION=<polsia-model-version> \
POLSIA_API_BASE=https://plumbline-ai-9.polsia.app \
python -c "from polsia import record_eval; record_eval(input='hello', output='hi', version='<polsia-model-version>')"Step 03 · Capture
Trigger your first evaluation.
The SDK does this wire for you on the Node path — paste-run the Node snippet above and skip the curl. Need to see the raw shape? Hit /api/eval-records directly with the bearer key the registration call minted. Body matches EvalRecordCreate; the response is the right-rail sample on this page.
curl -X POST \
https://plumbline-ai-9.polsia.app/api/eval-records \
-H "Content-Type: application/json" \
-H "Authorization: Bearer pl_<polsia-api-key>" \
-d '{
"model_id": "<polsia-model-id>",
"run_id": "smoke-test-001",
"version": "0.1.0",
"input": {"prompt":"hello"},
"output": {"text":"hi"}
}'Next · Pick a direction
Pasted it. Now where?
See a real chain-record against the public demo model, or look at what running this in production actually costs.