Docs

Getting started

Point your SDK at the gateway, use a gateway key, and you are done.

1. Get a gateway key

After your organisation is set up, an administrator signs in to the console with Microsoft Entra and creates a key for your app, choosing its allowed models, budget and rate limit. Request access if you do not have an account yet.

Treat the key like a password. Store it in an environment variable or secrets manager, never in source control.

2. Use the base URL

https://llmfw.peritusdigital.com.au/v1

Endpoints

MethodPathDescription
POST/v1/chat/completionsChat completions, including streaming. OpenAI-compatible.
POST/v1/responsesResponses API, OpenAI-compatible.
POST/v1/embeddingsText embeddings.
POST/v1/messagesAnthropic-compatible Messages API.

Authentication

Send your gateway key as a bearer token: Authorization: Bearer <gateway key>. Provider keys are never required by your application.

Examples

curl

curl https://llmfw.peritusdigital.com.au/v1/chat/completions \
  -H "Authorization: Bearer $GATEWAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Hello from the gateway"}]
  }'

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://llmfw.peritusdigital.com.au/v1",
    api_key=os.environ["GATEWAY_KEY"],
)
resp = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello from the gateway"}],
)
print(resp.choices[0].message.content)

Node

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://llmfw.peritusdigital.com.au/v1",
  apiKey: process.env.GATEWAY_KEY,
});
const resp = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello from the gateway" }],
});
console.log(resp.choices[0].message.content);

Anthropic SDK (Python)

import anthropic

client = anthropic.Anthropic(
    base_url="https://llmfw.peritusdigital.com.au",
    api_key=os.environ["GATEWAY_KEY"],
)
msg = client.messages.create(
    model="claude-sonnet", max_tokens=512,
    messages=[{"role": "user", "content": "Hello"}],
)

Model names are the ones your administrator has enabled for your key. List them from the console.

When a policy applies

If a request is blocked by policy, the gateway returns an error response explaining which rule applied. Redacted and tokenised requests succeed normally. Tokenised values are restored in the response.

Need help?

Contact us and we will help you connect your first application.

Put a firewall between your people and AI

Request access and we will help you set up your first policy, key and budget.