Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(providers):** Add Gisoo (`gisoo`), a prepaid OpenAI-compatible multi-model relay, as an API-key provider with live model discovery from `/api/v1/models` ([#18112](https://github.com/cheaper-inference/OmniRoute/pull/18112)) — thanks @netarz
3 changes: 2 additions & 1 deletion config/quality/provider-assets-provenance.jsonl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{"recordType": "manifest", "schemaVersion": 1, "expectedAssetCount": 143, "auditedCommit": "584062d41d012688c9ddf56759771d50b5d3e86f", "auditedAt": "2026-10-29", "scope": "Every regular file directly under public/providers at the audited commit.", "statusSemantics": {"proven": "Immutable source plus byte-exact or SVG path-data match.", "probable": "Repository evidence suggests provenance, but no immutable upstream match is proven.", "unresolved": "No sufficient immutable provenance evidence is recorded."}, "enforcement": "All physical files, hashes, magic MIME values, statuses, and duplicate aliases are blocking. Probable and unresolved statuses are recorded but non-blocking in schema version 1.", "legalScope": "Provenance records source matching only; it does not establish copyright or trademark clearance."}
{"recordType": "manifest", "schemaVersion": 1, "expectedAssetCount": 144, "auditedCommit": "ca7fc3f5ff3ec3e1f10e056faeb7332a568f6b28", "auditedAt": "2026-10-29", "scope": "Every regular file directly under public/providers at the audited commit.", "statusSemantics": {"proven": "Immutable source plus byte-exact or SVG path-data match.", "probable": "Repository evidence suggests provenance, but no immutable upstream match is proven.", "unresolved": "No sufficient immutable provenance evidence is recorded."}, "enforcement": "All physical files, hashes, magic MIME values, statuses, and duplicate aliases are blocking. Probable and unresolved statuses are recorded but non-blocking in schema version 1.", "legalScope": "Provenance records source matching only; it does not establish copyright or trademark clearance."}
{"recordType": "asset", "path": "public/providers/360ai.svg", "mediaType": "image/svg+xml", "sha256": "59366fe04a4336518b8277b430f4a464a91e7ec944c9cf6f40a945c74002386d", "provenanceStatus": "proven", "source": {"kind": "npm", "url": "https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz", "ref": "5.10.0", "path": "package/es/Ai360/components/Color.js", "integrity": "sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==", "packageShasum": "add1baced073a60157d39c7820b8d5c1928a1054", "match": "svg-path-data", "matchDetail": "All 5/5 local SVG path d values match the pinned Color component."}, "upstreamLicenseClaim": {"value": "MIT", "assertedBy": "@lobehub/icons@5.10.0 package/LICENSE", "evidence": "https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE", "independentlyVerified": true, "scope": "Pinned package distribution only; no trademark clearance."}, "trademarkClearance": null, "evidenceNote": "All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
{"recordType": "asset", "path": "public/providers/alibaba.svg", "mediaType": "image/svg+xml", "sha256": "1cd1e7be5108d1e847508dc9e40591fb6eb29aac20bbf7f4c56c6f082359b323", "provenanceStatus": "proven", "source": {"kind": "git", "url": "https://github.com/GLINCKER/thesvg", "ref": "7870bc1c5f657d9accbb7f96cc457b8dd3363ee8", "path": "public/icons/alibaba/default.svg", "integrity": "sha256:1cd1e7be5108d1e847508dc9e40591fb6eb29aac20bbf7f4c56c6f082359b323", "match": "byte-exact"}, "upstreamLicenseClaim": {"value": "MIT", "assertedBy": "theSVG pinned registry", "evidence": "https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json", "independentlyVerified": false, "scope": "Upstream SVG copyright claim only; no trademark clearance.", "upstreamUrl": "https://alibaba.com"}, "trademarkClearance": null, "evidenceNote": "Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
{"recordType": "asset", "path": "public/providers/anthropic.svg", "mediaType": "image/svg+xml", "sha256": "7fea3100bfc2a9480e181fc615d4791cab014f54674b83953785abb86dc293f0", "provenanceStatus": "proven", "source": {"kind": "git", "url": "https://github.com/GLINCKER/thesvg", "ref": "7870bc1c5f657d9accbb7f96cc457b8dd3363ee8", "path": "public/icons/anthropic/default.svg", "integrity": "sha256:7fea3100bfc2a9480e181fc615d4791cab014f54674b83953785abb86dc293f0", "match": "byte-exact"}, "upstreamLicenseClaim": {"value": "CC0-1.0", "assertedBy": "theSVG pinned registry", "evidence": "https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json", "independentlyVerified": false, "scope": "Upstream SVG copyright claim only; no trademark clearance.", "upstreamUrl": "https://www.anthropic.com/"}, "trademarkClearance": null, "evidenceNote": "Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
Expand Down Expand Up @@ -50,6 +50,7 @@
{"recordType": "asset", "path": "public/providers/gemini.svg", "mediaType": "image/svg+xml", "sha256": "c11d94a9e3ecb32f67dd9350848cf3124d617680533275c672e1e6bf61ce8cd4", "provenanceStatus": "proven", "source": {"kind": "git", "url": "https://github.com/GLINCKER/thesvg", "ref": "7870bc1c5f657d9accbb7f96cc457b8dd3363ee8", "path": "public/icons/gemini/default.svg", "integrity": "sha256:c11d94a9e3ecb32f67dd9350848cf3124d617680533275c672e1e6bf61ce8cd4", "match": "byte-exact"}, "upstreamLicenseClaim": {"value": "MIT", "assertedBy": "theSVG pinned registry", "evidence": "https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json", "independentlyVerified": false, "scope": "Upstream SVG copyright claim only; no trademark clearance.", "upstreamUrl": "https://gemini.google.com/"}, "trademarkClearance": null, "evidenceNote": "Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
{"recordType": "asset", "path": "public/providers/gitlawb-gmi.svg", "mediaType": "image/svg+xml", "sha256": "7e79329c67b011fece39606151f500720ff6017bc2c2cb2ca8a841a453fb14ef", "provenanceStatus": "probable", "source": null, "upstreamLicenseClaim": null, "trademarkClearance": null, "evidenceNote": "Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
{"recordType": "asset", "path": "public/providers/gitlawb.svg", "mediaType": "image/svg+xml", "sha256": "4f8a7ba91c2db0383bbab00c80d45919de1394337e83269396afedad1c957a15", "provenanceStatus": "probable", "source": null, "upstreamLicenseClaim": null, "trademarkClearance": null, "evidenceNote": "Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
{"recordType": "asset", "path": "public/providers/gisoo.svg", "mediaType": "image/svg+xml", "sha256": "9d3ded00d1df8fba9c92b792789739b54aada626eb063e1f3d10d2f7c86f917b", "provenanceStatus": "unresolved", "source": null, "upstreamLicenseClaim": null, "trademarkClearance": null, "evidenceNote": "Contributor-supplied logomark added with the Gisoo provider in #18112 on 2026-10-25. No upstream source is pinned; recorded unresolved per schema v1 (non-blocking)."}
{"recordType": "asset", "path": "public/providers/google.svg", "mediaType": "image/svg+xml", "sha256": "fb800918b0b68f12d7a143cb3f51316e478697daa662e7c3d03621f15a4d1d73", "provenanceStatus": "probable", "source": null, "upstreamLicenseClaim": null, "trademarkClearance": null, "evidenceNote": "Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
{"recordType": "asset", "path": "public/providers/grok.svg", "mediaType": "image/svg+xml", "sha256": "b20648e2f111d7fbc91f58b22d1e76e9885b68a163cb5a1010f7f11bf5840491", "provenanceStatus": "proven", "source": {"kind": "git", "url": "https://github.com/GLINCKER/thesvg", "ref": "7870bc1c5f657d9accbb7f96cc457b8dd3363ee8", "path": "public/icons/grok/default.svg", "integrity": "sha256:b20648e2f111d7fbc91f58b22d1e76e9885b68a163cb5a1010f7f11bf5840491", "match": "byte-exact"}, "upstreamLicenseClaim": {"value": "MIT", "assertedBy": "theSVG pinned registry", "evidence": "https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json", "independentlyVerified": false, "scope": "Upstream SVG copyright claim only; no trademark clearance.", "upstreamUrl": "https://grok.com/"}, "trademarkClearance": null, "evidenceNote": "Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
{"recordType": "asset", "path": "public/providers/groq.svg", "mediaType": "image/svg+xml", "sha256": "f8b4420340ff8875a1f04ce80909325dd81b0cb78d0c7a15fd567977338ae956", "provenanceStatus": "proven", "source": {"kind": "git", "url": "https://github.com/GLINCKER/thesvg", "ref": "7870bc1c5f657d9accbb7f96cc457b8dd3363ee8", "path": "public/icons/groq/default.svg", "integrity": "sha256:f8b4420340ff8875a1f04ce80909325dd81b0cb78d0c7a15fd567977338ae956", "match": "byte-exact"}, "upstreamLicenseClaim": {"value": "MIT", "assertedBy": "theSVG pinned registry", "evidence": "https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json", "independentlyVerified": false, "scope": "Upstream SVG copyright claim only; no trademark clearance.", "upstreamUrl": "https://groq.com/"}, "trademarkClearance": null, "evidenceNote": "Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
Expand Down
5 changes: 3 additions & 2 deletions docs/reference/PROVIDER_REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ lastUpdated: 2026-10-29
> Regenerate with: `npm run gen:provider-reference`
> **Last generated:** 2026-10-29
Total providers: **379**. See category breakdown below.
Total providers: **380**. See category breakdown below.

## Categories

Expand Down Expand Up @@ -123,7 +123,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
| `zai-web` | `zw` | Z.ai Web | Web cookie | [link](https://chat.z.ai) | Copy the "token" value from chat.z.ai → DevTools → Application → Local Storage. Do not copy cookies; OmniRoute handles the per-request CAPTCHA through its browser transport. | — |
| `zenmux-free` | `zmf` | ZenMux Free (Web) | Web cookie | [link](https://zenmux.ai) | Login at zenmux.ai, then export all cookies using EditThisCookie or Cookie-Editor and paste the full Cookie header string here. Refresh every ~30 days. | — |

## API Key Providers (paid / paid-with-free-credits) (254)
## API Key Providers (paid / paid-with-free-credits) (255)

| ID | Alias | Name | Tags | Website | Notes |
|----|-------|------|------|---------|-------|
Expand Down Expand Up @@ -216,6 +216,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
| `gemini` | `gemini` | Gemini (Google AI Studio) | API key | [link](https://aistudio.google.com) | Free tier available through Google AI Studio; current per-model quotas and regional limits apply |
| `getgoapi` | `ggo` | GoAPI | API key, aggregator | [link](https://api.getgoapi.com) | — |
| `gigachat` | `gigachat` | GigaChat (Sber) | API key | [link](https://developers.sber.ru) | — |
| `gisoo` | `gisoo` | Gisoo | API key, aggregator | [link](https://gisoo.pro) | — |
| `gitlab` | `gitlab` | GitLab Duo PAT | API key | [link](https://docs.gitlab.com/user/duo_agent_platform/code_suggestions/) | GitLab personal access token for the public Code Suggestions API. Configure a self-hosted base URL when not using gitlab.com. |
| `gitlawb` | `glb` | Gitlawb Opengateway (MiMo) | API key | [link](https://opengateway.gitlawb.com) | Free MiMo (xiaomi/mimo-v2.5) revoked 2026-05 — Opengateway is now a pay-as-you-go credit gateway; no recurring free model. |
| `gitlawb-gmi` | `glb-gmi` | Gitlawb Opengateway (GMI Cloud) | API key | [link](https://opengateway.gitlawb.com) | Free Nemotron promo ended 2026-06 — the GMI Cloud route is now pay-as-you-go credit only. |
Expand Down
2 changes: 2 additions & 0 deletions open-sse/config/providers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ import { tokenharborProvider } from "./registry/tokenharbor/index.ts";
import { twinmindProvider } from "./registry/twinmind/index.ts";
import { syntxProvider } from "./registry/syntx/index.ts";
import { daoxeProvider } from "./registry/daoxe/index.ts";
import { gisooProvider } from "./registry/gisoo/index.ts";
import { demonrouteProvider } from "./registry/demonroute/index.ts";

export const REGISTRY: Record<string, RegistryEntry> = {
Expand Down Expand Up @@ -587,5 +588,6 @@ export const REGISTRY: Record<string, RegistryEntry> = {
twinmind: twinmindProvider,
syntx: syntxProvider,
daoxe: daoxeProvider,
gisoo: gisooProvider,
demonroute: demonrouteProvider,
};
33 changes: 33 additions & 0 deletions open-sse/config/providers/registry/gisoo/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import type { RegistryEntry } from "../../shared.ts";
import { buildOpenAiCompatibleRegistryEntry } from "../../shared.ts";

/**
* Gisoo (https://gisoo.pro) — prepaid multi-model relay, OpenAI-compatible `/api/v1`.
*
* `GET https://gisoo.pro/api/v1/models` is public (no key) and lists the whole catalog with
* `type`, `context_length`, `max_output_tokens` and `capabilities`, so `modelsUrl` drives
* dashboard discovery and `passthroughModels` keeps every other id usable. Prepaid credit only:
* there is no free tier.
*
* Seed ids verified 2026-10-25 against that endpoint (all `type: "chat"`, `is_free: false`).
* Kept small on purpose — the live catalog also carries image, audio, video, music and
* embedding ids.
*/
export const gisooProvider: RegistryEntry = buildOpenAiCompatibleRegistryEntry({
id: "gisoo",
alias: "gisoo",
baseUrl: "https://gisoo.pro/api/v1/chat/completions",
modelsUrl: "https://gisoo.pro/api/v1/models",
models: [
{ id: "claude-opus-5-5", name: "Claude Opus 5.5" },
{ id: "claude-sonnet-5-5", name: "Claude Sonnet 5.5" },
{ id: "claude-haiku-5-5", name: "Claude Haiku 5.5" },
{ id: "gpt-5.6-sol", name: "GPT-5.6 Sol" },
{ id: "gpt-5.5", name: "GPT-5.5" },
{ id: "gemini-3.8-flash", name: "Gemini 3.8 Flash" },
{ id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro (Preview)" },
{ id: "deepseek-v4-pro", name: "DeepSeek V4 Pro" },
{ id: "deepseek-flash", name: "DeepSeek Flash" },
],
passthroughModels: true,
});
9 changes: 9 additions & 0 deletions public/providers/gisoo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/shared/constants/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ export const PROVIDER_ENDPOINTS = {
tokenmarket: "https://api.tokensmarket.ai/v1/chat/completions",
demonroute: "https://api.demonroute.com/v1/chat/completions",
daoxe: "https://api.daoxe.com/v1/chat/completions",
gisoo: "https://gisoo.pro/api/v1/chat/completions",
openai: "https://api.openai.com/v1/chat/completions",
anthropic: "https://api.anthropic.com/v1/messages",
gemini: "https://generativelanguage.googleapis.com/v1beta/models",
Expand Down
1 change: 1 addition & 0 deletions src/shared/constants/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ export const AGGREGATOR_PROVIDER_IDS = new Set([
"tokenharbor",
"demonroute",
"daoxe",
"gisoo",
]);

export const ENTERPRISE_CLOUD_PROVIDER_IDS = new Set([
Expand Down
15 changes: 15 additions & 0 deletions src/shared/constants/providers/apikey/gateways.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1631,4 +1631,19 @@ export const APIKEY_PROVIDERS_GATEWAYS = {
apiHint:
"Create an API token at https://daoxe.com/token, then paste it here as a Bearer token. OpenAI-compatible base URL: https://api.daoxe.com/v1.",
},
// Gisoo (https://gisoo.pro) — prepaid multi-model relay. OpenAI-compatible /api/v1;
// /api/v1/models is public, so models are discovered live. No free tier.
gisoo: {
id: "gisoo",
serviceKinds: ["llm"],
alias: "gisoo",
name: "Gisoo",
icon: "hub",
color: "#FFC700",
textIcon: "GS",
passthroughModels: true,
website: "https://gisoo.pro",
apiHint:
"Create an API key in your Gisoo account, then paste it here as a Bearer token. OpenAI-compatible base URL: https://gisoo.pro/api/v1. Prepaid credit; no free tier.",
},
};
23 changes: 23 additions & 0 deletions tests/snapshots/provider/translate-path.json
Original file line number Diff line number Diff line change
Expand Up @@ -2777,6 +2777,29 @@
"stream": "https://gigachat.devices.sberbank.ru/api/v1"
}
},
"gisoo": {
"format": "openai",
"headers": {
"apiKey": {
"Accept": "text/event-stream",
"Authorization": "Bearer <TOK>",
"Content-Type": "application/json"
},
"nonStream": {
"Authorization": "Bearer <TOK>",
"Content-Type": "application/json"
},
"oauth": {
"Accept": "text/event-stream",
"Authorization": "Bearer <TOK>",
"Content-Type": "application/json"
}
},
"url": {
"nonStream": "https://gisoo.pro/api/v1/chat/completions",
"stream": "https://gisoo.pro/api/v1/chat/completions"
}
},
"github": {
"format": "openai",
"headers": {
Expand Down
Loading