A response lasts 30 days, but what about the responses under that response? For example, lets say I made a new response chained onto the previous response id each time for 30 days. I should have 60 messages now, one for each prompt and one for each response.
Lets jump ahead another 10 days. What will happen when I call https://api.openai.com/v1/responses/{response_id}/input_items with the latest response id?
Will the first 10 prompts and responses just be completely gone now that they are 30+ days old, or will they still be available in some form since the response id I’ve provided is only 10 days old in this scenario? Is there any way at all to refresh the expiration date on the older responses that I made?
My hope would be that the old messages still remain intact, at least under an active response id, as that is the only way I can see migrating from the Assistants API properly working.
Looking at the response from the input_items call, it appears each previous message has a message id. That makes me think they are now a part of the run response and won’t expire until 30 days after the run. Can anyone confirm?
They are not expiring or being removed at all as far as I can see, has far back as March 12.
The documentation is wrong. The API persistence is breaking documentation, expectations, and promises. And yet you still cannot rely on anything past the 30 days stated multiple places.
There is no endpoint for listing them that you are allowed access to, and there is no delete option in the UI logs where you see the persistence that was never disclosed.
As I reported and only receive an “I will investigate” with no investigation:
Microsoft does similar things like this where they report an expiration date of x days but then don’t actually enforce it. Unfortunately I don’t like the idea of risking my decisions on something that may suddenly get enforced sometime later.
From what I can see though, I think the answer to my question is that the new response now contains the old responses as part of it. It isn’t referencing old response ids, it seems to contain message ids for each item that if I understand correct are now part of the new run id and should last 30 days.
I wonder if I could test this by creating a response, chaining a response to that, deleting the first response, and then retrieving the input for the second response. That would clear up that the messages themselves now belong to the second response and aren’t a separate entity that both responses access.