Developers
Call Claude, GPT and Gemini from REST (curl)
Any language that can send an HTTPS POST can use Somnus. These curl examples show the raw request format.
Install
bash
(no install — curl)Basic request
bash
curl https://gateway-production-c837.up.railway.app/v1/chat/completions \
-H "Authorization: Bearer $SOMNUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [
{"role": "user", "content": "Explain recursion in one sentence."}
]
}'Streaming
bash
curl https://gateway-production-c837.up.railway.app/v1/chat/completions \
-H "Authorization: Bearer $SOMNUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [
{"role": "system", "content": "You are a friendly, concise assistant."},
{"role": "user", "content": "Write a haiku about the sea."}
],
"stream": true
}'JSON output
bash
curl https://gateway-production-c837.up.railway.app/v1/chat/completions \
-H "Authorization: Bearer $SOMNUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [
{"role": "system", "content": "Reply only with JSON."},
{"role": "user", "content": "Return {\"city\": ..., \"country\": ...} for the Eiffel Tower."}
],
"response_format": {"type": "json_object"}
}'REST (curl) notes
- Send the key in the Authorization: Bearer header.
- The body is standard OpenAI chat-completions JSON.
- Add "stream": true to receive server-sent events.
Questions
Which models can I use?
Any of the 50+ models on Somnus — change the model string. The examples use claude-sonnet-5.
Where do I get a key?
Create an account, and your key appears in the dashboard with $5 of free credit.
Run this code with free credit
Create an account and get $5 of free API credit — enough to try every example on this page.
Get $5 free creditRelated
Browse more: Alternatives · Compare · Use cases · Developers · Solutions · Tools