Complete guide for OpenAI's traditional/stateless APIs: Chat Completions (GPT-5, GPT-4o), Embeddings, Images (DALL-E 3), Audio (Whisper + TTS), and Moderation. Includes both Node.js SDK and fetch-based approaches for maximum compatibility. Use when: integrating OpenAI APIs, implementing chat completions with GPT-5/GPT-4o, generating text with streaming, using function calling/tools, creating structured outputs with JSON schemas, implementing embeddings for RAG, generating images with DALL-E 3, transcribing audio with Whisper, synthesizing speech with TTS, moderating content, deploying to Cloudflare Workers, or encountering errors like rate limits (429), invalid API keys (401), function calling failures, streaming parse errors, embeddings dimension mismatches, or token limit exceeded. Keywords: openai api, chat completions, gpt-5, gpt-5-mini, gpt-5-nano, gpt-4o, gpt-4-turbo, openai sdk, openai streaming, function calling, structured output, json schema, openai embeddings, text-embedding-3, dall-e-3, image generation, whisper api, openai tts, text-to-speech, moderation api, openai fetch, cloudflare workers openai, openai rate limit, openai 429, reasoning_effort, verbosity
OpenAI API Skill for Claude Code CLI
Status: Production Ready ✅ Latest SDK: openai@6.7.0 API Coverage: Chat Completions, Embeddings, Images, Audio, Moderation
This skill provides comprehensive knowledge for building applications with OpenAI's traditional/stateless APIs - Chat Completions, Embeddings, Images (DALL-E 3), Audio (Whisper + TTS), and Moderation.
✅ Chat Completions API with GPT-5, GPT-4o, GPT-4 Turbo ✅ GPT-5 specific parameters (reasoning_effort, verbosity) ✅ Streaming with Server-Sent Events (SSE) ✅ Function calling (custom tools) ✅ Structured outputs (JSON schema validation) ✅ Vision (image understanding with GPT-4o) ✅ Embeddings (text-embedding-3-small/large with custom dimensions) ✅ Images (DALL-E 3 generation + editing with transparent backgrounds) ✅ Audio (Whisper transcription + TTS with 11 voices) ✅ Moderation (content safety checks) ✅ Both Node.js SDK and fetch-based (Cloudflare Workers) approaches
openai apichat completionschatgpt apigpt-5gpt-5-minigpt-5-nanogpt-4ogpt-4 turboopenai sdkopenai npmopenai streamingstream chat completionssse streaming openaiserver-sent events openaistreaming tokens openaifunction calling openaiopenai toolstool calling openaistructured output openaijson mode openaijson schema openaiopenai validationgpt-4o visionimage understanding openaivision api openaianalyze image gptmultimodal gptreasoning_effortverbosity openaigpt-5 parametersgpt-5 limitationsno temperature gpt-5no top_p gpt-5openai embeddingstext-embedding-3-smalltext-embedding-3-largetext-embedding-ada-002embeddings apivector embeddings openaicustom dimensions embeddingsembeddings batch processingembeddings ragdall-e 3dall-e-3image generation openaiopenai imagesgenerate image gptdalle apiimage editing openaitransparent background dalledall-e qualitydall-e hdwhisper apiopenai transcriptionaudio transcription openaiwhisper transcriptionopenai ttstext to speech openaispeech synthesis openaitts-1tts-1-hdgpt-4o-mini-ttsopenai voicesalloy voicenova voiceopenai moderationcontent moderation openaimoderation apicontent safety openaiomni-moderation-latestopenai nodeopenai typescriptopenai javascriptopenai fetchopenai cloudflare workersopenai browseropenai rate limitopenai 429openai 401rate limit exceeded openaiinvalid api key openaifunction calling error openaitool schema invalid openaistreaming parse error openaisse error openaiembeddings dimension errorwhisper format errortts voice not founddall-e generation failedtoken limit exceeded openaiapi key exposurenextjs openaireact openaicloudflare workers openaivercel openaiopenai backendopenai serveropenai vs responses apichat completions vs responsesstateless openaitraditional openai apiimport OpenAI from 'openai';
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
const completion = await openai.chat.completions.create({
model: 'gpt-5',
messages: [
{ role: 'user', content: 'What are the three laws of robotics?' }
],
reasoning_effort: 'medium',
});
console.log(completion.choices[0].message.content);
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${env.OPENAI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'gpt-5',
messages: [
{ role: 'user', content: 'What are the three laws of robotics?' }
],
reasoning_effort: 'medium',
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);
| Issue | Cause | Solution | |-------|-------|----------| | Rate limit 429 errors | Too many requests | Exponential backoff pattern | | Invalid API key (401) | Missing OPENAI_API_KEY | Environment variable setup | | Function schema errors | Invalid tool definition | JSON schema validation | | Streaming parse errors | Incomplete SSE chunks | Proper SSE parsing | | Vision encoding errors | Invalid base64 | Correct image encoding | | Embeddings dimension mismatch | Wrong model dimensions | Verify model specs | | Audio format errors | Unsupported format | Use mp3/wav/etc | | TTS voice not found | Invalid voice name | Use one of 11 voices | | Token limit exceeded | Input too long | Truncate or chunk | | API key exposure | Client-side key | Server-side proxy |
Traditional/stateless API for:
Stateful/agentic API for:
Use both: openai-api for simple tasks, openai-responses for complex agentic workflows
Savings: ~59% (12,500 tokens)
# From claude-skills repo root
./scripts/install-skill.sh openai-api
# Verify installation
ls -la ~/.claude/skills/openai-api
npm install openai@6.7.0
export OPENAI_API_KEY="sk-..."
Production Validated: Templates tested with openai@6.7.0 Last Updated: 2025-10-25 Maintainer: Jeremy Dawes | Jezweb
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer