Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/zurelay-com:zurelay-com-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.1.0
info:
title: zurelay-com API
version: '2026-10-31'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-31: 16 operation(s) read from 40 public documentation page(s) (each
operation names its page in x-source). This is not the provider''s published contract; zurelay-com has published no machine-readable contract
that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 3
documentation: 13
pages-with-code: 39
pages-read: 40
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-31'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://zurelay.com/glm-api
- https://zurelay.com/gpt-api
- https://zurelay.com/grok-api
- https://zurelay.com/kimi-api
- https://zurelay.com/mimo-api
- https://zurelay.com/qwen-api
- https://zurelay.com/claude-api
- https://zurelay.com/gemini-api
- https://zurelay.com/minimax-api
- https://zurelay.com/ai-image-api
- https://zurelay.com/ai-video-api
- https://zurelay.com/deepseek-api
- https://zurelay.com/seedance-api
- https://zurelay.com/gpt-image-api
- https://zurelay.com/nano-banana-api
- https://zurelay.com/text-to-speech-api
- https://zurelay.com/guides/openai-compatible-api
- https://zurelay.com/docs/chat
- https://zurelay.com/docs/images
- https://zurelay.com/docs/anthropic
- https://zurelay.com/models/glm-5.2
- https://zurelay.com/models/glm-5.3
- https://zurelay.com/models/kimi-k3
- https://zurelay.com/models/wan-3.0
- https://zurelay.com/docs/quickstart
- https://zurelay.com/models/grok-4.7
- https://zurelay.com/models/jev-1.13
- https://zurelay.com/models/jev-1.14
- https://zurelay.com/docs/nano-banana
- https://zurelay.com/docs/webhooks.md
- https://zurelay.com/models/gpt-6-sol
- https://zurelay.com/models/kimi-k2.5
- https://zurelay.com/models/kimi-k2.6
- https://zurelay.com/models/kling-3.0
- https://zurelay.com/models/kling-4.0
- https://zurelay.com/models/gpt-6-luna
- https://zurelay.com/models/minimax-h3
- https://zurelay.com/models/minimax-m3
- https://zurelay.com/docs/image-editing
- https://zurelay.com/docs/quickstart.md
servers:
- url: https://api.zurelay.com
paths:
/:
get:
operationId: get
tags:
- Api
summary: GET /
x-source: https://zurelay.com/docs/anthropic
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: 'curl main.py import os import anthropic client = anthropic . Anthropic ( base_url = "https://api.zurelay.com" , api_key = os
. environ [ "ZURELAY_API_KEY" ] , ) message = client . messages . create ( model = "claude-opus-5-5" , max_tokens = 1024 , system =
"You are a careful code reviewer." , messages = [ { "role" : "user" , "content" : "Review this function: def add(a, b): return a - b"
} ] , ) p'
/hooks/zurelay:
post:
operationId: post_hooks_zurelay
tags:
- Hooks
summary: POST /hooks/zurelay
x-source: https://zurelay.com/docs/webhooks.md
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: http
snippet: 'POST /hooks/zurelay HTTP/1.1
content-type: application/json
user-agent: Zurelay-Webhooks/1.0 (+https://zurelay.com/docs/webhooks)
webhook-id: msg_2c1f9e0b7a4d4f6e8b3a91c05d7e6f42
webhook-timestamp: 1791000094
webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4='
/v1:
get:
operationId: get_v1
tags:
- Api
summary: GET /v1
x-source: https://zurelay.com/glm-api
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: 'curl chat.py from openai import OpenAI client = OpenAI ( base_url = "https://api.zurelay.com/v1" , api_key = "YOUR_ZURELAY_KEY"
, ) stream = client . chat . completions . create ( model = "glm-5.3" , messages = [ { "role" : "user" , "content" : "Explain quicksort
briefly." } , ] , stream = True , ) for chunk in stream : if chunk . choices : print ( chunk . choices [ 0 ] . delta . content or ""
, e'
/v1/audio/speech:
post:
operationId: post_v1_audio_speech
tags:
- Audio
summary: Text-to-speech API
description: Zurelay serves Gemini text‑to‑speech models through an OpenAI‑compatible speech endpoint.
x-source: https://zurelay.com/text-to-speech-api
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1AudioSpeechRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/chat/completions:
post:
operationId: post_v1_chat_completions
tags:
- Chat
summary: Chat completions
description: OpenAI‑compatible chat completions endpoint for every text model, supporting the same request and response format, streaming,
and SDKs.
x-source: https://zurelay.com/docs/chat
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1ChatCompletionsRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1ChatCompletionsResponse'
x-evidence:
kind: documentation
/v1/images/edits:
post:
operationId: post_v1_images_edits
tags:
- Images
summary: Edit images via POST /v1/images/edits
x-source: https://zurelay.com/ai-image-api
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/images/generations:
post:
operationId: post_v1_images_generations
tags:
- Images
summary: Grok Imagine Image 2.0 is on POST /v1/images/generations
x-source: https://zurelay.com/grok-api
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/images/{id}:
get:
operationId: get_v1_images_id
tags:
- Images
summary: 'You can also poll it: GET /v1/images/{id} returns the same object, with fresh links in data once its status is completed.'
description: Polling endpoint returns the current job state.
x-source: https://zurelay.com/docs/webhooks.md
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/GetV1ImagesIdResponse'
x-evidence:
kind: documentation
/v1/messages:
post:
operationId: post_v1_messages
tags:
- Messages
summary: Claude API
description: Requests go to POST /v1/messages in Anthropic's own format, with streaming, tools and thinking.
x-source: https://zurelay.com/claude-api
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/messages/count_tokens:
post:
operationId: post_v1_messages_count_tokens
tags:
- Messages
summary: Counting tokens
description: Returns an estimate of token count for a request body identical to /v1/messages. This endpoint is free.
x-source: https://zurelay.com/docs/anthropic
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1MessagesCountTokensRequest'
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1MessagesCountTokensResponse'
x-evidence:
kind: documentation
/v1/models:
get:
operationId: get_v1_models
tags:
- Models
summary: List model IDs with GET /v1/models.
description: Provides the list of model IDs that the provider supports.
x-source: https://zurelay.com/guides/openai-compatible-api
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/systemone:
post:
operationId: post_v1_systemone
tags:
- Systemone
summary: Jev 1.13 API
description: POST a state and named questions to get typed answers with probabilities.
x-source: https://zurelay.com/models/jev-1.13
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1SystemoneRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/videos:
get:
operationId: get_v1_videos
tags:
- Videos
summary: Wan 3.0 API
description: List recent video jobs.
x-source: https://zurelay.com/models/wan-3.0
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/GetV1VideosResponse'
x-evidence:
kind: documentation
post:
operationId: post_v1_videos
tags:
- Videos
summary: Grok Imagine Video 1.5 on POST /v1/videos
x-source: https://zurelay.com/grok-api
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/videos/{id}:
get:
operationId: get_v1_videos_id
tags:
- Videos
summary: AI Video Generation API
description: Poll the job status until it is completed or failed.
x-source: https://zurelay.com/ai-video-api
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/GetV1VideosIdResponse'
x-evidence:
kind: documentation
/v1/videos/{id}/content:
get:
operationId: get_v1_videos_id_content
tags:
- Videos
summary: AI Video Generation API
description: Download the generated video content after the job is completed.
x-source: https://zurelay.com/ai-video-api
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/GetV1VideosIdContentResponse'
x-evidence:
kind: documentation
components:
schemas:
PostV1AudioSpeechRequest:
type: object
properties:
model:
type: string
description: The model ID, e.g., "gemini-3.8-flash-tts".
voice:
type: string
description: The voice name, e.g., "Kore".
input:
type: string
description: The text to be spoken.
required:
- model
- voice
- input
PostV1ChatCompletionsRequest:
type: object
properties:
model:
type: string
description: A model ID from the models page, such as claude-opus-5-5 or gpt-6-sol.
messages:
type: array
description: 'The conversation: system (or developer), user, assistant and tool messages. Content is a string, or an array of parts
to add images, PDFs, audio or video.'
stream:
type: boolean
description: Send the answer as server‑sent events while it’s written.
stream_options:
type: object
description: 'Object with "include_usage": true to add a final chunk with token usage.'
max_completion_tokens:
type: integer
description: The most tokens to generate, reasoning included. max_tokens works too.
temperature:
type: number
description: 0 to 2. Lower is more focused, higher more varied.
top_p:
type: number
description: Nucleus sampling, 0 to 1. Change this or temperature, not both.
stop:
type: string
description: Up to 4 sequences where generation stops.
tools:
type: array
description: Functions the model may call.
tool_choice:
type: string
description: auto, none, required, or a specific function.
response_format:
type: object
description: 'JSON output: { "type": "json_object" } or json_schema with a schema.'
reasoning_effort:
type: string
description: 'How hard a reasoning model thinks: none, minimal, low, medium, high, xhigh or max.'
seed:
type: integer
description: Best‑effort reproducibility, for models that support it.
models:
type: array
description: Smart routing alternatives to try, in order, if the model is down.
required:
- model
- messages
PostV1ChatCompletionsResponse:
type: object
properties:
id:
type: string
description: Identifier of the chat completion.
object:
type: string
description: '"chat.completion".'
created:
type: integer
description: Unix timestamp of creation.
model:
type: string
description: The model that answered.
choices:
type: array
description: List of completion choices.
usage:
type: object
description: Token usage details.
GetV1ImagesIdResponse:
type: object
properties:
id:
type: string
object:
type: string
description: '"image.generation"'
model:
type: string
status:
type: string
created_at:
type: integer
completed_at:
type: integer
description: null until completed
data:
type: array
description: contains URLs when completed
url_expires_at:
type: integer
cost:
type: number
error:
type: string
description: null unless failed
callback_url:
type: string
PostV1MessagesCountTokensRequest:
type: object
properties:
model:
type: string
description: Claude model name.
messages:
type: array
description: Array of message objects, same format as /v1/messages.
system:
type: string
description: System prompt.
tools:
type: array
description: Tool definitions.
required:
- model
- messages
PostV1MessagesCountTokensResponse:
type: object
properties:
input_tokens:
type: integer
description: Estimated number of input tokens for the request.
PostV1SystemoneRequest:
type: object
properties:
model:
type: string
description: Model ID, e.g., jev-1.13
state:
type: string
description: The content to decide about
questions:
type: object
description: Map of named questions, each with a type (noul, choice, score) and instructions
required:
- model
- state
- questions
GetV1VideosResponse:
type: object
properties:
videos:
type: array
description: List of recent video jobs
GetV1VideosIdResponse:
type: object
properties:
id:
type: string
status:
type: string
error.message:
type: string
description: present if status is failed
cost:
type: number
description: cost of the video when completed
GetV1VideosIdContentResponse:
type: object
properties:
content:
type: string
description: The generated video file (e.g., MP4).
securitySchemes:
bearer:
type: http
scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Audio
- name: Chat
- name: Hooks
- name: Images
- name: Messages
- name: Models
- name: Systemone
- name: Videos