STOP WASTING PAID TOKENS. START POOLING ACCOUNTS TODAY. [ GET YOUR VAULT ]

Models & Routing

GET /api/gate/v1/models

List Models

List all available models across all providers, sorted by usage.

Models are dynamically fetched from provider APIs and cached. Usage data (tokens, requests) comes from the last 30 days.

Filters:

  • provider: Filter by provider name

  • free_only: Only free tier models

  • configured_only: Only models configured in SpiderGate routing

  • search: Search by model name or ID

  • sort_by: Sort order (usage, name, provider, context, cost)

  • capability: Filter by capability (chat, vision, function_calling)

SpiderGate Extensions: Each model includes spidergate_info with provider details, pricing, capabilities, configuration status, task aliases, and 30-day usage stats.

Parameters

  • provider (query, any, optional) — Filter by provider

  • free_only (query, boolean, optional) — Only show free tier models

  • configured_only (query, boolean, optional) — Only show configured models

  • search (query, any, optional) — Search model name or ID

  • sort_by (query, string, optional) — Sort: usage, name, provider, context, cost

  • capability (query, any, optional) — Filter by capability

  • limit (query, integer, optional) — Max results

  • offset (query, integer, optional) — Offset for pagination

curl -X GET 'https://spideriq.ai/api/gate/v1/models' \
  -H 'Authorization: Bearer <token>'
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/models",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/models", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/gate/v1/models", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

  • 200 — Successful Response

  • 422 — Validation Error

GET /api/gate/v1/models/{model_id}

Get Model

Get details for a specific model.

Parameters

  • model_id (path, string, required)

curl -X GET 'https://spideriq.ai/api/gate/v1/models/{model_id}' \
  -H 'Authorization: Bearer <token>'
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/models/{model_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/models/{model_id}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/gate/v1/models/{model_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

  • 200 — Successful Response

  • 404 — Model not found

  • 422 — Validation Error

GET /api/gate/v1/aliases

List Task Aliases

List all SpiderGate task aliases with their model chains and usage.

Task aliases like spideriq/coding or spideriq/extraction route to an ordered fallback chain of models. This endpoint shows which models each alias uses and 30-day usage statistics.

curl -X GET 'https://spideriq.ai/api/gate/v1/aliases' \
  -H 'Authorization: Bearer <token>'
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/aliases",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/aliases", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/gate/v1/aliases", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

  • 200 — Successful Response

GET /api/gate/v1/providers

List Providers

List all available providers, model counts, and key status.

curl -X GET 'https://spideriq.ai/api/gate/v1/providers' \
  -H 'Authorization: Bearer <token>'
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/providers",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/providers", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/gate/v1/providers", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

  • 200 — Successful Response

GET /api/gate/v1/health

Health Check

Check if the SpiderGate API is operational.

curl -X GET 'https://spideriq.ai/api/gate/v1/health' \
  -H 'Authorization: Bearer <token>'
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/health",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/health", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/gate/v1/health", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

  • 200 — Successful Response