Quick Start
Start using UniterRouter's unified AI API in minutes. Step-by-step guide to integrate GPT-4, Claude, Gemini and 200+ LLM models into your Python, JavaScript, or cURL applications.
🚀 Quickstart
Welcome to UniterRouter—a unified AI gateway that lets you call 200+ large‑language models while keeping your existing code and development workflow intact.
TL;DR — Point your HTTP requests to
https://api.uniterouter.ai/v1/…, supply yourUNITEROUTER_API_KEY, and you're done.
1 · Get an API key
- Sign in to the dashboard.
- Create a new Project → Copy the key.
- Export it in your shell (or a
.envfile):
export UNITEROUTER_API_KEY="sk_XXXXXXXXXXXXXXXX"2 · Pick your language
curl -X POST https://api.uniterouter.ai/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer $UNITEROUTER_API_KEY" \-d '{"model": "gpt-4o","messages": [ {"role": "user", "content": "Hello, how are you?"}]}'const response = await fetch('https://api.uniterouter.ai/v1/chat/completions', {method: 'POST',headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${process.env.UNITEROUTER_API_KEY}`},body: JSON.stringify({ model: 'gpt-4o', messages: [ { role: 'user', content: 'Hello, how are you?' } ]})});if (!response.ok) {throw new Error(`HTTP error! status: ${response.status}`);}const data = await response.json();console.log(data.choices[0].message.content);import { useState } from 'react'function ChatComponent() {const [response, setResponse] = useState('');const [loading, setLoading] = useState(false);const sendMessage = async () => {setLoading(true);try {const res = await fetch('https://api.uniterouter.ai/v1/chat/completions', {method: 'POST',headers: {'Content-Type': 'application/json','Authorization': `Bearer ${process.env.REACT_APP_UNITEROUTER_API_KEY}`},body: JSON.stringify({model: 'gpt-4o',messages: [{ role: 'user', content: 'Hello, how are you?' }]})}); if (!res.ok) { throw new Error(`HTTP error! status: ${res.status}`); } const data = await res.json(); setResponse(data.choices[0].message.content); } catch (error) { console.error('Error:', error); } finally { setLoading(false); }};return (<div><button onClick={sendMessage} disabled={loading}> {loading ? "Sending..." : "Send Message"}</button>{response && <p>{response}</p>}</div>); }export default ChatComponent;; // app/api/chat/route.tsimport { NextRequest, NextResponse } from "next/server";export async function POST(request: NextRequest) {const { message } = await request.json();const response = await fetch('https://api.uniterouter.ai/v1/chat/completions', {method: 'POST',headers: {'Content-Type': 'application/json','Authorization': `Bearer ${process.env.UNITEROUTER_API_KEY}`},body: JSON.stringify({model: 'gpt-4o',messages: [{ role: 'user', content: message }]})});if (!response.ok) {return NextResponse.json({ error: 'Failed to get response' }, { status: response.status });}const data = await response.json();return NextResponse.json({message: data.choices[0].message.content});}// Usage in component:// const response = await fetch('/api/chat', {// method: 'POST',// headers: { 'Content-Type': 'application/json' },// body: JSON.stringify({ message: 'Hello, how are you?' })// });import requestsimport osresponse = requests.post('https://api.uniterouter.ai/v1/chat/completions',headers={'Content-Type': 'application/json','Authorization': f'Bearer {os.getenv("UNITEROUTER_API_KEY")}'},json={'model': 'gpt-4o','messages': [{'role': 'user', 'content': 'Hello, how are you?'}]})response.raise_for_status()print(response.json()['choices'][0]['message']['content'])import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.URI;String apiKey = System.getenv("UNITEROUTER_API_KEY");String requestBody = """{"model": "gpt-4o","messages": [{"role": "user", "content": "Hello, how are you?"}]}""";HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://api.uniterouter.ai/v1/chat/completions")).header("Content-Type", "application/json").header("Authorization", "Bearer " + apiKey).POST(HttpRequest.BodyPublishers.ofString(requestBody)).build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());use reqwest::Client;use serde_json::json;use std::env;#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> {let client = Client::new();let api_key = env::var("UNITEROUTER_API_KEY")?; let response = client .post("https://api.uniterouter.ai/v1/chat/completions") .header("Content-Type", "application/json") .header("Authorization", format!("Bearer {}", api_key)) .json(&json!({ "model": "gpt-4o", "messages": [ {"role": "user", "content": "Hello, how are you?"} ] })) .send() .await?; let result: serde_json::Value = response.json().await?; println!("{}", result["choices"][0]["message"]["content"]); Ok(())}package mainimport ( "bytes" "encoding/json" "fmt" "net/http" "os")type ChatRequest struct {Model string `json:"model"`Messages []Message `json:"messages"`}type Message struct {Role string `json:"role"`Content string `json:"content"`}func main() {apiKey := os.Getenv("UNITEROUTER_API_KEY") requestBody := ChatRequest{ Model: "gpt-4o", Messages: []Message{{Role: "user", Content: "Hello, how are you?"}}, } jsonData, _ := json.Marshal(requestBody) req, _ := http.NewRequest("POST", "https://api.uniterouter.ai/v1/chat/completions", bytes.NewBuffer(jsonData)) req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+apiKey) client := &http.Client{} resp, _ := client.Do(req) defer resp.Body.Close() fmt.Println("Response received")}<?php$apiKey = $_ENV['UNITEROUTER_API_KEY'];$data = ['model' => 'gpt-4o','messages' => [['role' => 'user', 'content' => 'Hello, how are you?']]];$options = [ 'http' => [ 'header' => [ 'Content-Type: application/json', 'Authorization: Bearer ' . $apiKey ], 'method' => 'POST', 'content' => json_encode($data)]];$context = stream_context_create($options);$response = file_get_contents('https://api.uniterouter.ai/v1/chat/completions',false,$context);if ($response === FALSE) {throw new Exception('Request failed');}$result = json_decode($response, true);echo $result['choices'][0]['message']['content'];?>require 'net/http'require 'json'require 'uri'uri = URI('https://api.uniterouter.ai/v1/chat/completions')http = Net::HTTP.new(uri.host, uri.port)http.use_ssl = truerequest = Net::HTTP::Post.new(uri)request['Content-Type'] = 'application/json'request['Authorization'] = "Bearer #{ENV['UNITEROUTER_API_KEY']}"request.body = {model: 'gpt-4o',messages: [{ role: 'user', content: 'Hello, how are you?' }]}.to_jsonresponse = http.request(request)if response.code != '200'raise "HTTP Error: #{response.code}"endresult = JSON.parse(response.body)puts result['choices'][0]['message']['content']3 · SDK integrations
import { createOpenAI } from "@ai-sdk/openai";
const uniterouter = createOpenAI({
baseURL: "https://api.uniterouter.ai/v1",
apiKey: process.env.UNITEROUTER_API_KEY!,
});
const completion = await uniterouter.chat({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello, how are you?" }],
});
console.log(completion.choices[0].message.content);import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://api.uniterouter.ai/v1",
apiKey: process.env.UNITEROUTER_API_KEY,
});
const completion = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello, how are you?" }],
});
console.log(completion.choices[0].message.content);4 · Going further
- Streaming: pass
stream: trueto any request—Gateway will proxy the event stream unchanged. - Monitoring: Every call appears in the dashboard with latency, cost & provider breakdown.
5 · FAQ
6 · Next steps
- Explore more features and integrations.
- Check out the API reference for detailed documentation.
Happy building! ✨
How is this guide?
Overview
Complete guide to UniterRouter - the unified AI gateway that lets you access GPT-4, Claude, Gemini and 200+ LLM models through one API. Save up to 50% on costs with intelligent routing.
Authentication
Complete guide to UniterRouter API authentication. Learn how to generate API keys, implement secure Bearer token auth, and protect your LLM API requests with best practices.