Skip to main content

Overview

List all embedding-capable models available through RedPill. This endpoint returns models specifically designed for generating vector embeddings from text, images, or videos.
Embedding models are filtered separately from chat/completion models. Use GET /v1/models for chat models or GET /v1/embeddings/models for embedding models.

List All Embedding Models

curl https://api.redpill.ai/v1/embeddings/models \
  -H "Authorization: Bearer $REDPILL_API_KEY"
{
  "object": "list",
  "data": [
    {
      "id": "openai/text-embedding-3-large",
      "name": "OpenAI: Text Embedding 3 Large",
      "created": 1704067200,
      "input_modalities": ["text", "embeddings"],
      "output_modalities": ["embeddings"],
      "context_length": 8192,
      "max_output_length": 8192,
      "pricing": {
        "prompt": "0.00000013",
        "completion": "0",
        "image": "0",
        "request": "0"
      },
      "supported_sampling_parameters": ["temperature"],
      "supported_features": [],
      "description": "text-embedding-3-large is OpenAI's most capable embedding model for both english and non-english tasks. Embeddings are a numerical representation of text that can be used to measure the relatedness between two pieces of text."
    },
    {
      "id": "openai/text-embedding-3-small",
      "name": "OpenAI: Text Embedding 3 Small",
      "created": 1704067200,
      "input_modalities": ["text", "embeddings"],
      "output_modalities": ["embeddings"],
      "context_length": 8192,
      "max_output_length": 8192,
      "pricing": {
        "prompt": "0.00000002",
        "completion": "0"
      },
      "description": "Improved embedding model with better performance than ada-002"
    },
    {
      "id": "openai/text-embedding-ada-002",
      "name": "OpenAI: Text Embedding Ada 002",
      "created": 1704067200,
      "input_modalities": ["text", "embeddings"],
      "output_modalities": ["embeddings"],
      "context_length": 8192,
      "max_output_length": 8192,
      "pricing": {
        "prompt": "0.0000001",
        "completion": "0"
      },
      "description": "Legacy text embedding model"
    }
  ]
}

Response Fields

object
string
Always "list" for this endpoint
data
array
Array of embedding model objects

Filter by Provider

Get embedding models from a specific provider.
curl https://api.redpill.ai/v1/embeddings/models/openai \
  -H "Authorization: Bearer $REDPILL_API_KEY"

URL Parameters

provider
string
required
Provider name to filter by (e.g., openai, voyage, jina, nomic, cohere)

Available Embedding Providers

ProviderModelsSpecializationMax Dimensions
OpenAItext-embedding-3-large, 3-small, ada-002General purpose3072
Voyagevoyage-3, voyage-3-liteSemantic search1024
Jinajina-embeddings-v3, jina-clip-v2Multi-modal1024
Nomicnomic-embed-text-v1.5, nomic-embed-videoText & video768
Cohereembed-english-v3.0, embed-multilingualMultilingual1024
Milvusmilvus-embeddingVector database768
Qdrantqdrant-embeddingVector search1536

Create Embeddings

Learn how to generate embeddings →

Model Selection Guide

By Use Case

Recommended: openai/text-embedding-3-large
  • Best overall quality
  • Supports 100+ languages
  • Customizable dimensions (256-3072)
Budget Option: openai/text-embedding-3-small
  • 5x cheaper
  • Good performance
  • Faster generation
Recommended: voyage/voyage-3
  • Optimized for retrieval tasks
  • Strong semantic understanding
  • Excellent for document search
Alternative: cohere/embed-english-v3.0
  • Built-in search/clustering modes
  • High accuracy for RAG applications
Recommended: jina/jina-clip-v2
  • Unified text and image embeddings
  • Same vector space for cross-modal search
  • Supports image URLs and base64
Alternative: openai/text-embedding-3-large
  • Supports text embeddings only
  • Use with vision models for image understanding
Recommended: nomic/nomic-embed-video-v1.5
  • Specialized for video content
  • Temporal understanding
  • Scene-level embeddings
Alternative: Extract frames and use jina/jina-clip-v2
Recommended: cohere/embed-multilingual-v3.0
  • 100+ languages
  • Strong cross-lingual performance
  • No language detection needed
Alternative: openai/text-embedding-3-large
  • Supports many languages
  • Consistent quality across languages
Recommended: openai/text-embedding-3-small
  • $0.02 per 1M tokens
  • Good quality/price ratio
Ultra-Budget: openai/text-embedding-ada-002
  • $0.10 per 1M tokens (legacy pricing)
  • Acceptable for many use cases

Filtering Models

By Capability

import requests

response = requests.get(
    "https://api.redpill.ai/v1/embeddings/models",
    headers={"Authorization": f"Bearer YOUR_API_KEY"}
)

models = response.json()["data"]

# Filter by dimension size
large_models = [m for m in models if m.get("max_output_length", 0) >= 2048]

# Filter by provider
openai_models = [m for m in models if m["id"].startswith("openai/")]

# Filter by pricing
cheap_models = [m for m in models if float(m["pricing"]["prompt"]) < 0.0000001]

# Find models supporting specific input
text_models = [m for m in models if "text" in m["input_modalities"]]

Comparison with Chat Models

AspectEmbedding ModelsChat Models
Endpoint/v1/embeddings/models/v1/models
OutputVector representationsText responses
Use CasesSearch, clustering, similarityConversation, generation, reasoning
PricingPer input token onlyPer input + output token
DimensionsFixed (configurable for some)N/A

Privacy & Security

TEE-Protected Embedding

All embedding generation flows through hardware-protected gateway

Confidential Queries

Your text/images processed in secure enclaves

No Data Retention

Embeddings not stored after generation

No Training Use

Your data never used to train models

Examples

List and Compare Models

import requests

def compare_embedding_models():
    response = requests.get(
        "https://api.redpill.ai/v1/embeddings/models",
        headers={"Authorization": f"Bearer YOUR_API_KEY"}
    )

    models = response.json()["data"]

    print("Model Comparison:\n")
    print(f"{'Model ID':<40} {'Dimensions':<12} {'Cost (per 1M tokens)'}")
    print("-" * 80)

    for model in models:
        model_id = model["id"]
        dimensions = model.get("max_output_length", "N/A")
        cost = float(model["pricing"]["prompt"]) * 1_000_000
        print(f"{model_id:<40} {str(dimensions):<12} ${cost:.4f}")

compare_embedding_models()

Find Cheapest Model

def find_cheapest_model(min_dimensions=768):
    response = requests.get(
        "https://api.redpill.ai/v1/embeddings/models",
        headers={"Authorization": f"Bearer YOUR_API_KEY"}
    )

    models = response.json()["data"]

    # Filter by minimum dimensions
    qualified = [
        m for m in models
        if m.get("max_output_length", 0) >= min_dimensions
    ]

    # Sort by price
    cheapest = min(qualified, key=lambda m: float(m["pricing"]["prompt"]))

    print(f"Cheapest model with {min_dimensions}+ dimensions:")
    print(f"  Model: {cheapest['id']}")
    print(f"  Dimensions: {cheapest['max_output_length']}")
    print(f"  Cost: ${float(cheapest['pricing']['prompt']) * 1_000_000:.4f} per 1M tokens")

    return cheapest["id"]

Error Handling

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

Next Steps