The APIs your app needs, on your own domain.
OpenAI, Anthropic, npm, PyPI, Docker Hub, Firebase — turn one on and nsin gives you a hostname under your domain that reaches it. Change a base URL; change nothing else.
One click · No SDK, no proxy config · Works from any network
AI & LLM
Call the model APIs directly from your code
Every major model provider is in the catalog — OpenAI, Anthropic, Gemini, OpenRouter, DeepSeek, Groq, Mistral, xAI, Cohere, Hugging Face. Turn one on and you get an endpoint like ai-40218.yourdomain.ir. Point your SDK's base URL at it and the rest of your code is untouched.
- Works with the official SDKs — only baseURL changes
- Streaming responses pass through unbuffered
- Your API key never leaves your own request
import OpenAI from 'openai'; const openai = new OpenAI({ baseURL: 'https://ai-40218.yourdomain.ir/v1', apiKey: process.env.OPENAI_API_KEY,}); // everything else is unchangedPackages & build
npm install, pip install, docker pull — that just work
Package registries are the hard case: they answer with absolute URLs on other hosts, so a plain proxy breaks on the second request. nsin serves those hosts under your gateway too and rewrites the URLs on the way out, so a pull completes end to end instead of dying on a redirect.
- npm, PyPI, uv, Docker Hub, MCR, crates.io, Go, Maven, NuGet, GitHub
- Redirects to blob CDNs and signed URLs resolve correctly
- Per-registry setup snippets for every gateway you turn on
# npmnpm config set registry \ https://npm-51074.yourdomain.ir/ # pippip config set global.index-url \ https://pypi-33915.yourdomain.ir/simple/ # dockerdocker pull \ docker-77228.yourdomain.ir/library/nginxMessaging & cloud
Webhooks, push and cloud APIs from one place
The rest of the catalog is the plumbing an app quietly depends on: Discord bots, Slack and WhatsApp webhooks, FCM and APNs push, Google APIs and OAuth, Firestore, Supabase, Twilio, SendGrid, Cloudflare.
- Messaging: Discord, Slack, WhatsApp
- Push: Firebase Cloud Messaging and Apple APNs
- Cloud: Google APIs & OAuth, Firestore, Supabase, Twilio, SendGrid
# Any messenger bot, from your own serverGW=https://tg-60412.yourdomain.ir curl -s "$GW/bot$TOKEN/sendMessage" \ -d chat_id=$CHAT_ID \ -d text='deploy finished' # same shape for FCM, Slack, Twilio…On your edge
It is your CDN — a gateway is just another record
A gateway is an ordinary proxied record on your zone, so everything the edge already does applies to it: TLS from your own certificate, real-time logs, analytics, and the same cross-border routing that keeps the rest of your domain reachable. Usage is metered on a rolling 30-day window so you always know where you stand.
- HTTPS on your own hostname, issued and renewed automatically
- Every call appears in your logs and analytics
- Rolling 30-day request and bandwidth meter in the panel
$ curl -sI \ https://ai-40218.yourdomain.ir/v1/models HTTP/2 200server: nsinnsin-ray: 8f2c1a4e-ir-thrstrict-transport-security: max-age=…The catalog
What you can turn on
The catalog is maintained by nsin — destinations, upstream host headers and the companion hosts a service redirects to are all kept current, so you never configure any of it. New entries appear on your Gateways page automatically.
AI & LLM
- OpenAI
- Anthropic
- Google Gemini
- OpenRouter, DeepSeek, Groq
- Mistral, xAI, Cohere
- Hugging Face
Packages & build
- npm
- PyPI & uv
- Docker Hub & MCR
- crates.io & Go modules
- Maven, Gradle, NuGet
- GitHub API, raw & codeload
Messaging
- Discord
- Slack
- WhatsApp Business
Cloud & platform
- Google APIs & OAuth
- Firebase Cloud Messaging
- Firestore & Supabase
- Apple APNs
- Twilio & SendGrid
- Cloudflare API
How it works
Live in three steps
Pick a service
Open Gateways on your domain, find the service you need and turn it on. nsin creates the proxied record for you and gives it a hostname under your zone.
Copy the base URL
Each gateway comes with a How-to for that specific service — the SDK line to change, the registry prefix, the config file and the exact command.
Ship
Rename the hostname to something you'll recognise, then watch requests and bandwidth land in the same analytics as the rest of your domain.
Frequently asked questions
What exactly is a gateway?
A ready-made proxied record on your own domain that points at a third-party service. You pick it from a catalog instead of configuring an origin, a host header and a TLS mode by hand — nsin already knows all three for that service.
Do I need to change my code?
Only the base URL. Official SDKs all take one — set it to your gateway hostname and every call, including streaming, goes through unchanged. For package managers it is one line in a config file.
Can I browse a service's website through a gateway?
No. Gateways are for API calls and package clients. They are not a way to open a third-party site in a browser and won't work that way.
Does nsin see my API keys?
Your credentials travel in your own request to the provider, exactly as they would without a gateway. nsin does not store them and never adds keys of its own — you always authenticate as yourself.
What are the limits?
Gateway traffic is metered on a rolling 30-day window, in requests and in gigabytes, with the ceiling set by your plan. Because the window rolls, usage ages out continuously — nothing waits for a reset date.
Anything I should know before turning one on?
Gateway traffic leaves nsin from shared egress addresses, so a provider may see your calls arrive from an IP it doesn't associate with your account. You accept a short terms notice per domain before the first gateway goes live; talk to us if you need a dedicated address.
Put your site on the edge.
Turn on the services your app depends on and get back to building.
Get started free