{"slug": "grok-api-text-watermarking-is-now-off-by-default", "title": "Grok API text watermarking is now 'off' by default", "summary": "SpaceXSI's Grok API now ships with text watermarking off by default, requiring team admins to enable it per model in the SpaceXSI Console for models including 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. The invisible watermark, built on Google DeepMind's SynthID Text technique published in Nature in 2024, slightly shapes token selection during generation and is reported via an x-watermark header on Responses API and Chat Completions API calls, with changes applying to new requests within 5 minutes. SpaceXSI says watermarking can help enable compliance with the EU AI Act, while detection access is granted by application and returns watermarked, not watermarked or uncertain based on statistical scoring that strengthens with longer text.", "body_md": "#### [Advanced API Usage](#advanced-api-usage)\n\n# [Output Watermarking](#output-watermarking)\n\nWatermarking embeds an invisible signal in text and audio generated by Grok models, so the output can later be identified as AI-generated. Watermarking can help enable compliance with the EU AI Act.\n\nText watermarking is off by default. Team admins can turn it on per model in the SpaceXSI Console's team settings; see [How to enable text watermarking](#how-to-enable-text-watermarking). Audio from the voice APIs is watermarked in some regions and when you ask for it; see [Audio watermarking](#audio-watermarking).\n\n## [Which outputs are watermarked](#which-outputs-are-watermarked)\n\nWatermarking applies to text output from text generation requests, for each model that has watermarking turned on for your team.\n\nResponses from these models can include a watermark. It's off by default, and you can [turn it on per model](#how-to-enable-text-watermarking).\n\n- grok-4.7\n- grok-4.6\n- grok-4.5\n- grok-4.3\n- grok-4.20-reasoning\n- grok-4.20-non-reasoning\n- grok-4.20-multi-agent\n\nWatermarking applies to outputs from every text generation API, including the Responses API and the Chat Completions API. It covers the generated text you receive in the response: ordinary text responses, [structured outputs](https://docs.x.ai/developers/model-capabilities/text/structured-outputs), and [tool call](https://docs.x.ai/developers/tools/function-calling) arguments.\n\nAfter watermarking is enabled for a model, it is automatically applied to all requests, with no further code changes required.\n\n### [Checking whether a response was watermarked](#checking-whether-a-response-was-watermarked)\n\nTo check whether a response was watermarked, read the `x-watermark` header on the Responses API or Chat Completions API response. `x-watermark: true` means the output for that request was generated with the watermark. Any other value, or no header at all, means it was not.\n\n``` js\nimport { xai } from '@ai-sdk/xai';\nimport { generateText } from 'ai';\n\nconst { text, response } = await generateText({\n  model: xai.responses('grok-4.7'),\n  prompt: 'Write a haiku about the ocean.',\n});\n\nconsole.log(response.headers?.['x-watermark']);\nconsole.log(text);\n```\n\n## [How it works](#how-it-works)\n\nThe watermark is not visible. It is applied while the model generates text: it slightly shapes which tokens the model picks, so it adds no characters, markup, or hidden text to the response.\n\nOur implementation uses SynthID Text, the text watermarking technique published by Google DeepMind in a [Nature paper](https://doi.org/10.1038/s41586-024-08025-4) in 2024.\n\nDetection is statistical. SpaceXSI scores a piece of text against the watermark and reports whether it is watermarked, not watermarked, or uncertain. Longer text gives a stronger signal.\n\nAccess to watermark detection is granted by application. You can submit a request for the detection API through [this form](https://docs.google.com/forms/d/e/1FAIpQLSc6zpONhSgvde0GbNmfGajT6QoyO0T-fX8UBMhmd14h-UtabQ/viewform).\n\n## [How to enable text watermarking](#how-to-enable-text-watermarking)\n\nTeam admins can turn watermarking on for some or all models in the SpaceXSI Console. The setting applies to every API key on the team.\n\n1. Open the [Team settings page](https://console.x.ai/team/default/settings/team?utm_source=docs&utm_medium=referral&utm_campaign=developers-watermarking&utm_content=team-settings) and find the**Model output watermarking** row. It shows**On (all models)** ,**Off (all models)** , or**Custom** . Only team admins see this row.\n2. Select the settings icon next to it, then select the checkbox for each model you want to watermark. **Select all** turns every model on or off at once.\n3. Select **Save** . If you turned a model off, confirm with**Opt Out** .\n\nChanges apply to new requests within 5 minutes. After you turn a model on, its new requests include the watermark; after you turn it off, they stop including it.\n\nTurning a model off asks you to confirm that an exception under applicable law applies to your use, and that you are solely responsible for any marking, disclosure, or other legal requirement.\n\nSome models may be locked on for your team. Locked models are listed in the dialog but cannot be turned off from the Console. To ask about a locked model, see [Why can't I turn watermarking off for a model?](#why-cant-i-turn-watermarking-off-for-a-model)\n\nEvery opt-in and opt-out is recorded in your team's audit log. Team admins can view it on the [Audit Log page](https://console.x.ai/team/default/audit?utm_source=docs&utm_medium=referral&utm_campaign=developers-watermarking&utm_content=audit) in the SpaceXSI Console. To find a change, search by event ID, description, or user, and use the time filter to narrow the results to a range of dates. For screenshots of these filters, see [Do you have audit logs?](https://docs.x.ai/developers/faq/security#do-you-have-audit-logs) in the security FAQ.\n\n## [Audio watermarking](#audio-watermarking)\n\nAudio from the voice APIs can also include an invisible watermark. This applies to [Text to Speech](https://docs.x.ai/developers/model-capabilities/audio/text-to-speech) and [Speech to Speech](https://docs.x.ai/developers/model-capabilities/audio/speech-to-speech), including speech in [custom voices](https://docs.x.ai/developers/model-capabilities/audio/custom-voices).\n\nThe watermark is [AudioSeal](https://github.com/facebookresearch/audioseal). It is added to the audio before it is encoded, so every output format includes it, and it can't be heard.\n\n### [Which audio is watermarked](#which-audio-is-watermarked)\n\nAudio is watermarked when:\n\n- The request is sent to `eu-west-1.api.x.ai` .\n- The end user is in the EU, the EEA, or California. The location comes from the IP address of the request.\n- The request asks for a watermark. See [How to enable audio watermarking](#how-to-enable-audio-watermarking) .\n\nIf none of these apply, the audio is not watermarked.\n\n### [Checking whether audio was watermarked](#checking-whether-audio-was-watermarked)\n\nRead the `x-watermark` header on the response, as with text. `x-watermark: true` means the audio was watermarked, and `x-watermark: false` means it was not. For WebSocket connections, the header is on the response that opens the connection.\n\n### [How to enable audio watermarking](#how-to-enable-audio-watermarking)\n\nAdd the `x-watermark: true` header to your request. If your WebSocket client can't set headers, add `watermark=true` to the URL instead.\n\n```\ncurl -X POST https://api.x.ai/v1/tts \\\n  -H \"Authorization: Bearer $XAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-watermark: true\" \\\n  -d '{\n    \"text\": \"Hello! Welcome to the SpaceXSI Text to Speech API.\",\n    \"voice_id\": \"eve\",\n    \"language\": \"en\"\n  }' \\\n  --output hello.mp3\n```\n\n`x-watermark: false` doesn't remove a watermark that is required by the user's location or the EU endpoint. Any value other than `true` or `false` returns a `400` error.\n\nTo watermark all audio for your team, email [support@x.ai](mailto:support@x.ai).\n\n## [FAQ](#faq)\n\n### [Do I need to change my code?](#do-i-need-to-change-my-code)\n\nNo. Text watermarking is turned on in the Console, and audio is watermarked where required without any changes. To watermark other audio, send the `x-watermark: true` header.\n\n### [Does the setting apply to all of my API keys?](#does-the-setting-apply-to-all-of-my-api-keys)\n\nYes. The setting belongs to the team, so it applies to every API key on the team. You choose it separately for each model.\n\n### [Why can't I turn watermarking off for a model?](#why-cant-i-turn-watermarking-off-for-a-model)\n\nThe model is locked on for your team. Locked models show in the watermarking dialog without a checkbox.\n\nFor questions about a locked model, contact your team admin. If you still have questions, email [support@x.ai](mailto:support@x.ai).\n\n### [Can I turn off audio watermarking?](#can-i-turn-off-audio-watermarking)\n\nAudio is only watermarked in the cases listed in [Which audio is watermarked](#which-audio-is-watermarked). When the request is sent to the EU endpoint, or the end user is in the EU, the EEA, or California, the watermark can't be turned off.\n\n### [Does watermarking affect quality or speed?](#does-watermarking-affect-quality-or-speed)\n\nNo. Watermarking doesn't change response quality, and its effect on speed is negligible.\n\nLast updated: November 10, 2026", "url": "https://wpnews.pro/news/grok-api-text-watermarking-is-now-off-by-default", "canonical_source": "https://docs.x.ai/developers/advanced-api-usage/watermarking", "published_at": "2026-11-11 12:11:01+00:00", "updated_at": "2026-11-11 12:50:58.991301+00:00", "lang": "en", "topics": ["ai-policy", "large-language-models", "generative-ai", "ai-safety", "developer-tools"], "entities": ["SpaceXSI", "Grok", "Google DeepMind", "SynthID Text", "grok-4.7", "EU AI Act", "Nature"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/grok-api-text-watermarking-is-now-off-by-default", "markdown": "https://wpnews.pro/news/grok-api-text-watermarking-is-now-off-by-default.md", "text": "https://wpnews.pro/news/grok-api-text-watermarking-is-now-off-by-default.txt", "jsonld": "https://wpnews.pro/news/grok-api-text-watermarking-is-now-off-by-default.jsonld"}}