Disallow Prompt Training
No training on prompt data is available to all AI Gateway users at no extra charge. This feature ensures your prompts are not used by AI providers to train their models. Set disallowPromptTraining: true in providerOptions to ensure requests are only routed to providers that do not use your data for training.
Disallow prompt training is a subset of Zero Data Retention (ZDR). All ZDR-compliant providers also disallow prompt training, but not all providers that disallow prompt training offer full zero data retention.
AI Gateway does not use your prompts or responses for training purposes. Your data is processed solely to fulfill your requests and is not retained for model improvement.
AI Gateway has agreements in place with specific providers regarding the use of prompt data for training. A provider's default policy may not match with the status that AI Gateway has in place due to these agreements.
By default, AI Gateway does not route based on the training data policy of providers.
Set disallowPromptTraining to true in providerOptions to ensure requests are only routed to providers that do not use your data for training. If you are looking for stricter controls that apply for all requests without configuration each time, see team-wide zero data retention.
If no compliant providers are available for the requested model, the request fails with an error:
{
"error": "No providers available that disallow prompt training for model: example/model-name. \
Providers considered: provider-a, provider-b",
"type": "no_providers_available",
"statusCode": 400
}This filter also applies to any fallback providers.
This enforcement does not apply to BYOK requests since those use your own API key, configuration, and agreement with the provider. If AI Gateway falls back to AI Gateway system credentials, it honors the disallow prompt training filter on the failover request.
Set disallowPromptTraining to true in providerOptions:
import type { GatewayProviderOptions } from '@ai-sdk/gateway';
import { streamText } from 'ai';
export async function POST(request: Request) {
const result = streamText({
model: 'zai/glm-4.7',
prompt: 'Analyze this proprietary business strategy.',
providerOptions: {
gateway: {
disallowPromptTraining: true,
} satisfies GatewayProviderOptions,
},
});
return result.toUIMessageStreamResponse();
}import type { GatewayProviderOptions } from '@ai-sdk/gateway';
import { generateText } from 'ai';
export async function POST(request: Request) {
const { text } = await generateText({
model: 'zai/glm-4.7',
prompt: 'Analyze this proprietary business strategy.',
providerOptions: {
gateway: {
disallowPromptTraining: true,
} satisfies GatewayProviderOptions,
},
});
return Response.json({ text });
}Set disallowPromptTraining to true in providerOptions:
import OpenAI from 'openai';
const apiKey = process.env.AI_GATEWAY_API_KEY || process.env.VERCEL_OIDC_TOKEN;
const openai = new OpenAI({
apiKey,
baseURL: 'https://ai-gateway.vercel.sh/v1',
});
const completion = await openai.chat.completions.create({
model: 'zai/glm-4.7',
messages: [
{
role: 'user',
content: 'Analyze this proprietary business strategy.',
},
],
providerOptions: {
gateway: {
disallowPromptTraining: true,
},
},
});import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AI_GATEWAY_API_KEY"),
base_url="https://ai-gateway.vercel.sh/v1",
)
completion = client.chat.completions.create(
model="zai/glm-4.7",
messages=[
{
"role": "user",
"content": "Analyze this proprietary business strategy.",
}
],
extra_body={
"providerOptions": {
"gateway": {"disallowPromptTraining": True}
}
},
)Set disallowPromptTraining to true in providerOptions:
const apiKey = process.env.AI_GATEWAY_API_KEY || process.env.VERCEL_OIDC_TOKEN;
const response = await fetch('https://ai-gateway.vercel.sh/v1/responses', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${apiKey}`,
},
body: JSON.stringify({
model: 'zai/glm-4.7',
input: [
{
type: 'message',
role: 'user',
content: 'Analyze this proprietary business strategy.',
},
],
providerOptions: {
gateway: {
disallowPromptTraining: true,
},
},
}),
});import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AI_GATEWAY_API_KEY"),
base_url="https://ai-gateway.vercel.sh/v1",
)
response = client.responses.create(
model="zai/glm-4.7",
input=[
{
"role": "user",
"content": "Analyze this proprietary business strategy.",
}
],
extra_body={
"providerOptions": {
"gateway": {"disallowPromptTraining": True}
}
},
)Set disallowPromptTraining to true in providerOptions:
import Anthropic from '@anthropic-ai/sdk';
const apiKey = process.env.AI_GATEWAY_API_KEY || process.env.VERCEL_OIDC_TOKEN;
const anthropic = new Anthropic({
apiKey,
baseURL: 'https://ai-gateway.vercel.sh',
});
const message = await anthropic.messages.create({
model: 'anthropic/claude-sonnet-5',
messages: [
{
role: 'user',
content: 'Analyze this proprietary business strategy.',
},
],
// @ts-expect-error -- providerOptions is not in the Anthropic SDK types
providerOptions: {
gateway: {
disallowPromptTraining: true,
},
},
});import os
import anthropic
client = anthropic.Anthropic(
api_key=os.getenv("AI_GATEWAY_API_KEY"),
base_url="https://ai-gateway.vercel.sh",
)
message = client.messages.create(
model="anthropic/claude-sonnet-5",
messages=[
{
"role": "user",
"content": "Analyze this proprietary business strategy.",
}
],
extra_body={
"providerOptions": {
"gateway": {"disallowPromptTraining": True}
}
},
)Set disallowPromptTraining to true in providerOptions:
const apiKey = process.env.AI_GATEWAY_API_KEY || process.env.VERCEL_OIDC_TOKEN;
const response = await fetch('https://ai-gateway.vercel.sh/v1/responses', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${apiKey}`,
},
body: JSON.stringify({
model: 'zai/glm-4.7',
input: [
{
type: 'message',
role: 'user',
content: 'Analyze this proprietary business strategy.',
},
],
providerOptions: {
gateway: {
disallowPromptTraining: true,
},
},
}),
});import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AI_GATEWAY_API_KEY"),
base_url="https://ai-gateway.vercel.sh/v1",
)
response = client.responses.create(
model="zai/glm-4.7",
input=[
{
"role": "user",
"content": "Analyze this proprietary business strategy.",
}
],
extra_body={
"providerOptions": {
"gateway": {"disallowPromptTraining": True}
}
},
)Disallow prompt training works alongside other filtering options like Zero Data Retention (ZDR). When multiple filters are enabled, they work as an AND: requests are only routed to providers that satisfy all enabled filters.
For example, if you enable both disallow prompt training and ZDR on a request, that request will only be routed to providers that meet both criteria.
The following providers currently support no training on prompt data on AI Gateway. Please review each provider's policy and terms carefully. A provider's default policy may not match with the status that AI Gateway has in place due to negotiated agreements. We are constantly coordinating and revising agreements to be able to enforce stricter training policies for customers. The full terms of service are available for each provider on the model pages.
| Provider | No prompt training | Policy |
|---|---|---|
| Alibaba Cloud | ✓ | Product terms |
| Anthropic | ✓ | Commercial terms |
| Azure | ✓ | Data privacy |
| Baseten | ✓ | Security |
| Bedrock | ✓ | Service terms |
| ByteDance | ✓ | Service terms |
| Cerebras | ✓ | Policies |
| Chutes | ✓ | Terms |
| Claude Platform on AWS | ✓ | Data policy |
| Cohere | ✓ | Privacy policy |
| DeepInfra | ✓ | Terms |
| DigitalOcean | ✓ | — |
| Fireworks | ✓ | Privacy policy |
| ✓ | API terms | |
| Google Vertex AI | ✓ | Zero data retention |
| Groq | ✓ | Security |
| Inception | ✓ | Enterprise |
| Inceptron | ✓ | Data policy |
| Interfaze | ✓ | Privacy policy |
| Mistral | ✓ | Commercial terms |
| Modal | ✓ | Terms of service |
| Moonshot AI | ✓ | Custom policy |
| Morph | ✓ | Terms of service |
| Nebius | ✓ | Terms of service |
| Novita AI | ✓ | Privacy policy |
| OpenAI | ✓ | API data policy |
| Parallel AI | ✓ | Customer terms |
| Parasail | ✓ | Privacy policy |
| Perplexity | ✓ | Data collection |
| Prodia | ✓ | Privacy policy |
| Sakana AI | ✓ | Privacy policy |
| Together AI | ✓ | Terms of service |
| Voyage AI by MongoDB | ✓ | Terms of service |
| Wafer | ✓ | Data processing addendum |
| xAI | ✓ | Terms of service |
Was this helpful?