Getting started

Quickstart

A key, one changed line, and your first governed call in about five minutes.

This gets one agent connected and one call on the record. It assumes you already have an account; if not, sign up first — it is free, and stays free until Navige has saved you something.

1. Create an agent and take its key

In the console, go to Agents → Add agent. Name it after the thing that will use it — the name is what you will be reading in the audit log and on the spend page at 2am, so billing-reconciler beats agent-1.

You get back a key that starts with nv_.

Shown once
Only a hash of the key is stored, so it cannot be shown again or recovered. Copy it now. If you lose it, revoke it and mint another — that is a two-click operation and costs nothing but the config change.

2. Point your client at Navige

Change the base URL, add one header, leave everything else — including your provider key — exactly as it is.

Python, OpenAI SDK

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.navige.ai/proxy/openai/v1",
    api_key=OPENAI_API_KEY,            # still yours, still goes to OpenAI
    default_headers={"x-navige-key": NAVIGE_KEY},
)

client.chat.completions.create(
    model="gpt-5.1",
    messages=[{"role": "user", "content": "ping"}],
)

TypeScript, Anthropic SDK

typescript
import Anthropic from "@anthropic-ai/sdk";

const anthropic = new Anthropic({
  baseURL: "https://api.navige.ai/proxy/anthropic",
  apiKey: process.env.ANTHROPIC_API_KEY,
  defaultHeaders: { "x-navige-key": process.env.NAVIGE_KEY! },
});

await anthropic.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 64,
  messages: [{ role: "user", content: "ping" }],
});

curl, if you would rather see the wire

bash
curl https://api.navige.ai/proxy/openai/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "x-navige-key: $NAVIGE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.1","messages":[{"role":"user","content":"ping"}]}'
Two keys, two headers
Authorization carries your provider key and is forwarded upstream untouched. x-navige-key carries your Navige key and never leaves us. They are separate headers precisely so the two can never be mistaken for one another — see Authentication.

3. Look at it

Open Transactions in the console. Your call is there, with the model, the token counts, what it cost and how long it took.

If it is not, the usual cause is the key going in the wrong header, which fails closed and loudly rather than silently: you get a 401 from Navige, not a missing row.

4. Give the work a name

One call is a call. What you actually want to know is what a job cost — the eleven model calls and four tool calls that made up one invoice run. Pass a workflow key and Navige groups them.

bash
-H "x-navige-workflow: invoice-run"

Now the spend page reports per job, and $0.0004 per call becomes $1.37 per invoice, which is a number somebody can make a decision with.

What you have now

  • Every model call through that client, priced and attributed.
  • A per-job cost, if you set a workflow key.
  • A weekly report of what it all cost and where the waste is — modelled, not charged for, because you are on Watchtower and nothing has been changed.

Next

Something here wrong or missing? Tell us — a person reads it.