What you can build with the API
One base URL, https://gisoo.pro/api/v1, one key and one balance cover all of this. Every example below is a complete request you can paste into a terminal after setting GISOO_API_KEY.
- Chat completions
- Responses API
- Anthropic Messages API
- Vision
- Tools and function calling
- Structured outputs
- Embeddings
- Image generation
- Speech and transcription
- Music
- Video
- Realtime voice
- Moderation, usage and account
- MCP server
Chat completions
POST /chat/completions
The OpenAI chat API: messages in, an answer out, with system prompts, multi-turn history and sampling parameters. Add "stream": true for server-sent events.
curl https://gisoo.pro/api/v1/chat/completions -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-4o-mini", "messages": [{"role": "user", "content": "Hello"}]}'
Full reference (Persian): /docs/chat
Responses API
POST /responses
The newer OpenAI Responses format, for clients that have moved to it.
curl https://gisoo.pro/api/v1/responses -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-4.1-mini", "input": "Write a haiku about rain."}'
Full reference (Persian): /docs/responses
Anthropic Messages API
POST /messages, /messages/count_tokens
Use the Anthropic SDK or Claude Code against Gisoo. The SDK base URL is https://gisoo.pro/api (without /v1). Server-side web search and code tools, and server-side MCP, are not supported on this endpoint, and the thinking parameter is ignored.
curl https://gisoo.pro/api/v1/messages -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model": "openrouter/anthropic/claude-haiku-4.5", "max_tokens": 256, "messages": [{"role": "user", "content": "Hello"}]}'
Full reference (Persian): /docs/anthropic
Vision
POST /chat/completions
Send images with a message by adding an image_url part. Models that read images are marked Vision on the models page.
curl https://gisoo.pro/api/v1/chat/completions -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-4.1-mini", "messages": [{"role": "user", "content": [
{"type": "text", "text": "What is in this picture?"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
Full reference (Persian): /docs/vision
Tools and function calling
POST /chat/completions
Describe functions with JSON Schema; the model answers with tool_calls that your code runs and returns.
curl https://gisoo.pro/api/v1/chat/completions -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-4.1", "messages": [{"role": "user", "content": "Weather in Paris?"}],
"tools": [{"type": "function", "function": {"name": "get_weather", "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}}}]}'
Full reference (Persian): /docs/tools
Structured outputs
POST /chat/completions
Force valid JSON with response_format: either json_object, or json_schema with strict mode so the reply matches your schema.
curl https://gisoo.pro/api/v1/chat/completions -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-4.1", "messages": [{"role": "user", "content": "Extract: Ana, 31, Lisbon"}],
"response_format": {"type": "json_schema", "json_schema": {"name": "person", "strict": true,
"schema": {"type": "object", "properties": {"name": {"type": "string"}, "age": {"type": "integer"}, "city": {"type": "string"}},
"required": ["name", "age", "city"], "additionalProperties": false}}}}'
Full reference (Persian): /docs/structured-outputs
Embeddings
POST /embeddings
Turn text into vectors for search, clustering and retrieval.
curl https://gisoo.pro/api/v1/embeddings -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "text-embedding-3-small", "input": "The quick brown fox"}'
Full reference (Persian): /docs/embeddings
Image generation
POST /images/generations
Create images from a prompt. The reply carries the image as b64_json.
curl https://gisoo.pro/api/v1/images/generations -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-image-1-mini", "prompt": "A lighthouse at dawn, watercolor", "size": "1024x1024", "quality": "medium"}'
Full reference (Persian): /docs/images
Speech and transcription
POST /audio/speech, /audio/transcriptions, /audio/translations
Text to speech with a chosen voice, and speech to text from an uploaded file (multipart form). Translations turn foreign speech into English text.
curl https://gisoo.pro/api/v1/audio/speech -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "gpt-4o-mini-tts", "voice": "alloy", "input": "Welcome to Gisoo.", "response_format": "mp3"}' --output hello.mp3
curl https://gisoo.pro/api/v1/audio/transcriptions -H "Authorization: Bearer $GISOO_API_KEY" \
-F file=@meeting.mp3 -F model=gpt-4o-mini-transcribe -F response_format=json
Full reference (Persian): /docs/audio
Music
POST /audio/music
Generate a music clip or a full song from a text prompt.
curl https://gisoo.pro/api/v1/audio/music -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "openrouter/google/lyria-3-clip-preview", "prompt": "Calm piano with soft strings, 30 seconds"}'
Full reference (Persian): /docs/music
Video
POST /videos, GET /videos/{id}, GET /videos/{id}/content
Video is asynchronous: create a job, poll its status (queued, in_progress, completed), then download the file. A failed video is not billed.
curl https://gisoo.pro/api/v1/videos -H "Authorization: Bearer $GISOO_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "sora-2", "prompt": "A paper boat on a rainy street", "seconds": 4, "size": "1280x720"}'
curl https://gisoo.pro/api/v1/videos/VIDEO_ID -H "Authorization: Bearer $GISOO_API_KEY"
curl https://gisoo.pro/api/v1/videos/VIDEO_ID/content -H "Authorization: Bearer $GISOO_API_KEY" --output clip.mp4
Full reference (Persian): /docs/video
Realtime voice
wss://gisoo.pro/api/v1/realtime?model=...
A WebSocket for live voice conversations, compatible with the OpenAI Realtime protocol, with server-side voice activity detection.
wscat -c "wss://gisoo.pro/api/v1/realtime?model=MODEL_ID" -H "Authorization: Bearer $GISOO_API_KEY"
Full reference (Persian): /docs/realtime
Moderation, usage and account
POST /moderations, GET /me, GET /usage, GET /requests/{id}
Check text against a moderation model, read your balance and spend, and look up the cost record of any request. These read-only calls are never billed.
curl https://gisoo.pro/api/v1/me -H "Authorization: Bearer $GISOO_API_KEY"
curl https://gisoo.pro/api/v1/usage -H "Authorization: Bearer $GISOO_API_KEY"
Full reference (Persian): /docs/usage-api
MCP server
https://gisoo.pro/api/mcp
Use your Gisoo key from MCP clients such as Claude Desktop, Cursor or VS Code: the same key, balance and limits as the API, offered as MCP tools.
claude mcp add --transport http gisoo https://gisoo.pro/api/mcp \
--header "Authorization: Bearer $GISOO_API_KEY"
Full reference (Persian): /docs/mcp
Limits, errors and billing
Errors use the OpenAI error shape. Authentication, credit, rate-limit and bad-request errors are never billed; a provider failure before any output returns the hold. Read Pricing and billing and the full OpenAPI specification.
Prompts and responses are not stored on Gisoo. Only metadata is kept for billing and support: the model, token counts, cost, latency and IP address.