diff --git a/pkg/providers/definitions/ai21.yaml b/pkg/providers/definitions/ai21.yaml index 95fe921..5232738 100644 --- a/pkg/providers/definitions/ai21.yaml +++ b/pkg/providers/definitions/ai21.yaml @@ -17,6 +17,7 @@ verify: method: GET url: https://api.ai21.com/studio/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] diff --git a/pkg/providers/definitions/anthropic.yaml b/pkg/providers/definitions/anthropic.yaml index 9dfafe1..db9bd1c 100644 --- a/pkg/providers/definitions/anthropic.yaml +++ b/pkg/providers/definitions/anthropic.yaml @@ -15,10 +15,16 @@ patterns: entropy_min: 3.5 confidence: high verify: - method: GET - url: https://api.anthropic.com/v1/models + method: POST + url: https://api.anthropic.com/v1/messages headers: - x-api-key: "{KEY}" + x-api-key: "{{KEY}}" anthropic-version: "2023-06-01" - valid_status: [200] - invalid_status: [401, 403] + content-type: "application/json" + body: '{"model":"claude-haiku-4-5","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}' + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429, 529] + metadata_paths: + model: "model" + stop_reason: "stop_reason" diff --git a/pkg/providers/definitions/cohere.yaml b/pkg/providers/definitions/cohere.yaml index 86f2fdc..f0b2424 100644 --- a/pkg/providers/definitions/cohere.yaml +++ b/pkg/providers/definitions/cohere.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.cohere.ai/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "models.0.name" diff --git a/pkg/providers/definitions/deepseek.yaml b/pkg/providers/definitions/deepseek.yaml index 030c053..9a4717f 100644 --- a/pkg/providers/definitions/deepseek.yaml +++ b/pkg/providers/definitions/deepseek.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.deepseek.com/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" diff --git a/pkg/providers/definitions/google-ai.yaml b/pkg/providers/definitions/google-ai.yaml index 7430a24..2c6c967 100644 --- a/pkg/providers/definitions/google-ai.yaml +++ b/pkg/providers/definitions/google-ai.yaml @@ -14,7 +14,9 @@ patterns: confidence: high verify: method: GET - url: https://generativelanguage.googleapis.com/v1/models?key={KEY} - headers: {} - valid_status: [200] - invalid_status: [400, 401, 403] + url: https://generativelanguage.googleapis.com/v1/models?key={{KEY}} + success_codes: [200] + failure_codes: [400, 401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "models.0.name" diff --git a/pkg/providers/definitions/groq.yaml b/pkg/providers/definitions/groq.yaml index d7b92be..de1a01e 100644 --- a/pkg/providers/definitions/groq.yaml +++ b/pkg/providers/definitions/groq.yaml @@ -16,6 +16,9 @@ verify: method: GET url: https://api.groq.com/openai/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" diff --git a/pkg/providers/definitions/inflection.yaml b/pkg/providers/definitions/inflection.yaml index 45632dc..18d124a 100644 --- a/pkg/providers/definitions/inflection.yaml +++ b/pkg/providers/definitions/inflection.yaml @@ -16,6 +16,6 @@ patterns: verify: method: GET url: "" - headers: {} - valid_status: [] - invalid_status: [] + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] diff --git a/pkg/providers/definitions/mistral.yaml b/pkg/providers/definitions/mistral.yaml index c8a5ce7..6e11762 100644 --- a/pkg/providers/definitions/mistral.yaml +++ b/pkg/providers/definitions/mistral.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.mistral.ai/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" diff --git a/pkg/providers/definitions/openai.yaml b/pkg/providers/definitions/openai.yaml index ece065b..5b3ea04 100644 --- a/pkg/providers/definitions/openai.yaml +++ b/pkg/providers/definitions/openai.yaml @@ -23,6 +23,10 @@ verify: method: GET url: https://api.openai.com/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" + object_type: "object" diff --git a/pkg/providers/definitions/perplexity.yaml b/pkg/providers/definitions/perplexity.yaml index 413daae..f28e8d1 100644 --- a/pkg/providers/definitions/perplexity.yaml +++ b/pkg/providers/definitions/perplexity.yaml @@ -16,6 +16,9 @@ verify: method: POST url: https://api.perplexity.ai/chat/completions headers: - Authorization: "Bearer {KEY}" - valid_status: [200, 400] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + content-type: "application/json" + body: '{"model":"sonar","messages":[{"role":"user","content":"hi"}],"max_tokens":1}' + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] diff --git a/pkg/providers/definitions/together.yaml b/pkg/providers/definitions/together.yaml index b488998..2acf5a3 100644 --- a/pkg/providers/definitions/together.yaml +++ b/pkg/providers/definitions/together.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.together.xyz/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "0.id" diff --git a/pkg/providers/definitions/xai.yaml b/pkg/providers/definitions/xai.yaml index be7df89..a8fd2d6 100644 --- a/pkg/providers/definitions/xai.yaml +++ b/pkg/providers/definitions/xai.yaml @@ -15,6 +15,10 @@ verify: method: GET url: https://api.x.ai/v1/api-key headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + name: "name" + acls: "acls" diff --git a/providers/ai21.yaml b/providers/ai21.yaml index 95fe921..5232738 100644 --- a/providers/ai21.yaml +++ b/providers/ai21.yaml @@ -17,6 +17,7 @@ verify: method: GET url: https://api.ai21.com/studio/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] diff --git a/providers/anthropic.yaml b/providers/anthropic.yaml index 9dfafe1..db9bd1c 100644 --- a/providers/anthropic.yaml +++ b/providers/anthropic.yaml @@ -15,10 +15,16 @@ patterns: entropy_min: 3.5 confidence: high verify: - method: GET - url: https://api.anthropic.com/v1/models + method: POST + url: https://api.anthropic.com/v1/messages headers: - x-api-key: "{KEY}" + x-api-key: "{{KEY}}" anthropic-version: "2023-06-01" - valid_status: [200] - invalid_status: [401, 403] + content-type: "application/json" + body: '{"model":"claude-haiku-4-5","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}' + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429, 529] + metadata_paths: + model: "model" + stop_reason: "stop_reason" diff --git a/providers/cohere.yaml b/providers/cohere.yaml index 86f2fdc..f0b2424 100644 --- a/providers/cohere.yaml +++ b/providers/cohere.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.cohere.ai/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "models.0.name" diff --git a/providers/deepseek.yaml b/providers/deepseek.yaml index 030c053..9a4717f 100644 --- a/providers/deepseek.yaml +++ b/providers/deepseek.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.deepseek.com/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" diff --git a/providers/google-ai.yaml b/providers/google-ai.yaml index 7430a24..2c6c967 100644 --- a/providers/google-ai.yaml +++ b/providers/google-ai.yaml @@ -14,7 +14,9 @@ patterns: confidence: high verify: method: GET - url: https://generativelanguage.googleapis.com/v1/models?key={KEY} - headers: {} - valid_status: [200] - invalid_status: [400, 401, 403] + url: https://generativelanguage.googleapis.com/v1/models?key={{KEY}} + success_codes: [200] + failure_codes: [400, 401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "models.0.name" diff --git a/providers/groq.yaml b/providers/groq.yaml index d7b92be..de1a01e 100644 --- a/providers/groq.yaml +++ b/providers/groq.yaml @@ -16,6 +16,9 @@ verify: method: GET url: https://api.groq.com/openai/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" diff --git a/providers/inflection.yaml b/providers/inflection.yaml index 45632dc..18d124a 100644 --- a/providers/inflection.yaml +++ b/providers/inflection.yaml @@ -16,6 +16,6 @@ patterns: verify: method: GET url: "" - headers: {} - valid_status: [] - invalid_status: [] + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] diff --git a/providers/mistral.yaml b/providers/mistral.yaml index c8a5ce7..6e11762 100644 --- a/providers/mistral.yaml +++ b/providers/mistral.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.mistral.ai/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" diff --git a/providers/openai.yaml b/providers/openai.yaml index ece065b..5b3ea04 100644 --- a/providers/openai.yaml +++ b/providers/openai.yaml @@ -23,6 +23,10 @@ verify: method: GET url: https://api.openai.com/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "data.0.id" + object_type: "object" diff --git a/providers/perplexity.yaml b/providers/perplexity.yaml index 413daae..f28e8d1 100644 --- a/providers/perplexity.yaml +++ b/providers/perplexity.yaml @@ -16,6 +16,9 @@ verify: method: POST url: https://api.perplexity.ai/chat/completions headers: - Authorization: "Bearer {KEY}" - valid_status: [200, 400] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + content-type: "application/json" + body: '{"model":"sonar","messages":[{"role":"user","content":"hi"}],"max_tokens":1}' + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] diff --git a/providers/together.yaml b/providers/together.yaml index b488998..2acf5a3 100644 --- a/providers/together.yaml +++ b/providers/together.yaml @@ -17,6 +17,9 @@ verify: method: GET url: https://api.together.xyz/v1/models headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + first_model: "0.id" diff --git a/providers/xai.yaml b/providers/xai.yaml index be7df89..a8fd2d6 100644 --- a/providers/xai.yaml +++ b/providers/xai.yaml @@ -15,6 +15,10 @@ verify: method: GET url: https://api.x.ai/v1/api-key headers: - Authorization: "Bearer {KEY}" - valid_status: [200] - invalid_status: [401, 403] + Authorization: "Bearer {{KEY}}" + success_codes: [200] + failure_codes: [401, 403] + rate_limit_codes: [429] + metadata_paths: + name: "name" + acls: "acls"