JavaScript Examples¶
Learn how to integrate our AI-powered API into your JavaScript applications with these comprehensive examples.
Setup¶
Browser (ES6 Modules)¶
<!DOCTYPE html>
<html>
<head>
<title>AI API Example</title>
</head>
<body>
<div id="output"></div>
<script type="module">
import { APIClient } from 'https://cdn.example.com/api-client.js';
const client = new APIClient('your-api-key');
// Your code here
</script>
</body>
</html>
Node.js¶
const { APIClient } = require('@example/api-client');
// or
import { APIClient } from '@example/api-client';
Basic Usage¶
Initialize the Client¶
const client = new APIClient('your-api-key', {
baseURL: 'https://api.example.com/v1',
timeout: 30000,
retries: 3
});
Generate Text¶
async function generateText() {
try {
const response = await client.generate({
prompt: "Write a short story about a robot learning to paint",
model: "gpt-4",
max_tokens: 300,
temperature: 0.7
});
console.log('Generated text:', response.content);
return response;
} catch (error) {
console.error('Error generating text:', error.message);
throw error;
}
}
// Usage
generateText();
Generate Images¶
async function generateImage() {
try {
const response = await client.generateImage({
prompt: "A serene lake at sunset with mountains in the background",
model: "dall-e-3",
size: "1024x1024",
quality: "standard"
});
console.log('Image URL:', response.url);
return response;
} catch (error) {
console.error('Error generating image:', error.message);
throw error;
}
}
Analyze Text¶
async function analyzeText() {
try {
const response = await client.analyze({
text: "I absolutely love this new AI technology! It's amazing.",
tasks: ["sentiment", "entities", "keywords"],
language: "en"
});
console.log('Sentiment:', response.sentiment);
console.log('Entities:', response.entities);
console.log('Keywords:', response.keywords);
return response;
} catch (error) {
console.error('Error analyzing text:', error.message);
throw error;
}
}
Advanced Examples¶
Chat Application¶
class ChatBot {
constructor(apiKey) {
this.client = new APIClient(apiKey);
this.conversation = [];
}
async sendMessage(message) {
// Add user message to conversation
this.conversation.push({
role: 'user',
content: message
});
try {
const response = await this.client.chat({
messages: this.conversation,
model: "gpt-4",
max_tokens: 150
});
// Add AI response to conversation
this.conversation.push({
role: 'assistant',
content: response.content
});
return response.content;
} catch (error) {
console.error('Chat error:', error.message);
throw error;
}
}
clearConversation() {
this.conversation = [];
}
}
// Usage
const bot = new ChatBot('your-api-key');
bot.sendMessage("Hello! How are you?")
.then(response => console.log('Bot:', response))
.catch(error => console.error('Error:', error));
Content Generator¶
class ContentGenerator {
constructor(apiKey) {
this.client = new APIClient(apiKey);
}
async generateBlogPost(topic, style = 'informative') {
const prompt = `Write a comprehensive blog post about ${topic} in a ${style} style.
Include an introduction, main points, and conclusion.`;
try {
const response = await this.client.generate({
prompt,
model: "gpt-4",
max_tokens: 800,
temperature: 0.7
});
return response.content;
} catch (error) {
console.error('Error generating blog post:', error.message);
throw error;
}
}
async generateSocialMediaPost(topic, platform = 'twitter') {
const maxLength = platform === 'twitter' ? 280 : 2200;
const prompt = `Create a ${platform} post about ${topic}. Keep it under ${maxLength} characters.`;
try {
const response = await this.client.generate({
prompt,
model: "gpt-4",
max_tokens: 100,
temperature: 0.8
});
return response.content;
} catch (error) {
console.error('Error generating social media post:', error.message);
throw error;
}
}
}
// Usage
const generator = new ContentGenerator('your-api-key');
generator.generateBlogPost('artificial intelligence', 'educational')
.then(post => console.log('Blog post:', post));
generator.generateSocialMediaPost('AI trends', 'linkedin')
.then(post => console.log('LinkedIn post:', post));
Real-time Translation¶
class Translator {
constructor(apiKey) {
this.client = new APIClient(apiKey);
}
async translate(text, targetLanguage, sourceLanguage = 'auto') {
const prompt = `Translate the following text to ${targetLanguage}${sourceLanguage !== 'auto' ? ` from ${sourceLanguage}` : ''}: "${text}"`;
try {
const response = await this.client.generate({
prompt,
model: "gpt-4",
max_tokens: 200,
temperature: 0.3
});
return response.content;
} catch (error) {
console.error('Translation error:', error.message);
throw error;
}
}
async detectLanguage(text) {
const prompt = `Detect the language of this text and respond with only the language name: "${text}"`;
try {
const response = await this.client.generate({
prompt,
model: "gpt-4",
max_tokens: 10,
temperature: 0.1
});
return response.content.trim();
} catch (error) {
console.error('Language detection error:', error.message);
throw error;
}
}
}
// Usage
const translator = new Translator('your-api-key');
translator.translate("Hello, how are you?", "Spanish")
.then(translation => console.log('Translation:', translation));
translator.detectLanguage("Bonjour, comment allez-vous?")
.then(language => console.log('Detected language:', language));
Error Handling¶
Comprehensive Error Handling¶
class APIError extends Error {
constructor(message, code, details) {
super(message);
this.name = 'APIError';
this.code = code;
this.details = details;
}
}
async function handleAPIRequest(requestFn) {
try {
return await requestFn();
} catch (error) {
if (error.response) {
// Server responded with error status
const { status, data } = error.response;
switch (status) {
case 401:
throw new APIError('Invalid API key', 'AUTH_ERROR', data);
case 429:
throw new APIError('Rate limit exceeded', 'RATE_LIMIT', data);
case 400:
throw new APIError('Invalid request', 'BAD_REQUEST', data);
case 500:
throw new APIError('Server error', 'SERVER_ERROR', data);
default:
throw new APIError(`HTTP ${status}`, 'HTTP_ERROR', data);
}
} else if (error.request) {
// Network error
throw new APIError('Network error', 'NETWORK_ERROR', error.request);
} else {
// Other error
throw new APIError(error.message, 'UNKNOWN_ERROR', error);
}
}
}
// Usage
handleAPIRequest(() => client.generate({
prompt: "Test prompt",
model: "gpt-4"
}))
.then(response => console.log('Success:', response))
.catch(error => {
console.error(`${error.name}: ${error.message}`);
if (error.details) {
console.error('Details:', error.details);
}
});
Rate Limiting¶
Implement Rate Limiting¶
class RateLimitedClient {
constructor(apiKey, requestsPerMinute = 60) {
this.client = new APIClient(apiKey);
this.requestsPerMinute = requestsPerMinute;
this.requests = [];
}
async makeRequest(requestFn) {
// Clean old requests
const now = Date.now();
this.requests = this.requests.filter(time => now - time < 60000);
// Check rate limit
if (this.requests.length >= this.requestsPerMinute) {
const oldestRequest = this.requests[0];
const waitTime = 60000 - (now - oldestRequest);
throw new Error(`Rate limit exceeded. Try again in ${Math.ceil(waitTime / 1000)} seconds.`);
}
// Add current request
this.requests.push(now);
// Make the actual request
return await requestFn();
}
async generate(options) {
return this.makeRequest(() => this.client.generate(options));
}
async generateImage(options) {
return this.makeRequest(() => this.client.generateImage(options));
}
}
// Usage
const rateLimitedClient = new RateLimitedClient('your-api-key', 30);
// This will respect the rate limit
for (let i = 0; i < 5; i++) {
rateLimitedClient.generate({
prompt: `Request ${i + 1}`,
model: "gpt-4"
})
.then(response => console.log(`Request ${i + 1} completed`))
.catch(error => console.error(`Request ${i + 1} failed:`, error.message));
}
Next Steps¶
- Python Examples - Examples in Python
- cURL Examples - Command line examples
- API Reference - Complete API documentation
- Best Practices - Recommended patterns
Last update:
July 14, 2025
Created: July 14, 2025
Created: July 14, 2025