Takes about five minutes. Works the same way whether you use JanitorAI, SillyTavern, or anything else that speaks the OpenAI API format — you're pasting two values into a settings screen, not learning a new tool. This page walks through what those two values are and where each app wants them.
virtual.sex speaks the same API format as OpenAI, so any app with a "custom" or "OpenAI-compatible" provider option can connect to it directly — no plugin, no special integration. You just need two things from your dashboard: a Base URL (the address the app sends your messages to) and an API key (which ties that traffic to your account and balance). Paste both into the app's custom API settings, pick the model, and you're chatting.
In your dashboard, your Base URL and API key are both ready to copy. Keep that tab open — you'll paste them in a moment.
In JanitorAI:
Alternatively, from the character itself:
In SillyTavern:
In JanitorAI:
If you used the per-character route:
That same dropdown now lets you switch between JanitorAI's own chat engine and virtual.sex whenever you like — once connected, it reads Using Proxy instead of Using Janitor. That character is now running on EROS, fully uncensored.
In SillyTavern:
JanitorAI needs the full path, not just the Base URL. Unlike most apps, JanitorAI sends requests to exactly what you paste — it won't add anything after it. Paste this complete address instead: https://api.virtual.sex/v1/chat/completions
SillyTavern needs /v1 added to the Base URL. It appends /chat/completions itself, but not the /v1 before it — paste https://api.virtual.sex/v1 instead of the bare Base URL from your dashboard.
The model dropdown should populate on its own once your key is recognized — select it, open a character, and send a message. If nothing comes back, double-check the URL and key for stray spaces, and confirm your dashboard shows a positive balance.
A private string that identifies your account to the gateway — think of it like a password made just for apps, not for you to type in by hand each time. Anyone with it can spend your balance, so keep it as private as a password.
The address your app sends messages to. Pasting ours in is what redirects the app's requests to virtual.sex.
It means we accept requests in the same shape OpenAI's API does. Any app built to work with OpenAI already knows how to talk to us — it just needs to be pointed at a different address with a different key.
Yes — anything with a "custom" or "OpenAI-compatible" provider option works the same way: same Base URL, same API key, same idea.
Re-check the URL and key for extra spaces or missing characters, and confirm your dashboard shows a positive balance — a $0 balance is the most common cause.