How to use reasoning.encrypted_content with store=False (stateless)

Basically, you take the reasoning element in the response.output and pass it as a json to the already existing conversation.

In this example I just tossed the entire output as the python SDK can handle it, but if you need to do a REST request you must use an equivalent JSON.

Here is a short example.
inputs = [{  "role": "user", "content": "Explain why is the sky blue." } ]

response_1 = client.responses.create(
  model="o4-mini",
  reasoning= {"effort":"low"},
  input=inputs,
  include=['reasoning.encrypted_content'],
  store=False,
)

print('#1 First output')
for o in response_1.output:
    print(o.type,o.to_dict())

#follow up
inputs.extend(response_1.output)
inputs.append({  "role": "user", "content": "Can you summarize it in one sentence?" })
response_2 = client.responses.create(
  model="o4-mini",
  reasoning= {"effort":"low"},
  input=inputs,
  include=['reasoning.encrypted_content'],
  store=False,
)

print('#2 Second output')
for o in response_2.output:
    print(o.type,o.to_dict())
3 Likes