import { NextResponse } from 'next/server';
import logger from '@/lib/logger';
export async function GET() {
try {
if (!process.env.ELEVENLABS_AGENT_ID) {
throw new Error('ELEVENLABS_AGENT_ID environment variable is not set');
}
const response = await fetch(
`https://api.elevenlabs.io/v1/convai/conversation/get-signed-url?agent_id=${process.env.ELEVENLABS_AGENT_ID}`,
{
headers: {
'xi-api-key': process.env.ELEVENLABS_API_KEY!,
},
}
);
if (!response.ok) {
const errorText = await response.text();
logger.error('ElevenLabs API error:', response.status, errorText);
throw new Error(`Failed to get signed URL: ${response.status} ${errorText}`);
}
const data = await response.json();
return NextResponse.json({ signedUrl: data.signed_url });
} catch (error) {
logger.error('Error generating signed URL:', error);
return NextResponse.json(
{ error: 'Failed to generate signed URL' },
{ status: 500 }
);
}
}