Model Management

Query available AI models and their capabilities across all supported providers.

List Models

Returns the list of available AI models across all providers (Claude, Groq, vLLM).

Endpoint: https://apis.threatwinds.com/api/ai/v1/models

Method: GET

Parameters

Headers

Header Type Required Description
Authorization string Optional* Bearer token for session authentication
api-key string Optional* API key for key-based authentication
api-secret string Optional* API secret for key-based authentication

Note: You must use either Authorization header OR API key/secret combination.

Request

To list all available models, use a GET request:

curl -X 'GET' \
  'https://apis.threatwinds.com/api/ai/v1/models' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <token>'

Or using API key and secret:

curl -X 'GET' \
  'https://apis.threatwinds.com/api/ai/v1/models' \
  -H 'accept: application/json' \
  -H 'api-key: your-api-key' \
  -H 'api-secret: your-api-secret'

Response

A successful response will return all available models across all providers.

Success Response (200 OK)

{
  "object": "list",
  "data": [
    {
      "id": "claude-sonnet-4",
      "object": "model",
      "name": "Claude Sonnet 4.5",
      "provider": "claude",
      "owned_by": "Anthropic PBC",
      "created": 2025,
      "capabilities": [
        "chat",
        "tools-use",
        "reasoning",
        "code-generation",
        "image"
      ],
      "limits": {
        "max_input_tokens": 64000,
        "max_completion_tokens": 64000,
        "max_total_tokens": 128000
      }
    },
    {
      "id": "claude-opus-4",
      "object": "model",
      "name": "Claude Opus 4.5",
      "provider": "claude",
      "owned_by": "Anthropic PBC",
      "created": 2025,
      "capabilities": [
        "chat",
        "tools-use",
        "reasoning",
        "code-generation",
        "image"
      ],
      "limits": {
        "max_input_tokens": 32000,
        "max_completion_tokens": 32000,
        "max_total_tokens": 64000
      }
    },
    {
      "id": "gpt-oss-20b",
      "object": "model",
      "name": "GPT OSS 20B",
      "provider": "groq",
      "owned_by": "OpenAI",
      "created": 2025,
      "capabilities": [
        "chat",
        "code-generation",
        "tools-use",
        "reasoning"
      ],
      "limits": {
        "max_input_tokens": 131072,
        "max_completion_tokens": 65536,
        "max_total_tokens": 196608
      }
    }
  ]
}

Response Schema

Field Type Description
object string Response type, always “list”
data array List of model details
data[].id string Model unique identifier
data[].object string Object type, always “model”
data[].name string Human-readable model name
data[].provider string Provider identifier: claude, groq, vllm
data[].owned_by string Organization that owns the model
data[].created integer Year of model release
data[].capabilities array List of model capabilities
data[].limits object Token limit information
limits.max_input_tokens integer Maximum input tokens
limits.max_completion_tokens integer Maximum completion tokens
limits.max_total_tokens integer Maximum total tokens (input + completion)

Model Capabilities

Capability Description
chat Text-based conversation
text-generation General text generation
code-generation Code generation and completion
tools-use Function/tool calling support
reasoning Extended reasoning capabilities
image Image understanding (vision)
audio Audio processing
video Video processing

Business Logic

  • Retrieves models from in-memory provider registry
  • Models aggregated across all registered providers
  • No database queries - data from provider configuration
  • Model list may change as providers update their offerings

Error Codes

Status Code Description Possible Cause
200 OK Request successful
400 Bad Request Invalid request
401 Unauthorized Missing or invalid authentication
403 Forbidden Insufficient permissions

Get Model Details

Returns detailed information about a specific model.

Endpoint: https://apis.threatwinds.com/api/ai/v1/models/{id}

Method: GET

Parameters

Headers

Header Type Required Description
Authorization string Optional* Bearer token for session authentication
api-key string Optional* API key for key-based authentication
api-secret string Optional* API secret for key-based authentication

Note: You must use either Authorization header OR API key/secret combination.

Path Parameters

Parameter Type Required Description Example
id string Yes Model identifier claude-sonnet-4

Request

To get details for a specific model, use a GET request:

curl -X 'GET' \
  'https://apis.threatwinds.com/api/ai/v1/models/claude-sonnet-4' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <token>'

Or using API key and secret:

curl -X 'GET' \
  'https://apis.threatwinds.com/api/ai/v1/models/silas-1.0' \
  -H 'accept: application/json' \
  -H 'api-key: your-api-key' \
  -H 'api-secret: your-api-secret'

Response

Success Response (200 OK)

{
  "id": "claude-sonnet-4",
  "object": "model",
  "name": "Claude Sonnet 4.5",
  "provider": "claude",
  "owned_by": "Anthropic PBC",
  "created": 2025,
  "capabilities": [
    "chat",
    "tools-use",
    "reasoning",
    "code-generation",
    "image"
  ],
  "limits": {
    "max_input_tokens": 64000,
    "max_completion_tokens": 64000,
    "max_total_tokens": 128000
  }
}

Response Schema

Field Type Description
id string Model unique identifier
object string Object type, always “model”
name string Human-readable model name
provider string Provider identifier
owned_by string Organization that owns the model
created integer Year of model release
capabilities array List of model capabilities
limits object Token limit information
limits.max_input_tokens integer Maximum input tokens accepted
limits.max_completion_tokens integer Maximum tokens model can generate
limits.max_total_tokens integer Maximum combined tokens

Business Logic

  • Retrieves model by ID from provider registry
  • Returns 404 if model ID doesn’t exist
  • No database queries - data from provider configuration

Error Codes

Status Code Description Possible Cause
200 OK Model found and returned
404 Not Found Model not found
400 Bad Request Invalid request
401 Unauthorized Missing or invalid authentication
403 Forbidden Insufficient permissions

Available Models

Claude Models (Anthropic)

Model ID Name Max Input Max Output Capabilities
claude-sonnet-4 Claude Sonnet 4.5 64,000 64,000 Chat, tools, reasoning, code-generation, image
claude-opus-4 Claude Opus 4.5 32,000 32,000 Chat, tools, reasoning, code-generation, image
claude-haiku-4 Claude Haiku 4.5 64,000 64,000 Chat, tools, image

Internal Mappings:

  • claude-sonnet-4claude-sonnet-4-5-20250929
  • claude-opus-4claude-opus-4-1-20250805
  • claude-haiku-4claude-haiku-4-5

Best For:

  • Sonnet 4.5: Balanced performance with extended reasoning support, largest context (64K)
  • Opus 4.5: Highest quality reasoning and complex problem-solving (32K context)
  • Haiku 4.5: Fast responses for simple tasks, cost-effective (no reasoning)

Groq Models

Model ID Name Max Input Max Output Capabilities
gpt-oss-20b GPT OSS 20B 131,072 65,536 Chat, code, tools, reasoning
gpt-oss-120b GPT OSS 120B 131,072 65,536 Chat, code, tools, reasoning
qwen3-32b Qwen 3 32B 131,072 40,960 Chat, code, tools, reasoning*
llama4-maverick LLaMA 4 Maverick 17B 131,072 8,192 Chat, code, tools
llama4-scout LLaMA 4 Scout 17B 131,072 8,192 Chat, code, tools

Internal Mappings:

  • gpt-oss-20bopenai/gpt-oss-20b
  • gpt-oss-120bopenai/gpt-oss-120b
  • qwen3-32bqwen/qwen3-32b
  • llama4-maverickmeta-llama/llama-4-maverick-17b-128e-instruct
  • llama4-scoutmeta-llama/llama-4-scout-17b-16e-instruct

Best For:

  • Extremely fast inference (optimized hardware)
  • Real-time applications
  • Cost-effective at scale
  • Large context windows (131K tokens)

Special Notes:

  • *qwen3-32b: reasoning_effort is accepted but always treated as “default” internally
  • Token counting not supported for Groq models

vLLM Models (ThreatWinds)

Model ID Name Max Input Max Output Capabilities
silas-1.0 Silas 1.0 100,000 65,536 Chat, tools, code-generation

Best For:

  • Cybersecurity-focused tasks
  • Threat intelligence analysis
  • Penetration testing assistance
  • Security operations

Special Notes:

  • Silas is a specialized cybersecurity AI assistant developed by ThreatWinds
  • Optimized for offensive security and threat intelligence tasks
  • Token counting supported via vLLM tokenization

Choosing the Right Model

By Use Case

Use Case Recommended Models
Simple Q&A Claude Haiku, Groq models
Complex Reasoning Claude Opus, Claude Sonnet
Code Generation Claude Sonnet, Silas
Long Context Groq models (131K), Claude models (64K)
Vision Tasks Claude Sonnet, Claude Opus, Claude Haiku
Real-time Chat Groq models, Claude Haiku
Tool/Function Calling Claude Sonnet, Claude Opus
Cybersecurity Silas, Claude Sonnet

By Performance Priority

Priority Models
Speed Groq (LLaMA, GPT OSS), Claude Haiku
Quality Claude Opus, Claude Sonnet
Cost Claude Haiku, Groq models
Context Length Groq (131K), Claude (64K)
Cybersecurity Expertise Silas

By Provider Strengths

Provider Strengths
Claude (Anthropic) Instruction following, safety, reasoning, vision
Groq Ultra-fast inference, low latency, large context
vLLM (ThreatWinds) Cybersecurity specialization, pentesting support

Example: Filtering Models

List Only Claude Models

curl -X 'GET' 'https://apis.threatwinds.com/api/ai/v1/models' \
  -H 'Authorization: Bearer <token>' | \
  jq '.data[] | select(.provider == "claude")'

Find Models with Vision

curl -X 'GET' 'https://apis.threatwinds.com/api/ai/v1/models' \
  -H 'Authorization: Bearer <token>' | \
  jq '.data[] | select(.capabilities | contains(["image"]))'

Find Models with Large Context

curl -X 'GET' 'https://apis.threatwinds.com/api/ai/v1/models' \
  -H 'Authorization: Bearer <token>' | \
  jq '.data[] | select(.limits.max_input_tokens > 100000)'

Find Models with Tool Support

curl -X 'GET' 'https://apis.threatwinds.com/api/ai/v1/models' \
  -H 'Authorization: Bearer <token>' | \
  jq '.data[] | select(.capabilities | contains(["tools-use"]))'

Model Selection Best Practices

  1. Check Token Limits: Ensure model supports your required context length
  2. Verify Capabilities: Confirm model has required features (vision, tools, etc.)
  3. Consider Cost: Balance quality needs with token costs
  4. Test Multiple Models: Compare results across models for your use case
  5. Monitor Performance: Track response times and quality metrics
  6. Stay Updated: Model list changes as providers release new versions
  7. Match Expertise: Use specialized models (like Silas) for domain-specific tasks