Gemini API Request Logging Is On by Default in New Projects
Create a paid Gemini API project today and your prompts and responses get stored unless someone says otherwise. Gemini API request logging is now on by default for projects created on or after Oct. 26, 2026, with a default retention of 55 days. Here is what changed, what it means for privacy, and what to check on Monday.
What changed in Gemini API request logging
Google's AI Studio changelog says new projects using the Generate Content API on the paid tier now store requests by default (store=true). That covers generateContent, streamGenerateContent and batchGenerateContent. The Interactions API already worked this way.
Three details decide whether this touches you:
- Only new projects changed. Projects created before Oct. 26 keep their existing Generate Content setting, which is off unless someone enabled it in AI Studio.
- Only paid projects store logs. The logs and datasets docs say storage is only available on the paid tier.
- The request wins. A request-level
storeproperty takes precedence over the project setting.
Retention: 55 days by default, shorter if you ask
Logs expire and are marked for deletion after 55 days. A project owner can change the window to 7, 14, 28 or 55 days in the Gemini Logs and Datasets page in AI Studio. Logs saved into a dataset don't expire.
Gemini API privacy: stored is not the same as shared
Storing a request is not training on it. For billing-enabled projects, the logging policy says prompts and responses in logs are not used for product improvement or development by default.
Sharing a dataset is a different decision. A shared dataset is processed under Google's terms for "Unpaid Services": it may be used to improve and train models, and human reviewers may read and annotate it. Google says it disconnects the data from your Google Account, API key and Cloud project before reviewers see it.
The policy also says not to donate data from API clients available to users in the EEA, Switzerland or the UK, or any personal, sensitive or confidential data. Read the sharing option each time you create a dataset instead of clicking through.
What to audit in new projects on Monday
- Find the projects that changed. List Gemini API projects created on or after Oct. 26 and note which have billing enabled.
- Check the switch. Open the Settings panel in Logs and Datasets and confirm Generate Content logging matches what your data owner intends.
- Pick a retention window. Choose the shortest of 7, 14, 28 or 55 days that still covers your debugging needs.
- Inspect existing datasets. They don't expire, and some may be shared.
- Check SDK versions. Setting
storeper request needsgoogle-genai2.33.0 (Python),@google/genai2.31.0 (JavaScript),google-genai1.79.0 (Java) orgoogle.golang.org/genai1.76.0 (Go), or later. On older SDKs the project switch is the only lever the docs describe.
Pin the minimums so a stale lockfile doesn't undo your policy:
# requirements.txt
google-genai>=2.33.0
{
"dependencies": {
"@google/genai": "^2.31.0"
}
}
Java and Go need the versions from step 5 in their own build files.
Opt out of Gemini API request logging per request
For traffic that should never be stored, such as support tickets full of customer data, set store to false on that request. This small helper makes every caller decide:
from google import genai
client = genai.Client()
def generate(contents: str, *, store: bool, model: str = 'gemini-3.8-flash'):
# store has no default on purpose: callers must choose
return client.models.generate_content(
model=model,
contents=contents,
config={'store': store},
)
response = generate('Summarize this support ticket: ...', store=False)
print(response.text)
The store key lives inside config, as in Google's own example. Because the request-level value beats the project setting, store=False holds even when project logging is on. The JavaScript equivalent:
import { GoogleGenAI } from '@google/genai';
const client = new GoogleGenAI({});
const response = await client.models.generateContent({
model: 'gemini-3.8-flash',
contents: 'Summarize this support ticket: ...',
config: {
store: false // do not log this request
}
});
console.log(response.text);
Gotchas
- Interactions API state. Turning Interactions logging off in Settings stops the API from automatically storing and retrieving conversation history unless you override it per request, which can break server-side state.
- Not-logged list is not a privacy plan. Logging isn't supported for Imagen, Veo, embedding models, the Robotics model, inputs containing videos, GIFs or PDFs, or public preview agents.
- Deleted keys hide logs. A project needs at least one active API key for its logs to display.
If you run Gemini in production, assume a new paid project is storing prompts, and set the retention window and opt-out rules before the first customer request arrives.