NextRouter REborn

Documentation

NextRouter REborn exposes an OpenAI-compatible API. No signup, no personal keys — everyone uses the same public key below.

Public key

api-key
nr_public_nextrouter_free

30 requests/min per IP · no token caps · no increases, same for everyone. Pass it as Authorization: Bearer.

Attribution & Credits

Any project that uses NextRouter REborn as its AI model provider MUST credit NextRouter and link back to this platform.

  • Display a visible credit line and a working hyperlink to https://nextrouter-reborn.pages.dev wherever the project showcases its features (e.g. about page, footer, README, or app settings).
  • In commercial or distributed products, include the attribution in the app's settings / about screen, not only in source code.
  • Do not remove, obfuscate, or claim as your own any NextRouter branding, URLs, or provider references.

This keeps the gateway proudly credited as your underlying model provider. Thanks for routing with NextRouter REborn — Engineered by JustScriptzz.

Quick start

bash
curl https://nextrouter-reborn.pages.dev/api/v1/chat/completions \
  -H "Authorization: Bearer nr_public_nextrouter_free" \
  -H "Content-Type: application/json" \
  -d '{"model":"kiro-auto","messages":[{"role":"user","content":"Hello"}]}'

Just swap the base URL and key. Available model IDs are listed on the Models page.

Endpoints

POST
/api/v1/chat/completions
Text completions. Supports streaming (SSE) and non-streaming.
POST
/api/v1/images/generations
Image generation from a text prompt. OpenAI-compatible body.
POST
/api/v1/images/edits
Image editing for models that support it (e.g. flux-2-pro, sdxl-lightning).
POST
/api/v1/audio/speech
Text-to-speech for tts models. Returns audio bytes.
POST
/api/v1/audio/transcriptions
Speech-to-text for stt models. Multipart form upload with a file field.
POST
/api/v1/embeddings
Text embeddings. OpenAI-compatible body.
POST
/api/v1/videos/generations
Video generation from a text prompt. Body: { model, prompt }. Returns a video URL or base64.
GET
/api/v1/models
Lists available model IDs.
GET
/api/v1/whoami
Returns the caller mode: public (rpm_per_ip, fixed limits) or admin.

Authentication

All /api/v1 endpoints share one public key (see above) sent as Authorization: Bearer <key>. There are no personal keys and no signups — only the public key and admin keys are accepted.

Limits

  • Requests per minute: 30 RPM per IP on all /api/v1 endpoints. Fixed for everyone — no increases.
  • Daily token limit: none. No token caps at all.
  • Model-level RPM limits may apply to individual custom models (set by the model owner).
  • Custom models: community models stay callable by anyone. Publishing new ones is admin-only.
  • Admins are exempt from the per-IP gate.

Custom models

Owners can add their own endpoints on the My Models page. Public custom models can be called by anyone as {owner-username}/{model-name}. Private models only work with the owner's keys.

Third-party clients

OpenCode (coding agent)

Add NextRouter as a custom provider in opencode.json using the OpenAI-compatible package. Use any text model ID from the Models page — tool calling is emulated gateway-side, so agentic workflows (file edits, shell calls) work on every model.

json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "nextrouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "NextRouter",
      "options": {
        "baseURL": "https://nextrouter-reborn.pages.dev/api/v1",
        "apiKey": "nr_public_nextrouter_free"
      },
      "models": {
        "gpt-4o": { "name": "GPT-4o (NextRouter)" }
      }
    }
  }
}

SillyTavern

On the API Connections page pick the Chat Completions API type with an OpenAI-compatible / custom endpoint, then set the base URL to https://nextrouter-reborn.pages.dev/api/v1 with your key, and enter any text model ID from the Models page. Streaming works.

JanitorAI

In JanitorAI's API settings use an OpenAI-compatible reverse-proxy URL pointing at https://nextrouter-reborn.pages.dev/api/v1 with your key, and pick a chat model ID from the Models page. If a character preset sends a model name the catalog doesn't know, calls fail with "Model not found" — swap it for a listed ID.

Streaming example

javascript
const res = await fetch("https://nextrouter-reborn.pages.dev/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer nr_public_nextrouter_free",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "kiro-auto",
    stream: true,
    messages: [{ role: "user", content: "Hello" }]
  })
});
for await (const chunk of res.body) {
  console.log(new TextDecoder().decode(chunk));
}

Video generation example

bash
curl https://nextrouter-reborn.pages.dev/api/v1/videos/generations \
  -H "Authorization: Bearer nr_public_nextrouter_free" \
  -H "Content-Type: application/json" \
  -d '{"model":"video-model-id","prompt":"A cat surfing a wave"}'

Response contains a video URL or base64 payload, depending on the model. Video generation can take longer than other endpoints — allow extra time before it responds.