agentsclimarketplace

Oatda list models

Skill devcsde/oatda-openclaw-skills/skills/oatda-list-models

OpenClaw skills for OATDA's unified LLM API gateway — text, vision, image, video, audio (TTS/STT/translation). 10+ providers, 100+ models, 1 API key.

Install
npx -y skills add devcsde/oatda-openclaw-skills --skill oatda-list-models

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

List and filter AI models from OATDA's unified gateway — ChatGPT/GPT-5, Claude Sonnet 4.5, Gemini 3, Grok 4, Qwen3, Kimi K2.7, GLM-5, and 100+ more across 10+ providers. Triggers when the user wants to see available models, pick the right LLM for a task, discover provider-specific parameters for image/video/audio generation, or filter by capability (chat/image/video/audio/vision) and provider. Ideal for model discovery, pricing comparison, and capability lookup before calling other OATDA skills.

SKILL.md

6.3 KB, as published. Nobody here has run it

OATDA List Models

List all available AI models from OATDA's providers with optional filtering.

API Key Resolution

All commands need the OATDA API key. Resolve it inline for each exec call:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}"

If the key is empty or null, tell the user to get one at https://oatda.com and configure it.

Security: Never print the full API key. Only verify existence or show first 8 chars.

API Calls

All requests are GET. Add query parameters to filter.

List all models

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X GET "https://oatda.com/api/v1/llm/models" \
  -H "Authorization: Bearer $OATDA_API_KEY"

Filter by type

  • ?type=chat — Text/chat models
  • ?type=image — Image generation models
  • ?type=video — Video generation models
  • ?type=audio — Speech, transcription, and translation models

Filter by provider

  • ?provider=openai
  • ?provider=anthropic
  • ?provider=google
  • ?provider=bytedance
  • ?provider=deepseek
  • etc.

Combine filters

curl -s -X GET "https://oatda.com/api/v1/llm/models?type=image&provider=openai" \
  -H "Authorization: Bearer $OATDA_API_KEY"

Discover model-specific parameters

Image, video, and audio models include supported_params describing model-specific options:

# Image model params
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=image" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.image_models[] | {id, supported_params}'

# Video model params
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=video" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.video_models[] | {id, supported_params}'

# Specific provider's video params
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=video&provider=bytedance" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.video_models[] | select(.model | contains("seedance")) | .supported_params'

# Audio model params
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=audio" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.audio_models[] | {id, supported_params}'

Response Format

{
  "total": 42,
  "filter": {"type": "all", "provider": null},
  "chatModels": [
    {"id": "provider/model-name", "provider": "...", "model": "...", "displayName": "..."}
  ],
  "imageModels": [
    {
      "id": "provider/model-name",
      "provider": "...",
      "model": "...",
      "displayName": "...",
      "supported_params": {
        "style": {"type": "string", "values": ["vivid", "natural"], "default": "vivid"}
      }
    }
  ],
  "videoModels": [
    {
      "id": "provider/model-name",
      "provider": "...",
      "model": "...",
      "displayName": "...",
      "supported_params": {
        "ratio": {"type": "string", "values": ["16:9", "9:16", "1:1"], "default": "16:9"},
        "duration": {"type": "string", "values": ["5", "10"], "default": "5"},
        "generate_audio": {"type": "boolean", "default": false, "optional": true},
        "first_frame_image": {"type": "file", "accept": "image/*", "optional": true}
      }
    }
  ],
  "audio_models": [
    {
      "id": "provider/model-name",
      "provider": "...",
      "model_name": "...",
      "display_name": "...",
      "supported_params": {
        "audio_modes": ["tts", "transcription", "translation"],
        "voice": {"type": "string", "values": ["alloy", "nova", "shimmer"]},
        "response_format": {"type": "string", "values": ["mp3", "wav", "json", "srt", "vtt"]}
      }
    }
  ]
}

Understanding supported_params

Each parameter has:

  • type: string, number, boolean, or file
  • values: Allowed values for enums
  • default: Default value
  • description: What it does
  • optional: Whether required
  • accept: For file types — accepted MIME types (e.g., "image/*")
  • min / max: Range constraints for numbers

File-type params (e.g., mask, first_frame_image, last_frame_image) require public HTTPS URLs, not local paths.

Audio modes: Audio models may support one or more modes such as tts, transcription, and translation. Use that to choose the right workflow:

  • ttsoatda-generate-speech
  • transcriptionoatda-transcribe-audio
  • translationoatda-translate-audio

Presenting Results

Format models by category. Use the actual data returned by the API — do not hardcode model names.

Chat Models (N total):

  • provider/model-name — Display Name

Image Models (N total):

  • provider/model-name — Display Name

Video Models (N total):

  • provider/model-name — Display Name

Audio Models (N total):

  • provider/model-name — Display Name

Error Handling

HTTP StatusMeaningAction
401Invalid API keyTell user to check their key
429Rate limitedWait and retry

Notes

  • This is a GET request — no request body
  • The id field (e.g., openai/gpt-4o) is the model identifier used in other OATDA skills
  • Use supported_params to discover model-specific parameters before generating
  • For file-type params, provide publicly accessible URLs
  • Audio models may expose audio_modes, supported voices, and output formats
  • Related skills: oatda-text-completion, oatda-generate-image, oatda-generate-video, oatda-generate-speech, oatda-transcribe-audio, oatda-translate-audio, oatda-vision-analysis

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.