Advanced Features
Give Claude access to the web, bound how long a provider may take, and cache prompt prefixes between calls. For controlling how much Claude thinks before answering, see Extended thinking.
Use the built-in web search tool to give the model access to current information from the web.
curl -X POST "https://ai-gateway.vercel.sh/v1/messages" \
-H "Authorization: Bearer $AI_GATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-opus-5",
"max_tokens": 2048,
"tools": [
{
"type": "web_search_20250305",
"name": "web_search"
}
],
"messages": [
{
"role": "user",
"content": "What are the latest developments in quantum computing?"
}
]
}'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-opus-5',
max_tokens: 2048,
tools: [
{
type: 'web_search_20250305',
name: 'web_search',
},
],
messages: [
{
role: 'user',
content: 'What are the latest developments in quantum computing?',
},
],
});
for (const block of message.content) {
if (block.type === 'text') {
console.log(block.text);
} else if (block.type === 'web_search_tool_result') {
console.log('Search results received');
}
}import os
import anthropic
api_key = os.getenv('AI_GATEWAY_API_KEY') or os.getenv('VERCEL_OIDC_TOKEN')
client = anthropic.Anthropic(
api_key=api_key,
base_url='https://ai-gateway.vercel.sh'
)
message = client.messages.create(
model='anthropic/claude-opus-5',
max_tokens=2048,
tools=[
{
'type': 'web_search_20250305',
'name': 'web_search',
}
],
messages=[
{
'role': 'user',
'content': 'What are the latest developments in quantum computing?'
}
],
)
for block in message.content:
if block.type == 'text':
print(block.text)
elif block.type == 'web_search_tool_result':
print('Search results received')You can set per-provider timeouts for BYOK credentials to trigger fast failover when a provider is slow to respond. Pass providerTimeouts in providerOptions.gateway:
"providerOptions": {
"gateway": {
"providerTimeouts": {
"byok": { "anthropic": 3000, "bedrock": 5000 }
}
}
}For full details, limits, and response metadata, see Provider Timeouts.
Use caching: 'auto' in providerOptions.gateway to let AI Gateway automatically add cache_control breakpoints for Anthropic models. This removes the need to manually mark cacheable content.
For full details, supported providers, and examples, see Automatic Caching.
Was this helpful?