● Date 7 November 2026, and it is on by default.
● What is covered Ordinary text, structured outputs and tool call arguments - on both Responses and Chat Completions.
● Detect it Read the x-watermark response header. True means watermarked.
● Opting out Team admins only, and it requires declaring that a legal exception applies. Some models are locked on.
xAI is applying invisible statistical watermarks to Grok API text output from 7 November 2026. The documentation states it plainly: starting that date, responses from the covered models include a watermark. You do not opt in. There is no request parameter. The response format is unchanged apart from one new header.
Most coverage of this will stop at "Grok adds watermarks for EU compliance." The part that matters if you build on the API is narrower and stranger than that.
What is actually watermarked
Three things, which is one more than most people will assume:
- Ordinary text responses
- Structured outputs
- Tool call arguments
Tool call arguments is the one to sit with. If your agent calls a function and Grok fills the arguments, that payload is watermarked. Anything you pipe downstream - into a database, another vendor’s API, a document, a ticket - now carries a statistical signal that it came from a Grok model. Nothing in your code changes and nothing looks different. That is the point of it.
It applies on both the Responses API and the Chat Completions API, and on the global endpoint as well as regional endpoints. There is no way to request an unwatermarked response at the call level.
Which models
| Model ID | Watermarked from 7 Nov |
|---|
grok-4.7 | Yes |
grok-4.6 | Yes |
grok-4.5 | Yes |
grok-4.3 | Yes |
grok-4.20-reasoning | Yes |
grok-4.20-non-reasoning | Yes |
grok-4.20-multi-agent | Yes |
The documentation covers text generation only. It does not state whether image, video or audio output is watermarked, so treat that as unanswered rather than as a no.
How to tell whether a response was watermarked
Check the x-watermark response header. A value of true means the output was watermarked. Any other value, or no header at all, means it was not.
x-watermark: true -> this response carries a watermark
(absent or other) -> this response does not
That header is worth logging from day one, alongside the model field. Between the watermark rollout and the three model retirements xAI has run in the past five weeks, the response is now telling you things the request does not.
Detecting a watermark in text you already have is a separate matter. xAI runs a detection API that reports whether text is watermarked, not watermarked, or uncertain. Longer text produces a stronger signal. Access is granted by application rather than being generally available.
Opting out, and why it is not a simple toggle
The control exists, but it is deliberately heavier than a settings switch:
- Only team admins see the Model output watermarking row, on the Team settings page in the SpaceXSI Console.
- Open the settings icon, clear the checkboxes for the models you want to opt out of, or use Select all.
- Select Save, then confirm with Opt Out.
- The setting applies to every API key on the team - it is not per key or per project.
- New requests reflect the change within about five minutes.
Two constraints that are easy to miss. First, some models are locked on and cannot be opted out from the Console at all, so opting out is not guaranteed to be complete. Second, confirming the opt-out requires declaring that an exception under applicable law applies and that you are solely responsible for any other marking or disclosure requirements. That is a legal assertion, not a preference. Opt-ins and opt-outs are recorded in the audit log.
In practice that means the opt-out is designed for organisations that have taken legal advice, not for a developer who would rather not have the header. If you are not sure whether an exception applies to you, it does not.
What this does and does not change
| Concern | What the documentation says |
|---|
| Response quality | The FAQ states watermarking does not affect quality |
| Latency | The FAQ states it does not affect speed |
| Visible output | Invisible - adds no characters, markup or hidden text |
| Response format | Unchanged apart from the x-watermark header |
| Request format | No parameter - you cannot ask for it or refuse it per call |
| Reliability of detection | Statistical, so uncertain is a possible result |
Who needs to act, and who does not
- You call Grok and show the text to a person → nothing to do. The watermark is invisible and quality is unaffected.
- You pipe Grok output into another system → log the
x-watermark header so you know which stored records carry it. You may be asked later. - Your agent uses tool calls → the arguments are watermarked, so the signal travels with structured data, not just prose. Map where that data ends up.
- You resell or white-label Grok output → read the opt-out conditions properly before 7 November, and take advice on whether a legal exception applies.
- You operate in the EU → this is the compliance mechanism working as intended. The default is almost certainly the position you want.
- You need provenance you can prove → apply for detection API access now rather than after you need it.
The wider pattern at xAI right now
This is the fourth API-level change in five weeks that takes effect silently. grok-voice-transcribe-1.0 reached end of life on 2 October, grok-voice-2.0 was deprecated on 14 October, grok-imagine-image-quality retired on 2 November with requests redirected to a lower quality default, and now watermarking arrives on by default on 7 November.
None of these produce an error. Every one of them changes what you get back while your code keeps running. If you pin model IDs rather than using the latest aliases, the retirement and migration pages now belong on a calendar. Full timeline in our Grok updates hub for November.
FAQ
When does Grok API watermarking start?
7 November 2026. The documentation states that from that date, responses from the covered models include a watermark, and it is on by default.
Which Grok models are watermarked?
grok-4.7, grok-4.6, grok-4.5, grok-4.3, grok-4.20-reasoning, grok-4.20-non-reasoning and grok-4.20-multi-agent.
Does watermarking change the text I get back?
No. It is invisible and adds no characters, markup or hidden text. xAI states it does not affect response quality or speed. The only change to the response is the new x-watermark header.
Are tool call arguments really watermarked?
Yes. The documentation lists ordinary text responses, structured outputs and tool call arguments as covered.
Can I turn watermarking off?
A team admin can opt out per model in the SpaceXSI Console, and it applies to every API key on the team. Some models are locked on and cannot be opted out. Confirming the opt-out requires declaring that an exception under applicable law applies.
How do I check whether a specific response was watermarked?
Read the x-watermark response header. True means watermarked; anything else or no header means it was not.
Can I detect a watermark in text I already have?
Only through xAI’s detection API, which is granted by application. It returns watermarked, not watermarked, or uncertain - longer text gives a stronger signal.
Does this apply to images and video?
The page covers text generation and does not say. Treat it as unanswered rather than as a no.
Related reading
Sources
Every detail on this page was read from xAI’s own developer documentation on 2 November 2026. Nothing here is taken from secondary reporting. Check the linked page before acting - dated policies move.