Advanced API Usage
Watermarking 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.
Text 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. Audio from the voice APIs is watermarked in some regions and when you ask for it; see Audio watermarking.
Which outputs are watermarked #
Watermarking applies to text output from text generation requests, for each model that has watermarking turned on for your team.
Responses from these models can include a watermark. It's off by default, and you can turn it on per model.
- grok-4.7
- grok-4.6
- grok-4.5
- grok-4.3
- grok-4.20-reasoning
- grok-4.20-non-reasoning
- grok-4.20-multi-agent
Watermarking 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, and tool call arguments.
After watermarking is enabled for a model, it is automatically applied to all requests, with no further code changes required.
Checking whether a response was watermarked
To 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.
import { xai } from '@ai-sdk/xai';
import { generateText } from 'ai';
const { text, response } = await generateText({
model: xai.responses('grok-4.7'),
prompt: 'Write a haiku about the ocean.',
});
console.log(response.headers?.['x-watermark']);
console.log(text);
How it works #
The 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.
Our implementation uses SynthID Text, the text watermarking technique published by Google DeepMind in a Nature paper in 2024.
Detection 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.
Access to watermark detection is granted by application. You can submit a request for the detection API through this form.
How to enable text watermarking #
Team admins can turn watermarking on for some or all models in the SpaceXSI Console. The setting applies to every API key on the team.
- Open the Team settings page and find theModel output watermarking row. It showsOn (all models) ,Off (all models) , orCustom . Only team admins see this row.
- 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.
- Select Save . If you turned a model off, confirm withOpt Out .
Changes 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.
Turning 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.
Some 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?
Every opt-in and opt-out is recorded in your team's audit log. Team admins can view it on the Audit Log page 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? in the security FAQ.
Audio watermarking #
Audio from the voice APIs can also include an invisible watermark. This applies to Text to Speech and Speech to Speech, including speech in custom voices.
The watermark is AudioSeal. It is added to the audio before it is encoded, so every output format includes it, and it can't be heard.
Which audio is watermarked
Audio is watermarked when:
- The request is sent to
eu-west-1.api.x.ai. - The end user is in the EU, the EEA, or California. The location comes from the IP address of the request.
- The request asks for a watermark. See How to enable audio watermarking .
If none of these apply, the audio is not watermarked.
Checking whether audio was watermarked
Read 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.
How to enable audio watermarking
Add the x-watermark: true header to your request. If your WebSocket client can't set headers, add watermark=true to the URL instead.
curl -X POST https://api.x.ai/v1/tts \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-H "x-watermark: true" \
-d '{
"text": "Hello! Welcome to the SpaceXSI Text to Speech API.",
"voice_id": "eve",
"language": "en"
}' \
--output hello.mp3
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.
To watermark all audio for your team, email support@x.ai.
FAQ #
Do I need to change my code?
No. 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.
Does the setting apply to all of my API keys?
Yes. The setting belongs to the team, so it applies to every API key on the team. You choose it separately for each model.
Why can't I turn watermarking off for a model?
The model is locked on for your team. Locked models show in the watermarking dialog without a checkbox.
For questions about a locked model, contact your team admin. If you still have questions, email support@x.ai.
Can I turn off audio watermarking?
Audio is only watermarked in the cases listed in 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.
Does watermarking affect quality or speed?
No. Watermarking doesn't change response quality, and its effect on speed is negligible.
Last updated: November 10, 2026