Quickstart
Send your first governed AI request in under 5 minutes.
This is the fastest path from a fresh project to a working governance decision. Three options for sending the first request — pick whichever fits how you already build.
Prerequisites
- A Palveron account (sign up)
- A project API key from Settings → Integration — format
pv_live_...
That's it. No SDK install needed for the cURL path.
Step 1 — Register an agent
Every governed request should be attributed to an agent. Two ways:
- Dashboard wizard — Agent Registry → New Agent, fill in name + description, pick a template, click Register. Takes ~30 seconds for Community tier.
- API —
POST /api/v1/agentswith a JSON body. See api/agents.
Note the agent's id (shown in the registry) — a plain CUID without a prefix. You pass it as metadata.agent_id on every verify request so traces are attributed to that agent. The ag_ key shown once on registration is not used for this — it is not yet accepted for API authentication; every request authenticates with your project key.
Step 2 — Send your first request
curl -X POST https://gateway.palveron.com/api/v1/verify \
-H "Authorization: Bearer pv_live_your_project_key" \
-H "Content-Type: application/json" \
-d '{
"prompt": "My social security number is 123-45-6789.",
"metadata": { "agent_id": "ckagent..." }
}'On the raw HTTP API, agent attribution lives in metadata.agent_id — there is no top-level agent_id field. The SDKs' agentId/agent_id option places it there for you.
Already using an LLM client? Use the gateway proxy
The gateway is wire-compatible with OpenAI. Point your existing client at it and authenticate with your Palveron project key — every request is now governed without further code changes. The upstream LLM key comes from your project's BYOM configuration (Settings → Neural Gateway), not from the request.
from openai import OpenAI
client = OpenAI(
base_url="https://gateway.palveron.com/v1",
api_key="pv_live_your_project_key",
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Summarize this email..."}],
)The gateway evaluates every prompt against your policies before forwarding to your configured LLM provider. Blocked prompts return a structured error instead of the LLM response.
Step 3 — Check the result
Open the Command Center in the dashboard. You should see your trace in the Live Activity Feed within seconds — with the decision, the policy that triggered, the integrity hash, and the Flare anchor status.
Click the trace to open the Trace Explorer, which shows the full NGE breakdown, matched policies, and (when Flare is active) the on-chain proof link.
Decision reference
| Decision | Meaning | What happens |
|---|---|---|
PASSED | No policy triggered | Original prompt (in output) forwarded to the LLM |
BLOCKED | A blocking policy fired | Request rejected (HTTP 403); reason explains why |
MODIFIED | A masking policy fired | output contains the redacted version; that's what reaches the LLM |
FLAGGED | A LOG_ONLY policy fired | Request allowed; violation recorded in the trace |
PENDING_APPROVAL | An approval policy fired | Request queued (HTTP 202) until a human decides |
See the Verify API reference for the full decision set and status-code mapping.
Flare status reference
| Status | Meaning |
|---|---|
PENDING | Trace queued for the next Flare anchoring cycle (per the project's anchor interval) |
ANCHORED | Merkle root for this trace is on-chain; flare_tx_hash is populated |
LOCAL_ONLY | Trace stored locally only — Flare anchoring is disabled for this project |
SKIPPED | Trace doesn't meet the configured attestation scope (e.g. MANDATORY_ONLY skips PASSED decisions) |
Next steps
Gateway Proxy
Drop-in OpenAI-compatible proxy with zero code changes.
Official SDKs
All 10 packages at v1.0.0 — core SDKs, framework adapters, tools.
MCP Gateway
Govern tool calls from Cursor, Windsurf, and Claude Code.
Browser Guard
Govern ChatGPT, Claude, Gemini directly in the browser.
API Reference
Full request/response schema and retry semantics.
Self-hosted
If you self-host the gateway, point the SDK / cURL at your own endpoint with PALVERON_ENDPOINT:
export PALVERON_ENDPOINT=https://gateway.internal.company.com:8080Or pass baseUrl to the SDK constructor. See Self-hosting → Docker for the full deployment guide.