Pointsman

Self-hosted AI gateway

Your AI traffic.
Your rules.

Connect your applications to AI providers through one gateway. Pointsman manages access, spending, and content checks, while its optional bandit router learns from request outcomes to guide future model choices.

One gateway between your apps and AI providers.Example route
Pointsman connects applications to model providers Application, agent, and service requests enter Pointsman. Access, budgets, guardrails, caching, routing, and usage accounting are gateway responsibilities. An illustrative route from an agent to Provider A is highlighted. ApplicationsGatewayProviders Application Agent Service Provider A Provider B Local model Pointsman Access + budgetsGuardrails + cacheModel routingUsage accounting

Adaptive routing Experimental · opt-in

Model choices informed
by real requests.

Choosing a model needn’t end with a one-time comparison. Pointsman’s bandit router learns from request results, balancing models it has learned about with alternatives it still needs to explore.

Response time, cost, and completion can guide its choices. Ratings or configured evaluators can add feedback on answer quality. Your access rules and budgets still apply.

How adaptive routing works

Model groups use weighted-random routing by default. Learning-based routing must be enabled.

Choose a model. Observe the result. Learn for next time.
How the gateway uses earlier results to help choose a model For balanced and contextual routing, the gateway chooses among allowed models using estimates it already holds, then sends a request to a provider. Results and feedback go to a background learner. The gateway periodically fetches updated estimates to use for later choices, without waiting for the learner on each request. When a request arrivesLearning in the background RequestSendresultsFetchupdates GatewayChoose a modelFrom allowed choices AI providerReturn an answerReport what happened Held by the gatewaySaved estimatesReady for the next choice Background learnerLearn from resultsShare updated estimates
For balanced and contextual routing, learning happens in the background so requests don’t wait for it.

Keep control as more
applications use AI.

Manage the rules once at the gateway, instead of rebuilding the same controls in every application.

Set access and spending limits

Give each application its own key, choose which models it can use, and keep its requests within individual and shared budgets.

Access and budgets

Apply your content policies

Configure checks on prompts and responses to control what passes through the gateway, with the same policies applied across your connected applications.

Content guardrails

Reuse answers when they fit

Serve a saved response instead of calling a model again when a request meets your cache’s matching and access rules. Response checks still apply.

Response caching

See where your AI traffic
and spending are going.

Follow request volume, response times, and spending in one dashboard. When something changes, look into the individual requests behind it.

Actual Pointsman interface, shown with sample data. Select an image to enlarge it.

About the builder

Srinivas Reddy Gouru

Software engineer · Technical lead

I’m a software engineer and technical lead with more than a decade of experience building backend services and distributed systems. My work has taken me from embedded software to cloud platforms, payments systems, and AI integrations.

With Pointsman, I’m bringing that experience to the infrastructure behind AI applications: how requests are routed, how access and spending are controlled, and how teams understand what happened.

Find me on LinkedIn

Start with a request.
Make it your own.

Run Pointsman on your infrastructure and connect through its Chat Completions API. The quickstart includes mock providers, so you can explore the gateway before connecting a paid AI service.

Chat Completions
curl http://localhost:8080/v1/chat/completions \
  -H "Authorization: Bearer $POINTSMAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'

After setup, use a gateway key and a model you have enabled.