# Using \`reasoning.encrypted\_content\` with background mode?

**URL:** <https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811>\
**Category:** Feedback\
**Tags:** reasoning, responses\
**Created:** [June 24, 2025, 9:56pm UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811 "2025-06-24T21:56:56Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![manouchehri](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/manouchehri/32/194066_2.png) [@manouchehri](https://community.openai.com/u/manouchehri)\
**Post date:** [June 24, 2025, 9:56pm UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/1 "2025-06-24T21:56:56Z")

</div>

Enabling encrypted reasoning items is great, super useful for gaining more context control on reasoning models.

Background mode is also very helpful for slow models like `o3-pro`. But… when we use that `"background": true`, `"store": true` is required, which is disallowed when using `reasoning.encrypted_content`. ☹

[https://platform.openai.com/docs/guides/reasoning/how-reasoning-works?api-mode=responses#encrypted-reasoning-items](https://platform.openai.com/docs/guides/reasoning/how-reasoning-works?api-mode=responses#encrypted-reasoning-items)

[https://platform.openai.com/docs/guides/background](https://platform.openai.com/docs/guides/background)

Could we have this restriction loosened? (Resorting to the Batch API isn’t doable on Azure OpenAI yet sadly for `o3-pro`.)

---

<div class="post-metadata">

**Author:** ![edwinarbus](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/edwinarbus/32/455108_2.png) [@edwinarbus](https://community.openai.com/u/edwinarbus)\
**Post date:** [June 24, 2025, 10:26pm UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/2 "2025-06-24T22:26:25Z")

</div>

Yeah, by the nature of background mode, store has to be set to true. We’re working on some better methods here in this area, though. Wonder if you can share any more about your use-case?

---

<div class="post-metadata">

**Author:** ![manouchehri](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/manouchehri/32/194066_2.png) [@manouchehri](https://community.openai.com/u/manouchehri)\
**Post date:** [June 25, 2025, 4:21am UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/3 "2025-06-25T04:21:08Z")

</div>

> [@edwinarbus](#):
>
> Yeah, by the nature of background mode, store has to be set to true.

Yep, totally okay with me!

> [@edwinarbus](#):
>
> Wonder if you can share any more about your use-case?

Sure! Here’s one example I don’t mind sharing publicly:

I am asking many questions (coding related) in parallel (\>100) about the same goal/task (but with different approaches), and the vast majority of responses do _not_ have a correct answer (which I am able to check by running the code). If I had to use `previous_response_id`, this would make my script \>100 times slower, _and_ I would have to pay extra in input tokens for all the verifiably incorrect answers/reasoning objects.

Once I have a few valid answers, I concat the reasoning and outputs only from the verifiably correct answers. I then add a final user message to combine the best parts of each approach. (Previously, I was only using the text outputs and not the reasoning objects, which resulted in worse perf and higher reasoning token usage.)

I’d be happy to hop on a call if you’d like me to show my other reasonings (pun intended). 🙂 It’s basically some creative logic to squeeze out better reasoning perf for hard problems (with the tradeoff being cost and latency).

---

<div class="post-metadata">

**Author:** ![edwinarbus](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/edwinarbus/32/455108_2.png) [@edwinarbus](https://community.openai.com/u/edwinarbus)\
**Post date:** [June 25, 2025, 4:21pm UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/4 "2025-06-25T16:21:20Z")

</div>

Would webhooks help here?

---

<div class="post-metadata">

**Author:** ![manouchehri](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/manouchehri/32/194066_2.png) [@manouchehri](https://community.openai.com/u/manouchehri)\
**Post date:** [June 25, 2025, 4:46pm UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/5 "2025-06-25T16:46:42Z")

</div>

I’d love webhooks in general, but I’m not sure I see how it would solve this specific issue.

Unless you’re suggesting that this would be possible:

```sh
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "o3-pro-2025-06-10",
    "input": "Hello",
    "include": ["reasoning.encrypted_content"],
    "background": true,
    "store": false,
    "webhook": {
      "url": "https://example.ai.moda/webhook123",
      "method": "POST",
      "headers": {
        "Authorization": "Bearer $MY_WEBHOOK_API_KEY"
      },
      "include": ["response"]
    }
  }' -v

```

And then OpenAI would POST the full response object to my webhook endpoint when it’s ready. IMO this would be nice since this would allow users to give OpenAI a presigned S3 URL for logging (even when background mode isn’t required/used).

---

<div class="post-metadata">

**Author:** ![manouchehri](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/manouchehri/32/194066_2.png) [@manouchehri](https://community.openai.com/u/manouchehri)\
**Post date:** [June 25, 2025, 4:47pm UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/6 "2025-06-25T16:47:17Z")

</div>

For this specific problem though, this would be an easier solution (if it was allowed):

```sh
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "o3-pro-2025-06-10",
    "input": "Hello",
    "include": ["reasoning.encrypted_content"],
    "background": true,
    "store": true
  }' -v

```

---

<div class="post-metadata">

**Author:** ![edwinarbus](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/edwinarbus/32/455108_2.png) [@edwinarbus](https://community.openai.com/u/edwinarbus)\
**Post date:** [June 26, 2025, 12:33am UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/7 "2025-06-26T00:33:59Z")

</div>

Gotcha, makes sense. Encrypted items require stateless, so there isn’t an easy way to enable them with background mode. Running reasoning in foreground (no background mode) when using encrypted content, and relying on polling/previous\_response\_id are the only workarounds now. Sorry 😕

---

<div class="post-metadata">

**Author:** ![manouchehri](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/manouchehri/32/194066_2.png) [@manouchehri](https://community.openai.com/u/manouchehri)\
**Post date:** [June 26, 2025, 1:04am UTC](https://community.openai.com/t/using-reasoning-encrypted-content-with-background-mode/1297811/8 "2025-06-26T01:04:38Z")

</div>

Is there a technical reason why we can’t have both?
