Synthome Docs
Core Concepts

Providers

Configure API keys for AI model providers

Providers

Providers are the platforms that host and run AI models. Synthome orchestrates calls to these providers using your API keys.

Supported Providers

ProviderModelsAPI Key Env Variable
ReplicateVideo, image, audioREPLICATE_API_KEY
FalImage, lip-sync videoFAL_KEY
ElevenLabsText-to-speechELEVENLABS_API_KEY
HumeExpressive TTSHUME_API_KEY

API Key Configuration

There are three ways to provide API keys, in order of priority:

1. Model-Level (Highest Priority)

Pass the API key directly when creating a model:

const model = videoModel("bytedance/seedance-1-pro", {
  provider: "replicate",
  apiKey: "your-replicate-key",
});

2. Dashboard

Add your API keys in the Synthome dashboard. Keys are stored securely and used automatically.

3. Environment Variables (Lowest Priority)

Set environment variables in your shell or .env file:

# Replicate
export REPLICATE_API_KEY="your-replicate-key"

# Fal
export FAL_KEY="your-fal-key"

# ElevenLabs
export ELEVENLABS_API_KEY="your-elevenlabs-key"

# Hume
export HUME_API_KEY="your-hume-key"

Priority Order: Model-level API key → Dashboard keys → Environment variables

Provider-Specific Configuration

Replicate

Replicate hosts a wide variety of models including video generation, image generation, and audio processing.

// Video generation
const video = videoModel("bytedance/seedance-1-pro", "replicate");

// Image generation
const image = imageModel("google/nano-banana", "replicate");

// Audio transcription
const audio = audioModel("openai/whisper", "replicate");

Get your API key at replicate.com/account/api-tokens

Fal

Fal specializes in fast image generation and lip-sync video.

// Fast image generation
const image = imageModel("google/nano-banana", "fal");

// Lip-sync video
const video = videoModel("veed/fabric-1.0", "fal");

Get your API key at fal.ai/dashboard/keys

ElevenLabs

ElevenLabs provides high-quality text-to-speech with voice cloning capabilities.

const audio = audioModel("elevenlabs/turbo-v2.5", "elevenlabs");

const execution = await compose(
  generateAudio({
    model: audio,
    text: "Hello, this is a test.",
    voiceId: "EXAVITQu4vr4xnSDxMaL", // Sarah voice
  }),
).execute();

Get your API key at elevenlabs.io/app/settings/api-keys

Hume

Hume provides emotionally expressive text-to-speech.

const audio = audioModel("hume/tts", "hume");

const execution = await compose(
  generateAudio({
    model: audio,
    text: "I'm so excited to meet you!",
  }),
).execute();

Get your API key at platform.hume.ai/settings/keys

Passing Keys at Execution

You can also pass provider API keys when executing a pipeline:

const execution = await compose(
  generateVideo({ ... }),
).execute({
  providerApiKeys: {
    replicate: "your-replicate-key",
    fal: "your-fal-key",
  },
});

This is useful when you need to use different keys for different executions.

Key Filtering

Synthome automatically filters which API keys to send based on which providers your pipeline uses. If your pipeline only uses Replicate models, only the Replicate API key is sent to the backend.

Security Best Practices

  1. Never commit API keys to version control
  2. Use environment variables for local development
  3. Use the dashboard for production deployments
  4. Rotate keys regularly if they may have been exposed

Troubleshooting

"Missing API key for provider X"

This error means no API key was found for a required provider. Check:

  1. Environment variable is set correctly
  2. Key is added in the dashboard
  3. Provider name matches (case-sensitive)

"Invalid API key"

The API key was found but rejected by the provider. Check:

  1. Key is not expired
  2. Key has the required permissions
  3. Key is for the correct environment (production vs test)

Request a Model or Provider

Don't see the model or provider you need? We're actively expanding our support and typically add new models and providers within 48 hours.

Use the "Request Model" button in the dashboard to submit your request.

Next Steps

How is this guide?