Cehpoint AI API
Zero-friction chat completions. No auth. One model. Unlimited possibilities.
India-built, OpenAI-compatible, and made to grow with you. Start free with no key, scale to the Commercial API for production, and request any capability your team needs — we ship customer-requested features every month.
Endpoint
Send requests to this URL. No authentication headers needed. Just Content-Type: application/json and your messages.
Model
| Model | Description |
|---|---|
cehpoint-ai | The only model — smart, fast, general-purpose. Use it for everything. |
"model": "cehpoint-ai" in your requests. Other models will return a 400 error.Request Parameters
| Param | Type | Default | Required | Description |
|---|---|---|---|---|
model | string | — | Yes | cehpoint-ai |
messages | array | — | Yes | Array of {role, content} objects |
temperature | number | 1.0 | No | 0–2. Lower = more precise |
max_tokens | number | 4096 | No | Max response length |
stream | bool | false | No | SSE streaming |
The only two things you must send are model and messages. Everything else is optional.
Message Roles
| Role | Purpose |
|---|---|
system | Sets assistant behavior and constraints |
user | Your questions or instructions |
assistant | Previous AI replies for multi-turn context |
Use system to control personality/tone. Use assistant for follow-up conversations.
Response Format
{
// standard chat completion response
"model": "cehpoint-ai",
"provider": "ai-api.cehpoint.co.in",
"choices": [{
"message": { "content": "Hello!" },
"finish_reason": "stop"
}],
"usage": { "total_tokens": 52 }
}
Standard JSON response structure. The provider field is set to our domain. model is always cehpoint-ai.
Error Codes
| Code | Cause |
|---|---|
400 | Missing or unknown model — make sure model is cehpoint-ai |
502 | Upstream provider unavailable — try again in a few seconds |
Limits
| Limit | Value |
|---|---|
| Max tokens per response | 4096 |
| Rate limit | None enforced (please use responsibly) |
| Authentication | None required |
Text-to-Speech
Convert text to natural speech. Premium accounts get an HD neural voice; free and anonymous requests use the standard voice. Returns binary audio (audio/wav or audio/mpeg).
| Method | Endpoint | Purpose |
|---|---|---|
POST | /v1/tts | Convert text to speech — returns binary audio. |
GET | /v1/tts/voices | List voices, languages and whether HD is active for you. |
| Field | Type | Notes |
|---|---|---|
text | string | Required. The text to speak. |
lang | string | 2-letter language code (e.g. en, hi). Default en. |
gender | string | male or female. Default male. |
curl https://ai-api.cehpoint.co.in/v1/tts \ -H "Content-Type: application/json" \ -d '{"text":"Hello from Cehpoint AI","lang":"en","gender":"female"}' \ --output speech.wav
Cehpoint Reader
Cehpoint Reader turns any web page or document URL into clean, readable text for LLM and RAG pipelines — it fetches the page, strips scripts, navigation and ads, and returns the main content, title and links as JSON. It runs on its own base URL and does not require a Cehpoint AI key.
| Method | Endpoint | Notes |
|---|---|---|
BASE | https://r.cehpoint.co.in | Standalone service base URL. |
POST | / | Body { "url": "https://…" }. Anonymous is free (rate-limited per IP). |
For a higher daily allowance, create a Reader key (it begins with cehr_) from your dashboard and send it as Authorization: Bearer cehr_your_key.
curl https://r.cehpoint.co.in/ \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com"}'
Cehpoint Code
Cehpoint Code is an AI engineer that turns a plain-language request into a finished, downloadable deliverable — a website or tool, a business document or model, a data analysis, or a report. Each build runs privately in an isolated sandbox and returns the produced files. Use it in the browser at /code, or via the API below with your Cehpoint AI key (cehp_) or a Commercial key (cehk_ — dedicated quota).
| Method | Endpoint | Notes |
|---|---|---|
POST | /v1/code/run | Body { "prompt": "...", "type": "web|doc|data|report|auto", "files": [{"name","content_b64"}] }. Returns { id, status }. |
GET | /v1/code/:id | Poll a build → { status, deliverables:[{name,size}], summary }. status: queued / running / done / timeout / failed. |
GET | /v1/code/:id/file?name=... | Download a produced deliverable. |
GET | /v1/code/quota | Remaining builds today for your key's plan. |
The 5-minute policy. Every build has a strict five-minute limit so the queue stays fast. If a build needs longer it returns status: "timeout" — re-submit to run it again as a fresh build (which counts as your next build). Free keys get a daily allowance; Commercial keys get a dedicated, much higher quota.
curl https://ai.cehpoint.co.in/v1/code/run \ -H "Authorization: Bearer cehp_your_key" \ -H "Content-Type: application/json" \ -d '{"prompt": "Build a landing page for a bakery", "type": "web"}'
Team & Invites
A commercial licence owner can bring their team onto the same account. Invites are managed from the dashboard and via these session-authenticated endpoints.
| Method | Endpoint | Who | Purpose |
|---|---|---|---|
GET | /v1/me/team | owner / member | List roster and pending invites. |
POST | /v1/me/team/invite | owner | Create a shareable invite link (raw token returned once). |
GET | /v1/invite/:token | public | Describe an invite (org + role) before sign-in. |
POST | /v1/invite/:token/accept | invitee | Join the org as a member after signing in. |
Roles. Owner — full control of keys, grounding and team. Member — can use the API and manage the knowledge base, but not keys, grounding or team. Raw invite tokens are never stored (only a hash) and never logged.
Commercial API
The public endpoint above is free and key-less for builders and prototypes. When you ship to production — with commercial-use rights, higher throughput, dedicated support, GST invoicing and your own licence key — move to the Commercial API. It's the same OpenAI-compatible interface and the same cehpoint-ai model, just an authenticated, metered base URL. See plans & get a key →
Authentication
Unlike the free endpoint, every commercial request is authenticated with your licence key as a Bearer token:
Keys begin with cehk_ and are issued from your dashboard once a licence is active. Treat a key like a password — keep it server-side. Requests without a valid key return 401 Unauthorized.
Endpoint & migration
Same request and response shape as the free API — migrating is two lines: point base_url at /capi/v1 and add your key. Any OpenAI SDK or existing OpenAI integration works unchanged.
# Drop-in: same OpenAI SDK, two lines changed from openai import OpenAI client = OpenAI( base_url="https://ai-api.cehpoint.co.in/capi/v1", api_key="cehk_your_licence_key", ) resp = client.chat.completions.create( model="cehpoint-ai", messages=[{"role": "user", "content": "Hello"}], ) # set stream=True for SSE, exactly like the free endpoint
| Endpoint | Method | Purpose |
|---|---|---|
/capi/v1/chat/completions | POST | Chat completions — streaming & non-streaming |
/capi/v1/models | GET | List models available to your licence |
messages, temperature, max_tokens, stream and the system/user/assistant roles all behave exactly as documented above for the free API.Plans & limits
Pricing is usage-sized — tell us your expected volume and our AI sizes a plan and quotes you in minutes. Every commercial plan includes commercial-use rights, dedicated support and a GST invoice for India.
| Plan | Best for | Requests / month | Rights & extras |
|---|---|---|---|
| Free (public) | Prototypes, side-projects, learning | Fair-use · no key | Non-commercial |
| Monthly commercial | Growing products in production | Custom — sized to you | Commercial-use · support · GST |
| Lifetime licence | One-time purchase / on-prem | Custom | Perpetual commercial-use |
| Enterprise | Scale, SLAs, custom features | Custom + SLA | Everything + roadmap input |
Use Cases
Every example below was tested live against the API. Pick a category, copy the code, and run it.
curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Explain quantum computing in 3 sentences."}]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Explain quantum computing in 3 sentences."}]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [{ role: "user", content: "Explain quantum computing in 3 sentences." }],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[{"role": "user", "content": "Explain quantum computing in 3 sentences."}],
)
print(resp.choices[0].message.content)curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Write a Python class for a banking account with deposit, withdraw, and balance check. Include error handling."}]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Write a Python class for a banking account with deposit, withdraw, and balance check. Include error handling."}]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [{ role: "user", content: "Write a Python class for a banking account with deposit, withdraw, and balance check. Include error handling." }],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[{"role": "user", "content": "Write a Python class for a banking account with deposit, withdraw, and balance check. Include error handling."}],
)
print(resp.choices[0].message.content)curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [
{"role": "system", "content": "You are a friendly support agent."},
{"role": "user", "content": "My order has not arrived yet."}
]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [
{"role": "system", "content": "You are a friendly support agent."},
{"role": "user", "content": "My order has not arrived yet."}
]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [
{ role: "system", content: "You are a friendly support agent." },
{ role: "user", content: "My order has not arrived yet." }
],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[
{"role": "system", "content": "You are a friendly support agent."},
{"role": "user", "content": "My order has not arrived yet."}
],
)
print(resp.choices[0].message.content)curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Write a professional email apologizing for a delayed delivery and offering a 10% discount."}]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Write a professional email apologizing for a delayed delivery and offering a 10% discount."}]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [{ role: "user", content: "Write a professional email apologizing for a delayed delivery and offering a 10% discount." }],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[{"role": "user", "content": "Write a professional email apologizing for a delayed delivery and offering a 10% discount."}],
)
print(resp.choices[0].message.content)curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Write a 50-word product description for a premium leather wallet."}]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Write a 50-word product description for a premium leather wallet."}]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [{ role: "user", content: "Write a 50-word product description for a premium leather wallet." }],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[{"role": "user", "content": "Write a 50-word product description for a premium leather wallet."}],
)
print(resp.choices[0].message.content)curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Extract names, dates, amounts as JSON: John paid $150 on March 5th, Sarah paid $75 on March 12th."}]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "Extract names, dates, amounts as JSON: John paid $150 on March 5th, Sarah paid $75 on March 12th."}]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [{ role: "user", content: "Extract names, dates, amounts as JSON: John paid $150 on March 5th, Sarah paid $75 on March 12th." }],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[{"role": "user", "content": "Extract names, dates, amounts as JSON: John paid $150 on March 5th, Sarah paid $75 on March 12th."}],
)
print(resp.choices[0].message.content)curl https://ai-api.cehpoint.co.in/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "List 3 AI applications in healthcare diagnostics."}]
}'import requests
resp = requests.post(
"https://ai-api.cehpoint.co.in/v1/chat/completions",
json={
"model": "cehpoint-ai",
"messages": [{"role": "user", "content": "List 3 AI applications in healthcare diagnostics."}]
},
)
print(resp.json()["choices"][0]["message"]["content"])const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "cehpoint-ai",
messages: [{ role: "user", content: "List 3 AI applications in healthcare diagnostics." }],
}),
});
const data = await resp.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://ai-api.cehpoint.co.in/v1",
api_key="x",
)
resp = client.chat.completions.create(
model="cehpoint-ai",
messages=[{"role": "user", "content": "List 3 AI applications in healthcare diagnostics."}],
)
print(resp.choices[0].message.content)50 Complete Examples
cURL
curl https://ai-api.cehpoint.co.in/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "cehpoint-ai", "messages": [{"role": "user", "content": "Hello!"}] }'
Python
import requests resp = requests.post( "https://ai-api.cehpoint.co.in/v1/chat/completions", json={"model": "cehpoint-ai", "messages": [{"role": "user", "content": "Hello!"}]}, ) print(resp.json()["choices"][0]["message"]["content"])
JavaScript (Fetch)
const resp = await fetch("https://ai-api.cehpoint.co.in/v1/chat/completions", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ model: "cehpoint-ai", messages: [{ role: "user", content: "Hello!" }], }), }); const data = await resp.json(); console.log(data.choices[0].message.content);
OpenAI Python SDK
from openai import OpenAI client = OpenAI( base_url="https://ai-api.cehpoint.co.in/v1", api_key="x", ) resp = client.chat.completions.create( model="cehpoint-ai", messages=[{"role": "user", "content": "Hello!"}], ) print(resp.choices[0].message.content)
base_url to our endpoint and anything as api_key. No token needed.