Picture the day you rebuild a paid Google Cloud project for a new app prototype. You issue a key, the first request goes through, and you finally relax. Then you open Logs in AI Studio, and the text you sent is sitting there in a neat list.
As an indie developer, I pass user-written app review text straight into the API for translation. Names and email addresses sometimes ride along, so "where does this end up?" is a question I want answered before the demo works, not after.
On October 26, 2026, the Gemini API changelog added one line about exactly this. What I'd like to say first is that you don't need to panic and switch everything off. There are just three places to check.
What changed, read as the changelog words it
The entry is titled "Generate Content API storage on by default". In short:
- It covers
generateContent,streamGenerateContentandbatchGenerateContent - Paid projects created on or after October 26 default to
store=true - Existing projects keep their current setting
- To opt out, set
store=falseon individual requests, or turn logging off in Settings under Logs and Datasets in AI Studio
If you only skim the headline, it sounds like everyone's setting changed. On my first read I nearly took it that way too. The body says plainly that existing projects stay as they are, so only newly created paid projects are affected.
| Project state | generateContent default |
|---|---|
| Paid project created on or after Oct 26 | Stored (store=true) |
| Paid project created earlier | Unchanged (not stored unless logging was enabled in AI Studio) |
| Free-tier project | Log storage itself is a paid-tier feature |
The Interactions API already stored requests by default. This change brings generateContent in line with it.
Check 1: is your project affected?
Look at the project's creation date. If it's October 26 or later, assume storage is on. The Google Cloud console's project list shows it. If you're unsure, open Logs in AI Studio and see whether recent requests appear.
If they do, storage is active. If not, nothing is being stored right now. One caveat: Logs only displays for a project with at least one active API key. Deleting every key hides the logs, but it doesn't mean what was stored is gone.
Check 2: turn it off for the whole project
If a project doesn't need storage at all, open Settings under Logs and Datasets in AI Studio. generateContent and the Interactions API can be switched separately.
One thing is easy to miss. Turning off Interactions logging also stops automatic saving and retrieval of conversation history. If your implementation leans on server-side history, it will behave differently unless you override it per request.
If you're rethinking where history should live, keeping history on the server versus pruning it on the client may help.
Check 3: set store per request
To keep the project setting but skip storage for particular calls, override it on the request. The official documentation shows a Python SDK example that passes store in config.
from google import genai
client = genai.Client() # the API key is read from the environment
response = client.models.generate_content(
model="MODEL_ID", # replace with the model ID you actually use
contents="Translate this text into Japanese: ...",
config={"store": False}, # do not store this request only
)
print(response.text)The SDK version is where people may get stuck. According to the documentation, using store with generateContent requires google-genai 2.33.0 or later. Check your installed version first:
pip show google-genai | grep VersionFor direct REST calls, the field name wasn't in the pages I read. I'd rather not guess, so please confirm it in the official API reference before relying on it.
The request-level setting wins over the project-level one. That means you can put store=False only on calls that might carry personal data and leave the rest at the default.
If you decide to keep storage: shorten retention
Sometimes you want storage for debugging. In that case, tighten retention. The default is 55 days, and you can choose 7, 14, 28 or 55. Logs are marked for deletion after the window (datasets you save don't expire).
| How you use the API | Suggested setup |
|---|---|
| Routinely send input that may contain personal data | Turn storage off project-wide, or use store=False on those calls |
| Want to review failed inputs and outputs while developing | Keep storage, set retention to 7 or 14 days |
| Want to keep examples for evaluation | Save only what you need as a dataset |
Some inputs are outside logging: inputs with video, GIFs or PDFs, and models such as Imagen, Veo and embeddings. I'd still avoid treating "not logged" as your basis for handling personal data.
What the official pages did not say
Neither the changelog nor the Logs and Datasets page states exactly what is stored beyond "requests", or whether logs are used for training. I won't fill that gap with a guess. The "data logging and sharing" terms on the official site are the part to read against your own use.
For my own projects, I'd check in this order: the creation date, whether history shows up in Logs, and whether calls that carry personal data have store=False. Those three go at the top of my checklist for any new project.
If you can spare a minute today, open Logs on the most recent paid project you created, just once.