Key facts
| Compatibility | OpenAI-compatible /v1/chat/completions and /v1/embeddings |
| Code change | Set base_url to api.plugsky.com and choose a model name |
| SDKs | Existing OpenAI SDKs work (Python, Node/TypeScript, Go, Java, Rust) |
| Streaming | Live |
| JSON mode | Live |
| Function calling | Live |
| Coming soon | Files, batch, audio, images, assistants, responses endpoints |
| Free tier | 2 free AI models (plugsky-micro, plugsky-lite), no card |
TL;DR
- Keep your OpenAI SDK — change the base URL and the model name.
- Chat, streaming, JSON mode, function calling and embeddings are live.
- Files, batch, audio, images, assistants and responses are coming soon.
- Run your existing tests against Plugsky before cutting production traffic over.
- Begin free with two models; use the 14-day full-access trial for stronger models.
How it works, step by step
- Create a Plugsky API key on the free plan — no card required.
- Point the OpenAI client at the Plugsky base URL, keeping your existing SDK version.
- Map each OpenAI model name you use to a Plugsky model or alias.
- Exercise the exact features you rely on: streaming, tools, JSON mode and embeddings.
- Run your test suite and evals on the same prompts, then compare output quality.
- Roll traffic over gradually and keep the base URL change reversible.
Try it yourself
Open the OpenAI compatibility checker →
What carries over unchanged
The core request shapes are the same, so most application code does not change:
- Chat completions:
POST /v1/chat/completionsaccepts the same messages array, temperature and max-token style parameters. - Streaming: server-sent events behave as your SDK expects.
- JSON mode: request structured output through the same response-format pattern.
- Function calling:
toolsandtool_choicepayloads keep their shape, andtool_callscome back the same way. - Embeddings:
POST /v1/embeddingsis live for retrieval and RAG workloads.
In practice the migration is a configuration change, not a rewrite. See the docs for the exact parameter matrix.
What to verify before cutover
Compatibility is not the same as parity. Before switching production traffic:
- Confirm the models you depend on exist, and map names explicitly rather than relying on defaults.
- Check tokenizer differences — token counts, context limits and truncation behaviour can vary by model.
- Re-run evals: a prompt tuned on one model often needs light adjustment on another.
- Check error handling: keep your retry and fallback logic, and confirm error codes your code branches on.
- Measure latency and throughput on your real workload, not a hello-world call.
Keep the old base URL behind a flag so rollback is one configuration value.
What is not available yet
Plugsky does not replace every OpenAI endpoint today. Files, batch, audio, images, assistants and responses are labelled coming soon in the docs, so plan around them or keep a secondary provider for those workloads. Chat, streaming, JSON mode, function calling, embeddings and RAG are live. If your application depends mostly on chat-style endpoints, the switch is small; if it depends on the batch or assistant APIs, treat this as a phased migration.
Honest comparison
| Capability | Plugsky | Typical alternative provider | Building your own client |
|---|---|---|---|
| Chat completions | OpenAI-compatible, live | Usually compatible | Full implementation |
| Streaming | Live | Common | You implement SSE handling |
| Function calling | Live | Varies by model | You implement tool loop |
| Embeddings | Live via /v1/embeddings | Often separate pricing | You host an embedding model |
| Batch and files | Coming soon | Often available | You build the pipeline |
| Migration effort | Base URL plus model mapping | Varies | Weeks to months |
Frequently asked questions
Do I need to install a Plugsky-specific SDK?
No. Use the OpenAI SDK you already have and point it at the Plugsky base URL with a Plugsky API key.
Which SDK languages are documented?
Python and Node/TypeScript are covered directly, and code samples exist for Go, Java/Kotlin and Rust in the docs.
Will streaming behave the same?
Yes. Streaming is live and returns server-sent events in the shape your OpenAI SDK expects.
Does function calling work with the same payload?
Yes — tools, tool_choice and tool_calls keep the OpenAI shape, though tool-calling quality varies by model, so check the capability matrix.
What about the OpenAI Assistants API?
Assistants and responses endpoints are coming soon. For now, build agent loops in your own code using function calling.
Can I still use openai-python with async?
Yes. Compatibility is at the HTTP API level, so sync and async clients both work unchanged apart from configuration.
What does it cost to try?
The free plan includes two models with no card, and a 14-day full-access trial is available. See the live pricing page for current plans.