Pomelo

Models API

The Models API provides information about available AI models, their capabilities, and pricing.

Base URLs

  • GET /api/v1/models - List all available models
  • GET /api/v1/models/{model_id} - Get specific model information
  • GET /api/v1/models/pricing - Get pricing information for all models

Authentication

Requires a valid API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

List Available Models

Retrieve a list of all available AI models.

Request

GET /api/v1/models

Response

{
  "object": "list",
  "data": [
    {
      "id": "gpt-4",
      "object": "model",
      "created": 1677649963,
      "owned_by": "openai",
      "provider": "openai",
      "service_type": "text-generation",
      "context_length": 8192,
      "capabilities": ["text-generation", "chat", "function-calling"],
      "pricing": {
        "input_tokens": 0.03,
        "output_tokens": 0.06,
        "currency": "USD",
        "unit": "per_1k_tokens"
      }
    },
    {
      "id": "claude-3-sonnet",
      "object": "model",
      "created": 1709251200,
      "owned_by": "anthropic",
      "provider": "anthropic",
      "service_type": "text-generation",
      "context_length": 200000,
      "capabilities": ["text-generation", "chat", "analysis"],
      "pricing": {
        "input_tokens": 0.003,
        "output_tokens": 0.015,
        "currency": "USD",
        "unit": "per_1k_tokens"
      }
    },
    {
      "id": "flux-1-pro",
      "object": "model",
      "created": 1720000000,
      "owned_by": "black-forest-labs",
      "provider": "black-forest-labs",
      "service_type": "image-generation",
      "max_resolution": "2048x2048",
      "capabilities": ["image-generation", "text-to-image"],
      "pricing": {
        "per_image": 0.10,
        "currency": "USD",
        "unit": "per_image"
      }
    },
    {
      "id": "eleven-labs-tts",
      "object": "model",
      "created": 1690000000,
      "owned_by": "elevenlabs",
      "provider": "elevenlabs",
      "service_type": "text-to-speech",
      "capabilities": ["text-to-speech", "voice-cloning"],
      "pricing": {
        "per_1k_chars": 0.015,
        "currency": "USD",
        "unit": "per_1k_characters"
      }
    }
  ]
}

Get Specific Model

Retrieve information about a specific model.

Request

GET /api/v1/models/{model_id}

Parameters

ParameterTypeRequiredDescription
model_idstringYesThe ID of the model to retrieve

Response

{
  "id": "gpt-4",
  "object": "model",
  "created": 1677649963,
  "owned_by": "openai",
  "provider": "openai",
  "service_type": "text-generation",
  "context_length": 8192,
  "capabilities": ["text-generation", "chat", "function-calling"],
  "pricing": {
    "input_tokens": 0.03,
    "output_tokens": 0.06,
    "currency": "USD",
    "unit": "per_1k_tokens"
  },
  "parameters": {
    "max_tokens": 4096,
    "temperature": {
      "min": 0,
      "max": 2,
      "default": 1
    },
    "top_p": {
      "min": 0,
      "max": 1,
      "default": 1
    }
  },
  "usage_guidelines": {
    "recommended_use_cases": [
      "Complex reasoning tasks",
      "Code generation",
      "Creative writing",
      "Analysis and research"
    ],
    "limitations": [
      "Knowledge cutoff: April 2024",
      "No internet access",
      "No image generation capabilities"
    ]
  }
}

Get Model Pricing

Retrieve pricing information for all available models.

Request

GET /api/v1/models/pricing

Response

{
  "object": "pricing",
  "text_generation": {
    "gpt-4": {
      "input_tokens": 0.03,
      "output_tokens": 0.06,
      "currency": "USD",
      "unit": "per_1k_tokens"
    },
    "gpt-3.5-turbo": {
      "input_tokens": 0.001,
      "output_tokens": 0.002,
      "currency": "USD",
      "unit": "per_1k_tokens"
    },
    "claude-3-opus": {
      "input_tokens": 0.015,
      "output_tokens": 0.075,
      "currency": "USD",
      "unit": "per_1k_tokens"
    },
    "claude-3-sonnet": {
      "input_tokens": 0.003,
      "output_tokens": 0.015,
      "currency": "USD",
      "unit": "per_1k_tokens"
    }
  },
  "image_generation": {
    "flux-1-pro": {
      "per_image": 0.10,
      "currency": "USD",
      "unit": "per_image"
    },
    "flux-1-dev": {
      "per_image": 0.05,
      "currency": "USD",
      "unit": "per_image"
    }
  },
  "speech_services": {
    "eleven-labs-tts": {
      "per_1k_chars": 0.015,
      "currency": "USD",
      "unit": "per_1k_characters"
    },
    "eleven-labs-sts": {
      "per_minute": 0.30,
      "currency": "USD",
      "unit": "per_minute"
    },
    "eleven-labs-stt": {
      "per_minute": 0.006,
      "currency": "USD",
      "unit": "per_minute"
    }
  }
}

Model Categories

Text Generation Models

OpenAI Models

  • GPT-4: Most capable model for complex tasks
  • GPT-4 Turbo: Faster version with larger context window
  • GPT-3.5 Turbo: Cost-effective for simpler tasks

Anthropic Models

  • Claude-3 Opus: Most capable Claude model
  • Claude-3 Sonnet: Balanced performance and cost
  • Claude-3 Haiku: Fastest Claude model

Open Source Models

  • Mixtral-8x7B: High-quality open-source model
  • Mixtral-8x22B: Larger version with improved capabilities

Image Generation Models

Black Forest Labs

  • FLUX.1 Pro: Highest quality image generation
  • FLUX.1 Dev: Development version with good quality
  • FLUX.1 Schnell: Fast generation with lower quality

Speech Models

ElevenLabs

  • Text-to-Speech: Convert text to natural speech
  • Speech-to-Speech: Voice conversion and cloning
  • Speech-to-Text: Transcribe audio to text

Model Selection Guide

For Text Generation

Use CaseRecommended ModelReasoning
Simple chat/Q&Agpt-3.5-turboCost-effective for basic tasks
Complex reasoninggpt-4Best performance for difficult tasks
Long documentsclaude-3-sonnetLarge context window
Code generationgpt-4Excellent coding capabilities
Creative writingclaude-3-opusStrong creative abilities

For Image Generation

Use CaseRecommended ModelReasoning
High-quality artflux-1-proBest image quality
Rapid prototypingflux-1-schnellFastest generation
Development/testingflux-1-devGood balance of quality and speed

For Speech Services

Use CaseRecommended ModelReasoning
Voiceoverseleven-labs-ttsHigh-quality speech synthesis
Voice cloningeleven-labs-stsAdvanced voice conversion
Transcriptioneleven-labs-sttAccurate speech recognition

Usage Examples

List All Models (JavaScript)

const response = await fetch('/api/v1/models', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const data = await response.json();
console.log('Available models:', data.data);

Get Specific Model (JavaScript)

const modelId = 'gpt-4';
const response = await fetch(`/api/v1/models/${modelId}`, {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const model = await response.json();
console.log('Model info:', model);

Get Pricing Information (JavaScript)

const response = await fetch('/api/v1/models/pricing', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const pricing = await response.json();
console.log('Text generation pricing:', pricing.text_generation);

Using cURL

List Models

curl -X GET https://your-domain.com/api/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Get Model Info

curl -X GET https://your-domain.com/api/v1/models/gpt-4 \
  -H "Authorization: Bearer YOUR_API_KEY"

Get Pricing

curl -X GET https://your-domain.com/api/v1/models/pricing \
  -H "Authorization: Bearer YOUR_API_KEY"

Error Responses

Model Not Found

{
  "error": {
    "message": "Model 'invalid-model' not found",
    "type": "not_found_error",
    "code": "model_not_found"
  }
}

Unauthorized

{
  "error": {
    "message": "Invalid API key",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

Rate Limits

Model information endpoints have generous rate limits:

  • List models: 100 requests per minute
  • Get model: 200 requests per minute
  • Get pricing: 50 requests per minute

Best Practices

  1. Cache model information: Model details don't change frequently, so cache responses
  2. Check capabilities: Always verify a model supports your required capabilities
  3. Consider pricing: Choose models that balance performance and cost for your use case
  4. Monitor usage: Track which models you use most to optimize costs
  5. Stay updated: Check for new models and pricing updates regularly

Model Versioning

Models may be updated or deprecated over time. The API maintains backward compatibility, but it's recommended to:

  1. Pin to specific model versions when possible
  2. Test with new model versions before switching
  3. Monitor deprecation notices
  4. Keep fallback models in case of service interruptions