Working with the OpenAI Responses API
James Chapman
AI Curriculum Manager, DataCamp





for item in response.output:
print(item)
ResponseReasoningItem(id='rs_0471305df20125be00692440df2ed88193bd532a15ee6ab7dc',
summary=[], type='reasoning', content=None, encrypted_content=None,
status=None)
ResponseOutputMessage(id='msg_0471305df20125be00692440df642481938921f6bd2c119688',
content=[ResponseOutputText(annotations=[], text='The OpenAI...',
type='output_text', logprobs=[])],
role='assistant', status='incomplete', type='message')
for item in response.output:if item.type == "message":if item.status == "incomplete":print("Message cut-off!")
Message cut-off!
for item in response.outputs:if item.type == "reasoning"if item.summary: print(f"Reasoning Summary: {item.summary[0]}") else: print("No reasoning summary available.")if item.type == "message": print(f"Assistant: {item.content[0].output_text}")
No reasoning summary available.Assistant: The OpenAI...
Current Item Types
'reasoning''message'
for item in response.output:
if item.type == "message":
if item.status == "incomplete":
print("Message cut-off!")
New Item Types
'web_search_call''function_call''function_call_output'Working with the OpenAI Responses API