CtrlK
BlogDocsLog inGet started
Tessl Logo

omni-providers

Manage provider connections, API keys, OAuth flows, and connection tests via the REST API. List, add, update, remove, and test AI provider integrations across OmniRoute's 327-provider catalog.

53

Quality

60%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/omni-providers/SKILL.md
SKILL.md
Quality
Evals
Security

Overview

Manage provider connections, API keys, OAuth flows, and connection tests via the REST API. List, add, update, remove, and test AI provider integrations across OmniRoute's 327-provider catalog.

Authentication

All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE_API_KEY=false for local development.

Endpoints

GET /api/providers

List provider connections

curl https://localhost:20128/api/providers \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers

Create provider connection

curl -X POST https://localhost:20128/api/providers \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/{id}

Get provider connection

curl https://localhost:20128/api/providers/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

PATCH /api/providers/{id}

Update provider connection

curl -X PATCH https://localhost:20128/api/providers/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

DELETE /api/providers/{id}

Delete provider connection

curl -X DELETE https://localhost:20128/api/providers/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/{id}/test

Test provider connection

curl -X POST https://localhost:20128/api/providers/{id}/test \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/{id}/models

List models for a provider

curl https://localhost:20128/api/providers/{id}/models \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/providers/cursor/agent-availability

Check cursor-agent availability

Credential-free, informational check for whether cursor-agent is installed and authenticated on this host — backs the dashboard's dismissible install-nudge banner. Returns only cursorAgentAvailable (boolean); never tokens or machineId.

curl https://localhost:20128/api/providers/cursor/agent-availability \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/test-batch

Test multiple providers at once

curl -X POST https://localhost:20128/api/providers/test-batch \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/validate

Validate provider credentials

curl -X POST https://localhost:20128/api/providers/validate \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/client

Get client-side provider info

curl https://localhost:20128/api/providers/client \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/agy-auth/import

Import an Antigravity CLI (agy) token file as an agy connection

curl -X POST https://localhost:20128/api/providers/agy-auth/import \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/agy-auth/import-bulk

Bulk-import multiple Antigravity CLI (agy) token files (up to 50)

curl -X POST https://localhost:20128/api/providers/agy-auth/import-bulk \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/agy-auth/zip-extract

Extract .json token files from an uploaded ZIP for agy bulk import

curl -X POST https://localhost:20128/api/providers/agy-auth/zip-extract \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/agy-auth/apply-local

Auto-detect and import the local Antigravity CLI (agy) login from disk

curl -X POST https://localhost:20128/api/providers/agy-auth/apply-local \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/provider-nodes

List provider nodes

curl https://localhost:20128/api/provider-nodes \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/provider-nodes

Create provider node

curl -X POST https://localhost:20128/api/provider-nodes \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

PATCH /api/provider-nodes/{id}

Update provider node

curl -X PATCH https://localhost:20128/api/provider-nodes/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

DELETE /api/provider-nodes/{id}

Delete provider node

curl -X DELETE https://localhost:20128/api/provider-nodes/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/provider-nodes/validate

Validate a provider node

curl -X POST https://localhost:20128/api/provider-nodes/validate \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/provider-models

List provider models

curl https://localhost:20128/api/provider-models \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/providers/{id}/cc-alias

GET providers › › cc alias

curl https://localhost:20128/api/providers/{id}/cc-alias \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

PUT /api/providers/{id}/cc-alias

PUT providers › › cc alias

curl -X PUT https://localhost:20128/api/providers/{id}/cc-alias \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/{id}/chatgpt-web-codex-doctor

GET providers › › chatgpt web codex doctor

curl https://localhost:20128/api/providers/{id}/chatgpt-web-codex-doctor \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/{id}/claude-auth/apply-local

POST providers › › claude auth › apply local

curl -X POST https://localhost:20128/api/providers/{id}/claude-auth/apply-local \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/{id}/claude-auth/export

POST providers › › claude auth › export

curl -X POST https://localhost:20128/api/providers/{id}/claude-auth/export \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/{id}/codex-auth/apply-local

POST providers › › codex auth › apply local

curl -X POST https://localhost:20128/api/providers/{id}/codex-auth/apply-local \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/{id}/codex-auth/export

POST providers › › codex auth › export

curl -X POST https://localhost:20128/api/providers/{id}/codex-auth/export \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/{id}/interception-rules

GET providers › › interception rules

curl https://localhost:20128/api/providers/{id}/interception-rules \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

PUT /api/providers/{id}/interception-rules

PUT providers › › interception rules

curl -X PUT https://localhost:20128/api/providers/{id}/interception-rules \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

DELETE /api/providers/{id}/interception-rules

DELETE providers › › interception rules

curl -X DELETE https://localhost:20128/api/providers/{id}/interception-rules \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/{id}/login

POST providers › › login

curl -X POST https://localhost:20128/api/providers/{id}/login \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/{id}/param-filters

GET providers › › param filters

curl https://localhost:20128/api/providers/{id}/param-filters \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

PUT /api/providers/{id}/param-filters

PUT providers › › param filters

curl -X PUT https://localhost:20128/api/providers/{id}/param-filters \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

DELETE /api/providers/{id}/param-filters

DELETE providers › › param filters

curl -X DELETE https://localhost:20128/api/providers/{id}/param-filters \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/{id}/refresh

POST providers › › refresh

curl -X POST https://localhost:20128/api/providers/{id}/refresh \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/{id}/refresh-cursor

POST providers › › refresh cursor

curl -X POST https://localhost:20128/api/providers/{id}/refresh-cursor \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/{id}/refresh-token

POST providers › › refresh token

curl -X POST https://localhost:20128/api/providers/{id}/refresh-token \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/{id}/sync-models

POST providers › › sync models

curl -X POST https://localhost:20128/api/providers/{id}/sync-models \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/bulk

POST providers › bulk

curl -X POST https://localhost:20128/api/providers/bulk \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/bulk-web-session

POST providers › bulk web session

curl -X POST https://localhost:20128/api/providers/bulk-web-session \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/claude-auth/import

POST providers › claude auth › import

curl -X POST https://localhost:20128/api/providers/claude-auth/import \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/claude-auth/import-bulk

POST providers › claude auth › import bulk

curl -X POST https://localhost:20128/api/providers/claude-auth/import-bulk \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/claude-auth/zip-extract

POST providers › claude auth › zip extract

curl -X POST https://localhost:20128/api/providers/claude-auth/zip-extract \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/codex-auth/import

POST providers › codex auth › import

curl -X POST https://localhost:20128/api/providers/codex-auth/import \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/codex-auth/import-bulk

POST providers › codex auth › import bulk

curl -X POST https://localhost:20128/api/providers/codex-auth/import-bulk \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/codex-auth/zip-extract

POST providers › codex auth › zip extract

curl -X POST https://localhost:20128/api/providers/codex-auth/zip-extract \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/command-code/auth/apply

POST providers › command code › auth › apply

curl -X POST https://localhost:20128/api/providers/command-code/auth/apply \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/command-code/auth/callback

POST providers › command code › auth › callback

curl -X POST https://localhost:20128/api/providers/command-code/auth/callback \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/command-code/auth/start

POST providers › command code › auth › start

curl -X POST https://localhost:20128/api/providers/command-code/auth/start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/command-code/auth/status

GET providers › command code › auth › status

curl https://localhost:20128/api/providers/command-code/auth/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/command-code/auth/status

POST providers › command code › auth › status

curl -X POST https://localhost:20128/api/providers/command-code/auth/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/expiration

GET providers › expiration

curl https://localhost:20128/api/providers/expiration \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/providers/free-onboarding

GET providers › free onboarding

curl https://localhost:20128/api/providers/free-onboarding \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/free-onboarding

POST providers › free onboarding

curl -X POST https://localhost:20128/api/providers/free-onboarding \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/health-autopilot

GET providers › health autopilot

curl https://localhost:20128/api/providers/health-autopilot \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/health-autopilot/actions

POST providers › health autopilot › actions

curl -X POST https://localhost:20128/api/providers/health-autopilot/actions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/health-matrix

GET providers › health matrix

curl https://localhost:20128/api/providers/health-matrix \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/import

POST providers › import

curl -X POST https://localhost:20128/api/providers/import \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/openrouter-stats

GET providers › openrouter stats

curl https://localhost:20128/api/providers/openrouter-stats \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/providers/quota-windows

GET providers › quota windows

curl https://localhost:20128/api/providers/quota-windows \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/volcengine-plan/connect

POST providers › volcengine plan › connect

curl -X POST https://localhost:20128/api/providers/volcengine-plan/connect \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/volcengine-plan/connect/{sessionId}/cancel

POST providers › volcengine plan › connect › › cancel

curl -X POST https://localhost:20128/api/providers/volcengine-plan/connect/{sessionId}/cancel \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/volcengine-plan/connect/{sessionId}/code

POST providers › volcengine plan › connect › › code

curl -X POST https://localhost:20128/api/providers/volcengine-plan/connect/{sessionId}/code \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/volcengine-plan/connect/{sessionId}/identity

POST providers › volcengine plan › connect › › identity

curl -X POST https://localhost:20128/api/providers/volcengine-plan/connect/{sessionId}/identity \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/volcengine-plan/connect/{sessionId}/resend

POST providers › volcengine plan › connect › › resend

curl -X POST https://localhost:20128/api/providers/volcengine-plan/connect/{sessionId}/resend \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/providers/volcengine-plan/connect/{sessionId}/status

GET providers › volcengine plan › connect › › status

curl https://localhost:20128/api/providers/volcengine-plan/connect/{sessionId}/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/providers/web-session-contract

GET providers › web session contract

curl https://localhost:20128/api/providers/web-session-contract \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/providers/zed/discover

POST providers › zed › discover

curl -X POST https://localhost:20128/api/providers/zed/discover \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/zed/import

POST providers › zed › import

curl -X POST https://localhost:20128/api/providers/zed/import \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/providers/zed/manual-import

POST providers › zed › manual import

curl -X POST https://localhost:20128/api/providers/zed/manual-import \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Payloads

See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.

Additional endpoints

POST /api/providers/{id}/refresh

Rotate / refresh OAuth tokens or re-validate credentials for a provider connection. Useful after token expiration or when credentials need to be renewed without deleting the connection.

curl -X POST https://localhost:20128/api/providers/{id}/refresh \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/provider-metrics

Retrieve aggregated usage and performance metrics for all provider connections (request counts, error rates, latency percentiles, token usage). Used by dashboards and Auto-Combo scoring.

curl https://localhost:20128/api/provider-metrics \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

Response example:

{
  "providers": [
    {
      "id": "my-openai",
      "requestCount": 1240,
      "errorRate": 0.02,
      "p50LatencyMs": 340,
      "p99LatencyMs": 1200,
      "tokensIn": 500000,
      "tokensOut": 250000
    }
  ]
}

GET /api/providers/health-matrix

Returns a health-matrix view of all providers with per-connection status, circuit-breaker state, and cooldown expiry. Useful for debugging routing decisions.

curl https://localhost:20128/api/providers/health-matrix \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Repository
diegosouzapw/OmniRoute
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.