How OpenAI's eligibility list is structured
OpenAI maintains ZDR eligibility at two levels: (a) the model — specific model snapshot (e.g., gpt-5.5-2025-05-09, gpt-4.1-2024-12-17) is either in or out of ZDR scope; and (b) the endpoint family — the API surface used to invoke the model (Chat Completions, Responses, Assistants, Batch, Embeddings, etc.) is either in or out for that model.
The intersection matters. A model can be ZDR-eligible on Chat Completions and ineligible on the same model invoked via Code Interpreter (because Code Interpreter introduces persistent sandbox files). Always check both the model and the endpoint.
Typical inclusion pattern for new GA models: chat completions and embeddings are usually eligible at GA. Batch is usually eligible shortly after. Assistants v2 message generation is usually eligible at GA but the persistent surfaces (Threads, Files, vector_stores) are scoped separately.
Typical exclusion pattern: experimental / preview endpoints (early access, beta) often start outside ZDR scope. Once they reach GA and the data-handling story has been finalized, they join the eligible list.
Categorical exclusions: any endpoint that is fundamentally persistent by design (fine-tuning training data, stored Threads, file search indexes, vector_stores, persistent assistants) is not ZDR. These surfaces have separate retention and access controls; some can be configured for short retention but they are not zero-retention by definition.