AI Providers
Genfeed exposes deployed providers through Organization settings → Integrations. Saving a credential validates it against the provider before it is encrypted for the organization. The catalog also includes prepared direct media identities; their credential checks do not establish generation readiness.
Self-hosted deployments never gate bring-your-own-key. There are no Genfeed
credits: generations run on your organization key (or the fallback key in your
.env) and the provider bills you directly. See
Provider API Keys for how to get and add each key.
Provider catalog
| Provider key | Provider | Primary Genfeed use | Self-hosted fallback | Provider setup |
|---|---|---|---|---|
anthropic | Anthropic | Language-model execution | ANTHROPIC_API_KEY | API keys |
openai | OpenAI | Language-model execution | OPENAI_API_KEY | API keys |
openrouter | OpenRouter | Curated text-model routing | OPENROUTER_API_KEY | API keys |
elevenlabs | ElevenLabs | Voice and audio generation | ELEVENLABS_API_KEY | API keys |
replicate | Replicate | Hosted media generation and training | REPLICATE_KEY | API tokens |
crun | Crun | Reviewed images, Kling and Veo videos | CRUN_API_KEY | API documentation |
fal | fal.ai | Hosted media generation | FAL_API_KEY | API keys |
argil | Argil | Atom avatar-video generation | ARGIL_KEY | Argil app |
heygen | HeyGen | Avatar video and voice workflows | HEYGEN_KEY | HeyGen settings |
hedra | Hedra | Avatar and video workflows | HEDRA_KEY | Hedra settings |
klingai | Kling AI | Video generation | KLINGAI_KEY + KLINGAI_SECRET | Kling AI |
leonardoai | Leonardo.AI | Image generation | LEONARDO_KEY | API access |
higgsfield | Higgsfield | Media generation | HIGGSFIELD_API_KEY + HIGGSFIELD_API_SECRET | API documentation |
google | Google Gemini API | Prepared direct image/video contracts and credential validation | No direct runtime fallback wired | API keys |
xai | xAI | Prepared direct image/video contracts and credential validation | No direct runtime fallback wired | Console |
bfl | Black Forest Labs | Prepared direct image contracts and credential validation | No direct runtime fallback wired | API dashboard |
runway | Runway | Prepared direct image/video contracts and credential validation | No direct runtime fallback wired | Developer dashboard |
apify | Apify | Social trend and monitored-account ingestion | APIFY_API_TOKEN | Integrations |
The keys in the first column are stable organization BYOK identifiers. The deployed model registry remains the source of truth for model availability. The configuration and execution steps below apply to deployed provider cards and routes; prepared direct media entries are not a launch or activation guide.
HeyGen API v3
HeyGen catalog reads, account validation, avatar rendering and status polling use
API v3. Avatar IDs are renderable look IDs from /v3/avatars/looks; character
group IDs are separate. Photo animation uses an image input to /v3/videos.
The prompt-driven HeyGen Video model uses /v3/models/videos.
Catalogs follow provider cursors. Connected organization keys expose their own private looks and voices alongside public presets. Platform reference catalogs contain public entries only.
For webhook completion, register the application’s
/v1/webhooks/heygen/callback URL through /v3/webhooks/endpoints and subscribe
to avatar_video.success and avatar_video.fail. Store HeyGen’s returned
signing secret in HEYGEN_WEBHOOK_SECRET. The receiver verifies the signature
header against the raw body and deduplicates events using their signed video ID
and event type. A failed processing attempt releases its claim so the provider
can retry. Request bodies carry callback_id for correlation; they do not send
a per-request callback URL.
See HeyGen’s v3 migration comparison , video request contract and webhook contract .
Prepared direct media foundations
The following compiler/client contracts were reviewed on 2026-10-02. They accept only their reviewed controls and references. This table describes prepared requests, not models admitted for generation in a deployment.
| Direct identity | Reviewed models and modes | Reviewed controls and references |
|---|---|---|
google | gemini-3.1-flash-image: text-to-image and image-edit; gemini-omni-1.1-flash and veo-3.1-generate-preview: text-to-video and image-to-video | Gemini image sizes 512/1K/2K/4K and 1–14 edit references. Omni 16:9/9:16, 720p/1080p and one starting image. Veo 4/6/8 seconds, 720p/1080p/4k; higher resolutions require 8 seconds and image input must be inline PNG/JPEG/WebP. |
xai | grok-imagine-image-2.0: text-to-image and image-edit; grok-imagine-video-1.5: text-to-video and image-to-video | Images: 1k/2k and 1–5 edit references. Video: integer 1–15 seconds, 480p/720p/1080p and one starting image. |
bfl | flux-2-pro: text-to-image and image-edit | Optional width/height and seed; fixed JPEG output; zero generation references or 1–8 edit references. |
runway | gen4.5: text-to-video and image-to-video; gen4_image_turbo: text-to-image and image-edit | Gen-4.5: integer 2–10 seconds, two text-video pixel ratios or six image-video ratios and one starting image. Image Turbo: 1–3 references, 16 reviewed pixel ratios and optional uint32 seed. |
These direct identities preserve provider-owned credential boundaries. Replicate
and fal routes retain their own identities, and OpenRouter x-ai/ names do not
select direct xai credentials. The direct-media directory also contains an
OpenAI image compiler/client foundation under the existing openai identity.
Credential validation uses non-generation provider reads. A valid credential or compiled request does not admit a model, wire its runtime dispatcher, or establish funding. Runtime admission and registry wiring, durable account-bound jobs and uncertain-submission reconciliation, billing/funding, tenant asset admission, protected output ingestion and saved assets remain application delivery work. BFL output URLs expire after 10 minutes; Runway output URLs expire within 24–48 hours. The application must persist outputs rather than treating temporary URLs as saved assets. Aborting local HTTP does not confirm remote cancellation.
Independent review and authorized live image/edit/video acceptance remain separate gates; neither is established by these foundations. They do not change defaults or activate a route.
Configure an organization key
- Create a restricted credential in the provider dashboard.
- Open Organization settings → Integrations.
- Expand the provider card and enter the key. Kling AI and Higgsfield also require the provider secret.
- Select Validate and save.
- Confirm that the card reports a connected state before running generation.
Removing a key disables that organization’s credential. A self-hosted server fallback may still be used when the execution adapter supports its corresponding environment variable.
Callback-dependent providers
Some asynchronous media providers require a public base URL:
| Provider | Additional configuration |
|---|---|
| Argil | GENFEEDAI_WEBHOOKS_URL, ARGIL_WEBHOOK_SECRET |
| HeyGen | HEYGEN_WEBHOOK_SECRET when provider webhooks are enabled |
| Kling AI | GENFEEDAI_WEBHOOKS_URL for asynchronous completion |
| Leonardo.AI | LEONARDO_WEBHOOK_SECRET; optionally LEONARDO_WEBHOOK_ALLOWED_IPS |
| Replicate | GENFEEDAI_WEBHOOKS_URL for webhook-capable predictions |
Do not expose webhook secrets to the client application. Configure them only in the server environment used by the API and workers.
Verify execution
- Confirm that the required provider appears connected.
- Select a model whose provider matches the configured key.
- Run the smallest non-sensitive generation supported by that model.
- For asynchronous providers, confirm the provider job ID is recorded and the generated asset reaches a terminal state.
- Review provider usage and Genfeed logs without copying credential values.
For registry behavior, see Provider Registry and Models and Providers.
Crun image and video generation
Crun supports reviewed Nano Banana Pro and Seedream 4.5 image models, Kling 2.5 Turbo Pro videos and Veo 3.1 Fast text-to-video. Deployment admission is disabled by default. Operators must review the imported contract, activate the model and configure hosted acquisition pricing before enabling hosted requests. Crun is called directly with your own key.
Studio requests an exact quote for the prepared prompt and selected controls. The quote lasts 60 seconds and covers all requested outputs. Changing inputs or account requires another quote. Explicit prompt enhancement runs before quoting; quoting does not enhance the prompt automatically. Organization keys retain BYOK usage accounting.
Generation persists task identity before provider creation and copies results into owned storage. Accepted tasks continue to reconcile after admission is disabled. Keep the original key available until accepted tasks drain; rotating or deleting it may require operator recovery. Do not retry provider creation after an ambiguous response. Seedream reference images require authorized ingredient records with known file size and dimensions.
Crun video quotes use authenticated POST /videos/crun-quote; generation uses
POST /videos with the returned crunQuoteId. Quotes last 60 seconds and freeze
the exact prepared input. Each output is a separate task, with up to four outputs.
The API can prepare one quote automatically when no quote ID is supplied.
Kling supports 5/10 seconds and optional ordered start/end image frames. End frames require a start image; frame inputs omit aspect ratio. Veo supports reviewed 8-second 720p, 1080p and 4k output, with translation true by default (false is preserved). Veo 4/6 seconds, frames, audio toggles, negative prompts and guidance are unavailable. Crun video generation is asynchronous; wait-for-completion, callbacks, remix budget approvals and advanced skill/knowledge execution are unsupported. Enhanced prompts must carry authorized stored provenance.
Provider prices must match a reviewed fixed estimate. Operator approval, explicit admission enablement and funded canary checks are separate release steps. Stored video inspection establishes duration, dimensions and audio metadata; temporary provider URLs are copied into owned storage before financial completion. Accepted work continues reconciliation when admission is disabled.