Compatibility
Which OpenAI and Anthropic features work through Morphogen.
Morphogen proxies the request body as is and accepts any of the three text formats for any text model. What exactly works depends on the model: support for tools, images and cache differs between models.
Formats
| Feature | Status |
|---|---|
OpenAI Chat Completions, POST /v1/chat/completions | Yes |
OpenAI Responses, POST /v1/responses | Without stored history |
Anthropic Messages, POST /v1/messages | Yes |
Embeddings, POST /v1/embeddings | Yes |
Speech recognition, POST /v1/audio/transcriptions | Yes |
Images, POST /v1/images/generations | Only b64_json |
Video, POST /v1/videos | Yes, asynchronous |
Model features
| Feature | Status |
|---|---|
Streaming responses (stream: true) | Yes |
| Tool calls | On models that support tool use |
| Images in the input | In all three formats |
| Prompt cache | Explicit for Claude through cache_control, implicit for GPT and Gemini |
Stored responses and previous_response_id | No, the answer is 400 stateful_not_supported |
response_format: "url" for images | No |
| Web search | Soon |
Parameters the model ignores
A parameter the model does not support is ignored without an error. For example, temperature has no effect on some models, and seed exists only on GPT models. You do not need to write code for a specific model.
Tools
| Tool | Format | Page |
|---|---|---|
| Claude Code | Anthropic Messages | Claude Code |
| Codex | Responses, no stored history | Codex |
| Cursor, Cline | OpenAI-compatible | Cursor and Cline |
Check.
The table describes the API behavior at the time of publication. New client versions may send parameters that Morphogen does not accept. The error message and its code help you find the cause: Errors.