Using the Responses API - migration guide from Chat Completions
Marcus WebbMar 1, 2026
With the new Responses API, I wanted to document my migration experience from Chat Completions.
Key differences
1. Input format is simplified — no more role/content message objects for simple queries 2. Built-in tool definitions replace function calling 3. Streaming uses a different event format 4. Web search and file search are first-class tools
# Old way (Chat Completions)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)New way (Responses API)
response = client.responses.create(
model="gpt-4o",
input="Hello"
)
The Responses API feels much more ergonomic. The main gotcha is that the streaming event names changed.
5.1k views26 replies72 likes
Log in to reply to this topic.