POST /v1/images POST /v1/images/generations via BYOK. Not chat completions.
OpenAI and fal.ai Images via Kasva: POST /v1/images (alias /v1/images/generations). fal.ai uses your fal key ("fal":"…"); Gemini AI Studio is a separate chat key.
# text → image
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/openai/gpt-image-2","prompt":"A ceramic mug","size":"1024x1024"}'
# image input → edit (input_references)
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/openai/gpt-image-2","prompt":"Sunset background","input_references":[{"type":"image_url","image_url":{"url":"data:image/png;base64,...."}}]}'
# fal.ai text → image (FLUX.1 schnell)
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/fal/flux-schnell","prompt":"A ceramic mug"}'
Do not send image models to /v1/chat/completions. GET /v1/byok/keys never returns the fal (or any) secret.
Public: docs/images.html · API: API
OpenAI and fal.ai Images via Kasva: POST /v1/images (alias /v1/images/generations). fal.ai uses your fal key ("fal":"…"); Gemini AI Studio is a separate chat key.
# text → image
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/openai/gpt-image-2","prompt":"A ceramic mug","size":"1024x1024"}'
# image input → edit (input_references)
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/openai/gpt-image-2","prompt":"Sunset background","input_references":[{"type":"image_url","image_url":{"url":"data:image/png;base64,...."}}]}'
# fal.ai text → image (FLUX.1 schnell)
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/fal/flux-schnell","prompt":"A ceramic mug"}'
Do not send image models to /v1/chat/completions. GET /v1/byok/keys never returns the fal (or any) secret.
Public: docs/images.html · API: API
Kasva üzerinden OpenAI ve fal.ai Görüntüler: POST /v1/images (alias /v1/images/generations). fal.ai fal anahtarını kullanır ("fal":"…"); Gemini AI Studio ayrı bir sohbet anahtarıdır.
# text → image
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/openai/gpt-image-2","prompt":"A ceramic mug","size":"1024x1024"}'
# image input → edit (input_references)
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/openai/gpt-image-2","prompt":"Sunset background","input_references":[{"type":"image_url","image_url":{"url":"data:image/png;base64,...."}}]}'
# fal.ai text → image (FLUX.1 schnell)
curl https://kasva.dev/v1/images \
-H "Authorization: Bearer YOUR_KASVA_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"byok/fal/flux-schnell","prompt":"A ceramic mug"}'
Görüntü modellerini /v1/chat/completions’a gönderme. GET /v1/byok/keys fal (veya herhangi) sırrını asla döndürmez.