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

Models & Routing

Base URL https://spideriq.ai/api/gate/v1
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 any query
Filter by provider
free_only boolean query
Only show free tier models
configured_only boolean query
Only show configured models
search any query
Search model name or ID
sort_by string query
Sort: usage, name, provider, context, cost
capability any query
Filter by capability
limit integer query
Max results
offset integer query
Offset for pagination
Responses
  • 200Successful Response
  • 422Validation Error
GET /api/gate/v1/models
curl -X GET 'https://spideriq.ai/api/gate/v1/models' \
  -H 'Authorization: Bearer '
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/models",
    headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/models", {
  method: "GET",
  headers: { "Authorization": "Bearer " }
});
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 ")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
GET /api/gate/v1/models/{model_id}

Get Model

Get details for a specific model.

Parameters
model_id string path required
Responses
  • 200Successful Response
  • 404Model not found
  • 422Validation Error
GET /api/gate/v1/models/{model_id}
curl -X GET 'https://spideriq.ai/api/gate/v1/models/{model_id}' \
  -H 'Authorization: Bearer '
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/models/{model_id}",
    headers={"Authorization": "Bearer "},
)
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 " }
});
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 ")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
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.

Responses
  • 200Successful Response
GET /api/gate/v1/aliases
curl -X GET 'https://spideriq.ai/api/gate/v1/aliases' \
  -H 'Authorization: Bearer '
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/aliases",
    headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/aliases", {
  method: "GET",
  headers: { "Authorization": "Bearer " }
});
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 ")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
GET /api/gate/v1/providers

List Providers

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

Responses
  • 200Successful Response
GET /api/gate/v1/providers
curl -X GET 'https://spideriq.ai/api/gate/v1/providers' \
  -H 'Authorization: Bearer '
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/providers",
    headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/providers", {
  method: "GET",
  headers: { "Authorization": "Bearer " }
});
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 ")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
GET /api/gate/v1/health

Health Check

Check if the SpiderGate API is operational.

Responses
  • 200Successful Response
GET /api/gate/v1/health
curl -X GET 'https://spideriq.ai/api/gate/v1/health' \
  -H 'Authorization: Bearer '
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/gate/v1/health",
    headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://spideriq.ai/api/gate/v1/health", {
  method: "GET",
  headers: { "Authorization": "Bearer " }
});
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 ")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}