Configure a safe test policy, run real OpenAI-compatible requests, and follow each one from authentication through guard screening and model routing.
GGuardRouteTrace
Waiting for a connection
Gateway version —
LIVE DEPENDENCIES
System health
Unknown
GGatewayIngress and policyWaiting
SSafety guardRules and local classifierWaiting
RModel providerOpenRouter routingWaiting
Requests in view—
Latest trace window
Pass rate—
No decisions loaded
Policy mode—
Connect to inspect
Tests this session0
Run from the visual lab
DECISION MIX
Recent verdicts
SESSION ACTIVITY
Latest test runs
◎
Your visual test results will appear here.
TEST CONFIGURATION
Policy studio
Orchestrate the request path visually, or author the same policy as developer-friendly YAML.
Not loaded
POLICY LIBRARY
Reusable request policies
Create multiple policies, choose one to edit and test, then pin every API key to exactly one policy.
Policy
Select a policy to edit.
◎
Configuration scope
Overrides are isolated to one tenant and application.
◇
Safe demo override. Saved changes live only in gateway memory and disappear when the gateway restarts. Production runtime editing is always disabled.
Inspect effective policy JSON
Connect to load policy.
VISUAL EVALUATION
Test lab
Send real requests through Ginjo and inspect policy, guard, route, response, and trace evidence together.
◎
Ready for a real request
Select a baseline scenario or customize the request, then run it through the connected gateway.
G
Evaluating request
Authenticating the test identity…
GINJO DECISION
UnknownNo expectation
—
risk
1
IdentityAPI key and scope
—
2
PolicyRoute, tool, and limits
—
3
GuardRules and classifier
—
4
RouteProvider selection
—
5
EvidenceDecision trace
—
Enforced—
Selected model—
HTTP status—
Latency—
Detected issues
Response
—
Gateway response
Trace
BASELINE SUITE
Running scenarios…
0 / 0
THIS BROWSER SESSION
Run history
◎
No tests run yet.
DEVELOPER ACCESS
Gateway API keys
Create revocable keys for SDKs and server applications. Each key is pinned to one policy; secret values are shown only once.
◇
Copy this key now. Ginjo will not show it again.
NEW CREDENTIAL
Name and bind the integration
A clear label and explicit policy binding make rotation and review safer later.
ACTIVE AND REVOKED
Application credentials
Description
Policy
Prefix
Created
Last used
Status
Sign in to manage keys.
DEVELOPER REFERENCE
Build through the safety layer.
Use Ginjo as the OpenAI-compatible base URL in an existing client. Every request is authenticated, checked against application policy, screened, and traced before model-provider egress.
One production origin. Your policy stays in front.
Raw HTTP requests use the origin below. OpenAI SDKs use the same value with /v1 appended.
https://www.ginjo.ai
1
Create a policy-bound API key
Sign in, choose the policy for this integration, and copy the one-time gjo_live_… value.
2
Set it on your server
Store it as GINJO_API_KEY. Never ship the key to browser code.
3
Send an OpenAI-shaped request
Start with the auto alias and inspect the Ginjo response headers.
cURL · Chat Completions
curl https://www.ginjo.ai/v1/chat/completions \
-H "Authorization: Bearer $GINJO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [
{"role": "user", "content": "Explain least privilege in two sentences."}
]
}'
01
AUTHENTICATION
Bearer keys, pinned to one policy
Send the generated key in every model and models request. Ginjo stores only a hash, shows the secret once, and enforces the named policy selected when the key was created. Rotate the key to move an integration to another policy.
Authorization: Bearer $GINJO_API_KEY
◇
Server-side only. A Ginjo API key can spend model budget and must not be embedded in a public web or mobile bundle.
02
REST API
Endpoints
GET/v1/modelsList allowed models
Returns Ginjo aliases and provider models permitted by the current application policy.
POST/v1/chat/completionsCreate a chat completion
Requires a string model and a non-empty messages array. Set stream: true for server-sent events.
POST/v1/responsesCreate a response
Requires model and input. Supports OpenAI Responses tools when the application policy allows them.
GET/health/readyRead deployment readiness
No authentication required. Returns 200 when required gateway dependencies are ready, otherwise 503.
autoRoute according to your Ginjo policy.
efficientPrefer the configured efficiency tier.
capablePrefer the configured capability tier.
Aliases are stable Ginjo names; their underlying provider models can evolve. Call GET /v1/models for the current policy-visible set.
03
OPENAI CLIENTS
Change the base URL, keep the SDK
JavaScript · Responses
import OpenAI from "openai";
const ginjo = new OpenAI({
apiKey: process.env.GINJO_API_KEY,
baseURL: "https://www.ginjo.ai/v1",
});
const response = await ginjo.responses.create({
model: "auto",
input: "Write a safe rollout checklist.",
});
console.log(response.output_text);