Skip to content

Node.js / TypeScript SDK

Use the official OpenAI Node.js/TypeScript SDK with Glitch by configuring the base URL and adding your Glitch API key.

import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.GLITCH_API_KEY!, // Your Glitch API key
baseURL: 'https://api.golabrat.ai/v1', // Glitch sensor URL
});
const response = await client.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' }
]
});
console.log(response.choices[0].message.content);

Handle Glitch security blocks gracefully:

import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.GLITCH_API_KEY!,
baseURL: 'https://api.golabrat.ai/v1',
});
try {
const response = await client.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: userInput }]
});
return response.choices[0].message.content;
} catch (error) {
if (error instanceof OpenAI.APIError && error.status === 403) {
// Security block - handle gracefully
return "I can't process that request.";
}
throw error;
}

The OpenAI Node.js SDK doesn’t expose response headers directly. Use fetch for direct HTTP calls to access security metadata from /v1/chat/completions responses:

const response = await fetch('https://api.golabrat.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.GLITCH_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello' }],
}),
});
// Access security headers
const blocked = response.headers.get('X-Risk-Blocked') === 'true';
const categories = response.headers.get('X-Risk-Categories');
const confidence = parseFloat(response.headers.get('X-Risk-Confidence') || '0');
if (categories) {
console.log(`Flagged: ${categories} (confidence: ${confidence})`);
}

Glitch fully supports streaming responses:

import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.GLITCH_API_KEY!,
baseURL: 'https://api.golabrat.ai/v1',
});
const stream = await client.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Write a poem' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}