gptlisted
Install: claude install-skill runapi-ai/gpt
# GPT on RunAPI
Use OpenAI-compatible clients at `https://runapi.ai/v1` as the primary protocol.
## Primary protocol recipe
### Authenticate
Set `OPENAI_API_KEY` to a RunAPI API key and `OPENAI_BASE_URL` to `https://runapi.ai/v1`.
### Send request
```python
from openai import OpenAI
client = OpenAI(api_key="YOUR_RUNAPI_TOKEN", base_url="https://runapi.ai/v1")
response = client.responses.create(model="gpt-5.5", input="Summarize this review.")
print(response.output_text)
print(response.usage)
```
Use `client.chat.completions.create` for `gpt-5.2`, which does not accept
Responses. Use Responses for `gpt-5.*-pro`. Use `client.embeddings.create` only
with the three embedding model IDs below. For streaming Responses, set
`stream=True` and consume through one usage-bearing `response.completed`
followed by `[DONE]`.
For `gpt-5.6-luna`, `gpt-5.6-sol`, and `gpt-5.6-terra`, start with text input,
sync or SSE transport, parameterized custom functions, and automatic prompt
caching. `gpt-5.3-codex-spark` has the same verified subset with parameterless
custom functions. Add reasoning controls, multimodal input, hosted tools, or
continuation state only when the current RunAPI contract verifies that shape.
### Verify result
Responses require final output, `response.completed`, and `usage`. Chat requires
final assistant content, `finish_reason`, and `usage`. Embeddings require one
numeric vector per input and response `usage`.
### Stop boundaries
Correct a rejected shape once using