AI SDKs
Email checker integration with AI SDKs. Anthropic, OpenAI, LangChain, Vercel AI SDK guides.
Build AI applications with built-in email verification capabilities using popular AI frameworks and SDKs.
Supported Frameworks
Vercel AI SDK
Tool calling with Next.js and React applications
LangChain
Custom tools for LangChain agents in Python and JavaScript
OpenAI Function Calling
Native function calling with OpenAI GPT models
Anthropic Tool Use
Tool use with Claude models
Comparison
| Framework | Language | Best For | Complexity |
|---|---|---|---|
| Vercel AI SDK | TypeScript | Next.js apps, streaming | Low |
| LangChain | Python/JS | Complex agents, chains | Medium |
| OpenAI Functions | Any | Direct GPT integration | Medium |
| Anthropic Tools | Any | Direct Claude integration | Medium |
Quick Example
Here's a simple tool definition that works across frameworks:
const verifyEmailTool = {
name: 'verify_email',
description: 'Verify if an email address is valid and deliverable',
parameters: {
type: 'object',
properties: {
email: {
type: 'string',
description: 'The email address to verify',
},
},
required: ['email'],
},
execute: async ({ email }) => {
const response = await fetch('https://api.emailverify.ai/v1/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.EMAILVERIFY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email }),
});
return response.json();
},
};Best Practices
1. Error Handling
Always handle API errors gracefully in your tools:
execute: async ({ email }) => {
try {
const response = await fetch('https://api.emailverify.ai/v1/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.EMAILVERIFY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email }),
});
if (!response.ok) {
if (response.status === 429) {
return { error: 'Rate limit exceeded. Please try again later.' };
}
return { error: `Verification failed: ${response.statusText}` };
}
return response.json();
} catch (error) {
return { error: 'Network error. Could not reach verification service.' };
}
}2. Clear Tool Descriptions
Write descriptive tool definitions so the AI knows when to use them:
description: `Verify if an email address is valid and deliverable.
Returns:
- status: "valid", "invalid", or "unknown"
- deliverable: whether the email can receive messages
- disposable: whether it's a temporary email service
- role: whether it's a role-based address like info@ or support@
- score: confidence score from 0 to 1
Use this tool when:
- User asks to verify an email
- Checking if an email is real
- Validating contact information`3. Batch for Efficiency
When verifying multiple emails, use the bulk endpoint:
const verifyEmailsBulkTool = {
name: 'verify_emails_bulk',
description: 'Verify multiple emails at once. More efficient than verifying one by one.',
parameters: {
type: 'object',
properties: {
emails: {
type: 'array',
items: { type: 'string' },
maxItems: 100,
},
},
required: ['emails'],
},
};4. Cache Results
Consider caching verification results to save credits:
const cache = new Map<string, { result: any; timestamp: number }>();
const CACHE_TTL = 3600000; // 1 hour
async function verifyWithCache(email: string) {
const cached = cache.get(email);
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
return cached.result;
}
const result = await verifyEmail(email);
cache.set(email, { result, timestamp: Date.now() });
return result;
}