GET
/api/health
Probes backend capabilities (Groq LLM/STT, Sarvam TTS) and issues an IP-bound cryptographic session token valid for 30 minutes.
curl -s https://aravind.me/api/health
# Response:
# {
# "ok": true,
# "groq": true,
# "sarvam": true,
# "chat": true,
# "stt": true,
# "tts": true,
# "chatModel": "openai/gpt-oss-120b",
# "sessionToken": "..."
# }
POST
/api/chat
Streams grounded Server-Sent Events (SSE) from Groq (openai/gpt-oss-120b) conditioned on Aravind's canonical profile data.
curl -X POST https://aravind.me/api/chat \
-H "Content-Type: application/json" \
-H "x-portfolio-session: <SESSION_TOKEN>" \
-d '{"messages":[{"role":"user","content":"What is Aravind's product management background?"}]}'
POST
/api/chat-summary
Generates a concise 2–3 sentence grounded voiceover summary of a concierge response for speech synthesis.
curl -X POST https://aravind.me/api/chat-summary \
-H "Content-Type: application/json" \
-H "x-portfolio-session: <SESSION_TOKEN>" \
-d '{"text":"Aravind is a Product Manager with experience at Target..."}'
POST
/api/stt
Transcribes user audio recording via Groq Whisper Turbo (whisper-large-v3-turbo).
curl -X POST https://aravind.me/api/stt \
-H "x-portfolio-session: <SESSION_TOKEN>" \
-F "audio=@recording.wav"
POST
/api/tts
Synthesizes speech using Sarvam Bulbul (bulbul:v3), returning raw audio/wav binary.
curl -X POST https://aravind.me/api/tts \
-H "Content-Type: application/json" \
-H "x-portfolio-session: <SESSION_TOKEN>" \
-d '{"text":"Hello! I am Aravind\'s AI concierge."}' \
--output speech.wav