If you build on the Grok API, every piece of text it returns now carries an invisible watermark. It switched on by default on 7 November 2026 for seven Grok models, on every endpoint, with no code change on your side.
xAI (now branded SpaceXSI in its developer docs) says it did this to comply with the EU AI Act. Unlike Anthropic, it lets team admins switch the mark off per model, but only after confirming a legal exception.
This guide covers which models are marked, how the watermark works, how to read the new x-watermark header in curl and Python, how to opt out, who can detect it, what it means for your apps, and how it compares with Claude, ChatGPT and Gemini.
- What: a statistical watermark baked into Grok’s word choices. No hidden characters, no metadata, no change to the response format.
- When: on by default from 7 November 2026 (docs dated 31 October).
- Models: grok-4.7, grok-4.6, grok-4.5, grok-4.3 and the three grok-4.20 variants (reasoning, non-reasoning, multi-agent).
- Covers: Responses API and Chat Completions, including structured outputs and tool-call arguments, on api.x.ai and regional endpoints.
- How to tell: marked replies carry the HTTP header
x-watermark: true. - Opt-out: team admins only, per model, in Console team settings, after confirming a legal exception. Some models can be locked on.
- Detection: statistical, via an API you must apply for. No accuracy figures published.
- Price: no change to API pricing.
What Changed on 7 November
xAI published a developer docs page called “Output Watermarking” on 31 October 2026 and, according to posts on X, emailed API customers the same day. From 7 November, text output from covered models is watermarked by default.
| Date | What happened | Source |
|---|---|---|
| 2 Aug 2026 | EU AI Act transparency rules start for new AI systems | European Commission summary (via Data Studios) |
| 31 Oct 2026 | xAI publishes the Output Watermarking docs page | docs.x.ai |
| 1-3 Nov 2026 | Data Studios, Crypto Briefing and others report the change | Press |
| 3 Nov 2026 | Anthropic switches its watermark on for three more Claude models | Claude release notes |
| 7 Nov 2026 | Grok API text watermarked by default | docs.x.ai |
| Dec 2026 | EU grace period ends for systems already on the market before 2 Aug | EU AI Act (as amended), via Data Studios |
Note: As of the first reports there was no xAI blog post or official X announcement. The developer docs page is the only primary source, and everything below is based on it and on reporting that quotes it.
Which Grok Models Are Watermarked?
Seven models are on the list. Prices below are for prompts under 200,000 tokens, as reported by Data Studios from xAI’s pricing page; the watermark does not change them.
| Model | Watermarked from 7 Nov? | Context | Input / output per 1M tokens |
|---|---|---|---|
| grok-4.7 | Yes | 500K | $2.00 / $6.00 |
| grok-4.6 | Yes | 500K | $2.00 / $6.00 |
| grok-4.5 | Yes | 500K | $2.00 / $6.00 |
| grok-4.3 | Yes | 1M | $1.25 / $2.50 |
| grok-4.20 reasoning | Yes | 1M | $1.25 / $2.50 |
| grok-4.20 non-reasoning | Yes | 1M | $1.25 / $2.50 |
| grok-4.20 multi-agent | Yes | 1M | $1.25 / $2.50 |
| grok-build-0.1 | Not on the list | 256K | $1.00 / $2.00 |
The docs do not say whether grok-build-0.1 is exempt or simply not added yet. For the full price picture see our Grok pricing guide and the AI API pricing comparison.
What is covered on those models:
- Endpoints: api.x.ai and all regional endpoints. It is not limited to EU traffic.
- APIs: the Responses API and Chat Completions.
- Output types: normal text, structured outputs (JSON) and tool-call arguments.
- Not covered by this page: image, video and voice products, which have their own policies.
The docs also say nothing about the consumer Grok app, grok.com or Grok inside X. Some X users claim subscriptions are exempt, but there is no official confirmation either way.
How the Watermark Works
When a language model writes, it often has several almost equally good next words. Normally it picks between them at random.
A statistical watermark replaces that coin flip with a secret, key-based nudge. Over hundreds of words, the pattern of choices becomes measurable by someone who holds the key, while the text still reads normally.
- No hidden characters: nothing is inserted, so stripping zero-width spaces or invisible Unicode does not remove it.
- Survives light edits: copying, reformatting and small changes usually leave enough signal.
- Weakened by heavy changes: paraphrasing, translation and heavy rewriting reduce it, and very short replies may never carry a clear signal.
- Quality claim: xAI says the watermark affects neither output quality nor latency. That is company-reported; no benchmarks were published.
This is the same family of technique as Google DeepMind’s SynthID-Text and Anthropic’s Claude watermark. Our Claude watermark explainer walks through the idea with a worked example.
How to Check the x-watermark Header
You do not need to change any request. Each marked response comes back with an HTTP header:
x-watermark: true
Per the docs, true means the output was generated with the watermark. Any other value, or no header at all, means it was not.
With curl
curl -i https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"grok-4.7","input":"Write a haiku about the ocean."}' | grep -i x-watermark
With Python (requests)
import os
import requests
resp = requests.post(
"https://api.x.ai/v1/responses",
headers={
"Authorization": f"Bearer {os.environ['XAI_API_KEY']}",
"Content-Type": "application/json",
},
json={"model": "grok-4.7", "input": "Write a haiku about the ocean."},
)
print("x-watermark:", resp.headers.get("x-watermark"))
With the OpenAI Python SDK
If you call Grok through the OpenAI SDK, use the raw-response helper to see headers:
from openai import OpenAI
import os
client = OpenAI(api_key=os.environ["XAI_API_KEY"], base_url="https://api.x.ai/v1")
raw = client.chat.completions.with_raw_response.create(
model="grok-4.7",
messages=[{"role": "user", "content": "Summarise the EU AI Act in two lines."}],
)
print("x-watermark:", raw.headers.get("x-watermark"))
completion = raw.parse()
print(completion.choices[0].message.content)
Tip: The header lives only in the HTTP response, not in the text. Log it next to each completion ID now, because you cannot recover it later from the saved text. New to the API? Start with our Grok API Python tutorial.
How to Opt Out (Admins Only)
This is the big difference from Claude, which has no opt-out. On Grok, a team admin can turn the watermark off, model by model.
- Open the xAI (SpaceXSI) Console as a team admin and go to Team settings.
- Find “Model output watermarking”. It shows On (all models), Off (all models) or Custom.
- Choose Custom to see a checkbox per model, with a Select all toggle.
- Untick the models you want unmarked and confirm with Opt Out.
- Accept the declaration. You confirm that a legal exception applies and that your team is solely responsible for any marking or disclosure duties.
- Wait about five minutes. The change applies to new requests within roughly five minutes and is written to the team audit log.
- Team-wide: the setting applies to every API key in the team. To treat workloads differently, use separate teams.
- Locked models: some models may be locked on for your team and show no checkbox. Contact your admin or xAI support.
- Exceptions in EU law: the main ones are assistive editing functions and cases that do not substantially change the deployer’s input or its meaning, per the Commission summary cited by Data Studios.
Warning: Opting out does not remove your legal duties. If you serve EU users and no exception applies, you would still need to mark or disclose AI-generated text yourself. Get legal advice before you flip the switch.
Who Can Detect Grok Text?
Not you, at least not yet. xAI runs a detection API, but access is by application through a form linked from the docs.
- Results: “watermarked”, “not watermarked” or “uncertain”. Longer passages give stronger evidence.
- Short text: short replies and small JSON objects may come back “uncertain”.
- Not published: eligibility rules, pricing, accuracy, false-positive rates and results on edited or translated text.
So no public “Is this Grok?” checker exists. Be wary of any website claiming to detect the Grok watermark. General AI detectors guess from style, not from the watermark, and our AI detectors guide explains how often they get it wrong.
What It Means for Developers, Writers and Students
Developers and SaaS builders
- No code changes: responses keep the same shape.
- Your users’ text is now marked: if you resell Grok output (copy tools, email writers, chatbots), it carries the watermark unless your admin opts out.
- Test structured output: xAI says quality is unchanged, but run your JSON schema and tool-selection tests anyway, since nothing independent confirms it.
- Byte-for-byte caching: if you deduplicate or cache by exact output, re-check that logic.
Writers, agencies and publishers
- Text drafted with the Grok API through a third-party tool can be identified later by anyone with detection access.
- Light editing will not reliably remove the mark. If disclosure matters to your clients, be upfront.
- For images, our guide on how to tell if a picture is AI covers SynthID and Content Credentials.
Students
- This affects the API. Whether text from the Grok app itself is marked has not been confirmed.
- Schools cannot check for the Grok watermark unless they get detection access, and there is no sign that is happening yet.
Grok vs Claude vs ChatGPT vs Gemini Watermarks
| Grok (xAI) | Claude (Anthropic) | ChatGPT (OpenAI) | Gemini (Google) | |
|---|---|---|---|---|
| Method | Statistical word-choice watermark | SynthID-Text-based word-choice watermark | textGrain word-choice watermark | SynthID-Text |
| API default | On for 7 models, all regions | On, no opt-out | Opt-in on select models | Not watermarked (per Google forum, Aug 2026) |
| Opt-out | Team admin, per model, legal exception required | None | Off by default on API | n/a |
| Signal to developer | x-watermark: true header |
No header documented | Not documented | n/a |
| Consumer app | Not stated | Worldwide | EU only (ChatGPT and Codex, from 5 Oct) | Gemini app since 2024 |
| Detection access | By application | Approved orgs, private preview | Approved researchers | Open-source SynthID Text detector |
The Claude, ChatGPT and Gemini rows follow our Claude watermark explainer, which cites each vendor. In short, Grok sits between Anthropic’s “always on” and OpenAI’s “opt in”: on by default everywhere, but with an exit for teams that can justify it.
Why Now: the EU AI Act
- The rule: Article 50 requires providers of systems that generate synthetic text to mark it in a machine-readable, detectable way, where technically feasible.
- Timing: it applied from 2 August 2026 for new systems. Systems already on the market get a grace period that ends in December 2026.
- Penalties: up to €15 million or 3% of worldwide annual turnover, as cited by Data Studios.
- Code of Practice: a voluntary EU Code of Practice on AI-generated content was published on 10 June 2026. The docs do not say whether xAI signed it.
Most of Grok’s covered models predate 2 August, which explains the timing: xAI is switching the mark on ahead of the December deadline.
Developer Checklist and Troubleshooting
- Decide per model whether you keep the watermark or have a documented legal reason to opt out.
- Log the header with every completion ID for an audit trail.
- Update your terms so customers know generated text may be machine-identifiable.
- Re-run your evals on JSON, tool calls and long-form output after 7 November.
- Check contracts that require unmarked output, and record any opt-out decision.
| Problem | Likely cause | Fix |
|---|---|---|
No x-watermark header |
Model not covered (e.g. grok-build-0.1) or team opted out | Check the model name and Team settings |
| Header shows in curl but not in your app | SDK hides headers | Use a raw-response helper, as in the OpenAI SDK example |
| Cannot untick a model | Model locked on for your team | Ask your admin or xAI support |
| Opt-out not taking effect | Propagation delay | Wait about five minutes and send a new request |
| Not an admin | Only admins can change it | Ask a team admin; check the audit log for changes |
What We Still Do Not Know
- Whether the consumer Grok app, grok.com and Grok in X are watermarked.
- Which models are locked on, and why grok-build-0.1 is missing.
- Detection accuracy, false-positive rates and minimum text length.
- Who qualifies for the detection API and what it costs.
- Whether xAI follows a shared standard or signed the EU Code of Practice.
My Take
For most developers this changes nothing day to day. The output looks the same and costs the same, and you gain a header you should start logging.
The opt-out is the interesting part. It makes Grok friendlier to businesses with genuine exceptions, but it also weakens the watermark as a tracing tool: unmarked Grok text proves nothing about who wrote it.
The bigger story is that three of the four major chatbot makers now mark API text in some form. If you write with AI for clients, assume it can be traced and be open about it.
FAQ
When did Grok start watermarking API text?
On 7 November 2026, by default, for seven current models across all API endpoints.
Can I see the watermark in the text?
No. It is a pattern in word choices, with no hidden characters or metadata. Only the x-watermark response header tells you it was applied.
Can I turn it off?
Only a team admin can, per model, in Console team settings, after confirming a legal exception applies. Some models may be locked on.
Does the watermark make Grok slower or worse?
xAI says it affects neither quality nor latency. That is a company claim without published benchmarks, so test your own workloads.
Can I check whether a text came from Grok?
Not yourself. Detection runs through an xAI API that requires an application, and there is no public checker.
Does paraphrasing remove it?
Heavy paraphrasing, translation or rewriting weakens it, and very short text may be inconclusive. Light edits usually leave it detectable.
Does this cost extra?
No. Reporting on xAI’s pricing says the watermark does not change API prices.
Is Grok Imagine (images and video) affected?
This policy covers text only. Image, video and voice products have separate policies that this docs page does not describe.
Sources
- xAI / SpaceXSI developer docs: “Output Watermarking” (31 Oct 2026), docs.x.ai/docs/guides/output-watermarking
- Data Studios: “Grok API to watermark text from seven models by default from November 7 (EU AI Act)” (1 Nov 2026): models, prices, opt-out UI, EU context
- NextFor.ai: “Grok API Invisible Watermark: What Changes on November 7” (2 Nov 2026)
- Presenc AI: “Grok API Watermark FAQ” (2 Nov 2026): header values, five-minute propagation, robustness
- NeuralBrew: “Grok’s API Will Watermark Generated Text by Default Starting November 7” (comparison with Claude)
- ExplainX: Grok API watermark opt-out guide (curl example)
- Crypto Briefing: “xAI adds invisible text watermarking to Grok API models” (1 Nov 2026)



