Silico Grove API Integration Guide
Integrate text, image, video, and audio capabilities through the endpoint matching each feature. Preserve request field names exactly.
| Item | Value |
|---|---|
| Primary Base URL | https://ai.silicogrove.com/v1 |
| Backup Base URL | https://api.silicogrove.com/v1 when the primary domain is unavailable |
| Authentication | Authorization: Bearer YOUR_API_KEY |
| JSON requests | Content-Type: application/json |
| File uploads | multipart/form-data |
Start with Quick start, then confirm access in Models and access.
Quick Start
- Create and securely store an API key in the console.
- List the models available to that key.
- Send requests to the matching capability endpoint.
Do not duplicate the Base URL
The OpenAI SDK base_url includes /v1. Do not append /v1 again when composing complete endpoint URLs. The backup address requires client-side failover configuration.
List available models
curl -X GET "https://ai.silicogrove.com/v1/models" \
-H "Authorization: Bearer YOUR_API_KEY"Minimal text request
curl -X POST "https://ai.silicogrove.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.4-mini","messages":[{"role":"user","content":"Hello, reply in one sentence."}]}'Python OpenAI SDK
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://ai.silicogrove.com/v1")
response = client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "Hello, reply in one sentence."}],
)
print(response.choices[0].message.content)Models and Access
Available models depend on your account, group, and API key permissions. Treat GET /v1/models as the source of truth.
| Capability | Typical models | Endpoint |
|---|---|---|
| Text | gpt-5.4-mini, Claude, Gemini | /v1/chat/completions |
| Images | gpt-image-2, Gemini image models | /v1/images/generations |
| Video | video-ds-2.0, as-sd2.0-fast | /v1/videos |
| Audio | Check the returned model list | /v1/audio/* |
Text
Chat Completions
curl -X POST "https://ai.silicogrove.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.4-mini","messages":[{"role":"system","content":"You are a concise assistant."},{"role":"user","content":"Write a product introduction."}],"stream":false}'Responses API
curl -X POST "https://ai.silicogrove.com/v1/responses" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.4-mini","input":"Introduce yourself in one sentence."}'Images
Generate images
curl -X POST "https://ai.silicogrove.com/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"A premium product poster, clean background, realistic photography","size":"1024x1024","quality":"auto","n":1,"response_format":"url"}'| Field | Description |
|---|---|
model | Required. An image model visible to the API key. |
prompt | Required. The image description. |
size | Optional, for example 1024x1024 or a supported ratio. |
quality | Optional: auto, low, high, 2K, or 4K. |
Edit images
curl -X POST "https://ai.silicogrove.com/v1/images/edits" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=Change the background to city lights at night" \
-F "image=@/path/to/input.png" \
-F "size=1024x1024"Use multipart form data for local files. Do not set Content-Type: application/json; the image field is image and the optional mask field is mask.
Video
Video models must use POST /v1/videos, not /v1/chat/completions. Submissions return a task ID that must be polled.
Minimal text-to-video request
curl -X POST "https://ai.silicogrove.com/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"video-ds-2.0-fast","prompt":"A cinematic 9:16 short video, neon city rooftop at night, realistic lighting, no watermark.","seconds":"15","aspect_ratio":"9:16"}'Reference media
Reference media must use public URLs. Upload local files through Reference assets; do not place local paths in JSON.
curl -X POST "https://ai.silicogrove.com/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"video-ds-2.0","prompt":"Use the image appearance and video motion to create a natural 9:16 video.","seconds":"15","aspect_ratio":"9:16","images":["https://example.com/ref-1.jpg"],"videos":["https://example.com/motion.mp4"],"audios":["https://example.com/music.mp3"]}'| Field | Limit | Description |
|---|---|---|
model | Required | A video model visible to the API key. |
prompt | Required | Describe the subject, motion, camera, style, and ratio. |
seconds | Recommended | String: "5", "10", or "15". |
aspect_ratio | Recommended | 16:9, 9:16, or 1:1. |
images | Up to 4 | Array of jpg, png, or webp URLs. |
videos | Up to 3 | Array of mp4, mov, or webm URLs. |
audios | Up to 1 | Array of mp3, m4a, wav, aac, or ogg URLs. |
These limits apply to video-ds-2.0, video-ds-2.0-fast, and as-sd2.0-fast. Other video models may differ.
Retrieve a task and download its result
curl -X GET "https://ai.silicogrove.com/v1/videos/TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -L -X GET "https://ai.silicogrove.com/v1/videos/TASK_ID/content" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output result.mp4Reference Assets
Upload local images, videos, and audio to the temporary asset endpoint. The returned data.url can be placed in a video request's images, videos, or audios array.
WARNING
Temporary assets are deleted after 24 hours. Use your own object storage or CDN URLs for persistent files.
# Image
curl -X POST "https://ai.silicogrove.com/pg/assets" -H "Authorization: Bearer YOUR_API_KEY" -F "kind=image" -F "file=@/path/to/ref.jpg"
# Video
curl -X POST "https://ai.silicogrove.com/pg/assets" -H "Authorization: Bearer YOUR_API_KEY" -F "kind=video" -F "file=@/path/to/ref.mp4"
# Audio
curl -X POST "https://ai.silicogrove.com/pg/assets" -H "Authorization: Bearer YOUR_API_KEY" -F "kind=audio" -F "file=@/path/to/ref.mp3"Response example
{"success":true,"data":{"kind":"image","url":"https://file.lunadownload.com/temporary/2026/08/11/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jpg","filename":"ref.jpg","content_type":"image/jpeg","size":123456}}kind | Formats | Maximum file size |
|---|---|---|
image | jpg, png, webp | 10 MiB |
video | mp4, mov, webm | 100 MiB |
audio | mp3, m4a, wav, aac, ogg, webm | 20 MiB |
Audio
Speech synthesis
curl -X POST "https://ai.silicogrove.com/v1/audio/speech" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"YOUR_TTS_MODEL","input":"Welcome to Silico Grove API.","voice":"alloy","response_format":"mp3"}' \
--output speech.mp3Transcription and translation
curl -X POST "https://ai.silicogrove.com/v1/audio/transcriptions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=YOUR_STT_MODEL" \
-F "file=@/path/to/audio.mp3" \
-F "response_format=json"
curl -X POST "https://ai.silicogrove.com/v1/audio/translations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=YOUR_STT_MODEL" \
-F "file=@/path/to/audio.mp3" \
-F "response_format=json"Transcription and translation are multipart requests. The file field is file.
Troubleshooting
| Symptom | Likely cause | Resolution |
|---|---|---|
| Model unavailable | The model and group do not match, or the key lacks permission. | Call /v1/models with the same key to confirm the model name. |
model is required | A relay renamed the field. | Preserve model; do not change it to model_name. |
| Video fails or enters a chat model | The request was sent to a chat endpoint. | Call POST /v1/videos. |
| Reference asset has no effect | A local path was sent, or the value was not an array. | Send public URLs in images, videos, or audios. |
Invalid seconds type | The duration was sent as a number. | Use a string, such as "seconds": "15". |
| Upload fails | Wrong content type or file field name. | Use -F and name the file field file. |
When reporting an issue, include request time, model, endpoint, group, request ID, and the error response. Do not share API keys, authorization headers, or sensitive prompts.
Relay Integrations
- Use
https://ai.silicogrove.comorhttps://ai.silicogrove.com/v1as the primary upstream, depending on whether your relay adds/v1automatically. - The backup upstream is
https://api.silicogrove.comorhttps://api.silicogrove.com/v1; configure failover in the relay. - Synchronize
/v1/modelswith a Silico Grove API key rather than entering unavailable models manually. - Video models must stay on
/v1/videos; do not add them to a chat model pool. - Preserve the
images,videos, andaudiosarrays when forwarding video requests. - Image editing and audio transcription are multipart requests; do not lose their file fields during forwarding.
