Skip to main content

OpenAI compatible protocol

Connect OpenAI compatible clients with the /v1 Base URL.

Common endpoints

This page lists OpenAI compatible text, Responses, image, video-task, audio, vector, moderation, and realtime endpoints. Video parameters and polling flow have a separate guide; actual availability depends on the model and Key group.

Models and discovery

PurposeMethodPath
Model listGET/v1/models

Text and responses

PurposeMethodPath
Text completions (legacy)POST/v1/completions
Chat completionsPOST/v1/chat/completions
ResponsesPOST/v1/responses
Responses compactionPOST/v1/responses/compact

Images

PurposeMethodPath
Image generationPOST/v1/images/generations
Image editsPOST/v1/images/edits

Video tasks

PurposeMethodPath
Create a video taskPOST/v1/videos
Get video task statusGET/v1/videos/{task_id}
Get video contentGET/v1/videos/{task_id}/content
Create video generation task (compatible)POST/v1/video/generations
Get video generation task (compatible)GET/v1/video/generations/{task_id}

Audio

PurposeMethodPath
Audio transcriptionPOST/v1/audio/transcriptions
Audio translationPOST/v1/audio/translations
Text to speechPOST/v1/audio/speech

Vectors and retrieval

PurposeMethodPath
Text embeddingsPOST/v1/embeddings
Document rerankingPOST/v1/rerank

Safety and realtime

PurposeMethodPath
Content moderationPOST/v1/moderations
Realtime (WebSocket)GET/v1/realtime

Minimal request

Clients usually use https://api.popgo.site/v1 as the Base URL and Authorization: Bearer YOUR_API_KEY for authentication. Replace YOUR_MODEL with an ID from the model page and confirm that the model supports the target endpoint.

curl https://api.popgo.site/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL",
"messages": [
{"role": "user", "content": "Reply with a connection confirmation"}
]
}'

Verify

Verify the model and protocol with a minimal request before enabling streaming, tools, image, or audio options. For a 404, check that the Base URL did not receive a second /v1; for a 400, check endpoint capability.