PalveronPalveronDocs

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 wizardAgent Registry → New Agent, fill in name + description, pick a template, click Register. Takes ~30 seconds for Community tier.
  • APIPOST /api/v1/agents with 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

DecisionMeaningWhat happens
PASSEDNo policy triggeredOriginal prompt (in output) forwarded to the LLM
BLOCKEDA blocking policy firedRequest rejected (HTTP 403); reason explains why
MODIFIEDA masking policy firedoutput contains the redacted version; that's what reaches the LLM
FLAGGEDA LOG_ONLY policy firedRequest allowed; violation recorded in the trace
PENDING_APPROVALAn approval policy firedRequest queued (HTTP 202) until a human decides

See the Verify API reference for the full decision set and status-code mapping.

Flare status reference

StatusMeaning
PENDINGTrace queued for the next Flare anchoring cycle (per the project's anchor interval)
ANCHOREDMerkle root for this trace is on-chain; flare_tx_hash is populated
LOCAL_ONLYTrace stored locally only — Flare anchoring is disabled for this project
SKIPPEDTrace doesn't meet the configured attestation scope (e.g. MANDATORY_ONLY skips PASSED decisions)

Next steps

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:8080

Or pass baseUrl to the SDK constructor. See Self-hosting → Docker for the full deployment guide.

On this page