API Reference
One endpoint. Five frontier models. Billed in ₹. Aikipedia gives you direct access to Claude, Gemini, DeepSeek, Mistral, and Qwen through a single simple REST API — no dollar conversion, no subscriptions, no surprises.
Your user_id is your API key. Log in to see it below.
-- Echos
Your API Key
Your user_id doubles as
your API key. It is generated when you create your account.
Quickstart
user_id is
your API key.https://backend.aikipedia.workers.dev/chat
and ship something great.Authentication
Aikipedia does not use bearer tokens or separate API keys. Instead, your user_id
(shown after login) acts as your API key. Pass it in the JSON body as user_id on every
request.
Credits & Billing
Aikipedia uses a credit system called Echos. Each API call deducts a small amount based on the model and token count. There are no subscriptions — credits are valid for up to one year from purchase.
Top up via UPI, RuPay, or Visa cards starting at ₹49 — paid directly in rupees, zero forex charges.
POST /chat
The single endpoint for all chat and vision requests.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | Req | Your API key (your user_id after login) |
| message | string | Req | The user message to send to the model |
| model | string | Req | Model identifier (see table below) |
| history | array | Req | Conversation history. Pass [] for
single-turn |
| systemPrompt | string | Req | System instructions. Pass "" for
default behavior |
| image_url | string | Opt | Public image URL. Only for vision-capable models (Gemini Flash, Claude 3 Haiku) |
All Models
| Model | ID (use in API) | Type | Vision |
|---|---|---|---|
| Claude 3 Haiku Anthropic |
anthropic/claude-3-haiku
|
Text | Yes |
| Gemini 2.5 Flash |
google/gemini-2.5-flash
|
Vision | Yes |
| DeepSeek V3 DeepSeek |
deepseek/deepseek-chat-v3-0324
|
Text | No |
| Codestral Mistral |
mistralai/codestral-2501
|
Text | No |
| Qwen 2.5 Coder Alibaba |
qwen/qwen-2.5-coder-32b-instruct
|
Text | No |
Text Models
Use text models for code generation, reasoning, writing, and conversation. image_url is not supported for these models.
curl -X POST https://backend.aikipedia.workers.dev/chat \
-H 'Content-Type: application/json' \
-d '{
"user_id": "YOUR_USER_ID",
"message": "Explain bubble sort in Python",
"model": "qwen/qwen-2.5-coder-32b-instruct",
"history": [],
"systemPrompt": ""
}'
import requests
response = requests.post(
"https://backend.aikipedia.workers.dev/chat",
json={
"user_id": "YOUR_USER_ID",
"message": "Explain bubble sort in Python",
"model": "qwen/qwen-2.5-coder-32b-instruct",
"history": [],
"systemPrompt": "" # Required; leave blank for default
}
)
print(response.json())
const res = await fetch("https://backend.aikipedia.workers.dev/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "YOUR_USER_ID",
message: "Explain bubble sort in Python",
model: "qwen/qwen-2.5-coder-32b-instruct",
history: [],
systemPrompt: ""
})
});
const data = await res.json();
console.log(data);
const axios = require("axios");
const { data } = await axios.post(
"https://backend.aikipedia.workers.dev/chat",
{
user_id: "YOUR_USER_ID",
message: "Explain bubble sort in Python",
model: "qwen/qwen-2.5-coder-32b-instruct",
history: [],
systemPrompt: ""
}
);
console.log(data);
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]interface{}{
"user_id": "YOUR_USER_ID",
"message": "Explain bubble sort in Python",
"model": "qwen/qwen-2.5-coder-32b-instruct",
"history": []string{},
"systemPrompt": "",
})
resp, _ := http.Post(
"https://backend.aikipedia.workers.dev/chat",
"application/json",
bytes.NewBuffer(body),
)
fmt.Println(resp.Status)
}
HttpClient client = HttpClient.newHttpClient();
String body = """
{"user_id":"YOUR_USER_ID","message":"Explain bubble sort",
"model":"qwen/qwen-2.5-coder-32b-instruct",
"history":[],"systemPrompt":""}
""";
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://backend.aikipedia.workers.dev/chat"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
<?php
$payload = json_encode([
"user_id" => "YOUR_USER_ID",
"message" => "Explain bubble sort in Python",
"model" => "qwen/qwen-2.5-coder-32b-instruct",
"history" => [],
"systemPrompt" => ""
]);
$ctx = stream_context_create([
"http" => [
"method" => "POST",
"header" => "Content-Type: application/json\r\n",
"content" => $payload,
]
]);
echo file_get_contents("https://backend.aikipedia.workers.dev/chat", false, $ctx);
require 'net/http'
require 'json'
uri = URI('https://backend.aikipedia.workers.dev/chat')
Net::HTTP.post(uri, {
user_id: "YOUR_USER_ID",
message: "Explain bubble sort in Python",
model: "qwen/qwen-2.5-coder-32b-instruct",
history: [],
systemPrompt: ""
}.to_json, "Content-Type" => "application/json").tap { |r| puts r.body }
using System.Net.Http;
using System.Text;
using System.Text.Json;
var client = new HttpClient();
var payload = JsonSerializer.Serialize(new {
user_id = "YOUR_USER_ID",
message = "Explain bubble sort in Python",
model = "qwen/qwen-2.5-coder-32b-instruct",
history = Array.Empty<object>(),
systemPrompt = ""
});
var res = await client.PostAsync(
"https://backend.aikipedia.workers.dev/chat",
new StringContent(payload, Encoding.UTF8, "application/json")
);
Console.WriteLine(await res.Content.ReadAsStringAsync());
Vision Models
Send images alongside text using image_url.
Only Gemini 2.5 Flash and Claude 3 Haiku support vision.
The image must be a publicly accessible URL.
curl -X POST https://backend.aikipedia.workers.dev/chat \
-H 'Content-Type: application/json' \
-d '{
"user_id": "YOUR_USER_ID",
"message": "What is in this image?",
"model": "google/gemini-2.5-flash",
"image_url": "https://your-public-image-url.com/photo.jpg",
"history": [],
"systemPrompt": ""
}'
import requests
response = requests.post(
"https://backend.aikipedia.workers.dev/chat",
json={
"user_id": "YOUR_USER_ID",
"message": "What is in this image?",
"model": "google/gemini-2.5-flash",
"image_url": "https://your-public-image-url.com/photo.jpg",
"history": [],
"systemPrompt": ""
}
)
print(response.json())
const res = await fetch("https://backend.aikipedia.workers.dev/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "YOUR_USER_ID",
message: "What is in this image?",
model: "google/gemini-2.5-flash",
image_url: "https://your-public-image-url.com/photo.jpg",
history: [],
systemPrompt: ""
})
});
console.log(await res.json());
const axios = require("axios");
const { data } = await axios.post(
"https://backend.aikipedia.workers.dev/chat",
{
user_id: "YOUR_USER_ID",
message: "What is in this image?",
model: "google/gemini-2.5-flash",
image_url: "https://your-public-image-url.com/photo.jpg",
history: [],
systemPrompt: ""
}
);
console.log(data);
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]interface{}{
"user_id": "YOUR_USER_ID",
"message": "What is in this image?",
"model": "google/gemini-2.5-flash",
"image_url": "https://your-public-image-url.com/photo.jpg",
"history": []string{},
"systemPrompt": "",
})
resp, _ := http.Post(
"https://backend.aikipedia.workers.dev/chat",
"application/json",
bytes.NewBuffer(body),
)
fmt.Println(resp.Status)
}
String body = """
{"user_id":"YOUR_USER_ID","message":"What is in this image?",
"model":"google/gemini-2.5-flash",
"image_url":"https://your-public-image-url.com/photo.jpg",
"history":[],"systemPrompt":""}
""";
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://backend.aikipedia.workers.dev/chat"))
.header("Content-Type","application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
System.out.println(HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString()).body());
<?php
$payload = json_encode([
"user_id" => "YOUR_USER_ID",
"message" => "What is in this image?",
"model" => "google/gemini-2.5-flash",
"image_url" => "https://your-public-image-url.com/photo.jpg",
"history" => [],
"systemPrompt" => ""
]);
$ctx = stream_context_create([
"http" => ["method"=>"POST","header"=>"Content-Type: application/json\r\n","content"=>$payload]
]);
echo file_get_contents("https://backend.aikipedia.workers.dev/chat", false, $ctx);
require 'net/http'; require 'json'
uri = URI('https://backend.aikipedia.workers.dev/chat')
res = Net::HTTP.post(uri, {
user_id: "YOUR_USER_ID", message: "What is in this image?",
model: "google/gemini-2.5-flash",
image_url: "https://your-public-image-url.com/photo.jpg",
history: [], systemPrompt: ""
}.to_json, "Content-Type" => "application/json")
puts res.body
var payload = JsonSerializer.Serialize(new {
user_id = "YOUR_USER_ID",
message = "What is in this image?",
model = "google/gemini-2.5-flash",
image_url = "https://your-public-image-url.com/photo.jpg",
history = Array.Empty<object>(),
systemPrompt = ""
});
var res = await new HttpClient().PostAsync(
"https://backend.aikipedia.workers.dev/chat",
new StringContent(payload, Encoding.UTF8, "application/json")
);
Console.WriteLine(await res.Content.ReadAsStringAsync());
Reset Key
If you believe your API key has been compromised, reset it below. Your old key will be immediately invalidated. All applications using the old key will need to be updated.