Felo APIs
LLM API
OpenAI-compatible और Anthropic-compatible प्रोटोकॉल से Felo मॉडल endpoints कॉल करें।
/api/v1/modelsप्रमाणीकरण
Bearer API key or X-API-Key
कंटेंट टाइप
application/json
दर संबंधी नोट
Model service limits may apply. Retry with backoff on 429 or 503.
LLM API Felo API Platform के माध्यम से सीधे मॉडल कॉलिंग endpoint उपलब्ध कराती है। इसका उपयोग तब करें जब आप सामान्य-उद्देश्य वाले भाषा मॉडल कॉल करना चाहते हों, OpenAI-संगत या Anthropic-संगत क्लाइंट का पुनः उपयोग करना चाहते हों, या agent framework को Felo API Platform से जोड़ना चाहते हों।
LLM API में फ़िलहाल तीन chat-संगत मॉडल कॉलिंग सतहें शामिल हैं:
POST /api/v1/responses: OpenAI Responses संगतPOST /api/v1/chat/completions: OpenAI Chat Completions संगतPOST /api/v1/messages: Anthropic Messages संगत
Decisions API
POST https://openapi.felo.ai/api/v1/decisionsस्थिति (state) और संकीर्ण टाइप्ड प्रश्न jev-1.13 को भेजें (यह भी स्वीकार्य: typesafe/jev-1.13)। Chat Completions, Messages या Responses endpoint के बजाय /api/v1/decisions उपयोग करें। स्ट्रीमिंग समर्थित नहीं है।
अनुरोध फ़ील्ड
model:jev-1.13state: मूल्यांकन के लिए कॉन्टेक्स्ट; एक string या JSON मान।questions:type,instructionsऔरcriteriaउपयोग करने वाले नामित प्रश्न।
import os
import requests
response = requests.post(
"https://openapi.felo.ai/api/v1/decisions",
headers={"Authorization": f"Bearer {os.environ['FELO_API_KEY']}"},
json={
"model": "jev-1.13",
"state": "Help! My payouts have been failing for 3 days.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this message convey urgency?",
"criteria": {"true": "Time-sensitive", "false": "No urgency"},
},
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Payments, invoicing, refunds",
"technical": "Bugs, outages, integrations",
"sales": "Pricing, upgrades, new accounts",
},
},
"frustration": {
"type": "score",
"instructions": "How frustrated is the customer?",
"criteria": ["Calm", "Frustrated", "Very angry"],
},
},
},
timeout=60,
)
response.raise_for_status()
answers = response.json()["answers"]
print(answers["is_urgent"]["noul"])
print(answers["department"]["choice"], answers["department"]["probabilities"])
print(answers["frustration"]["score"])उत्तर प्रकार
noul: 0 से 1 तक की प्रायिकता। choice: चुना गया विकल्प और उसका प्रायिकता वितरण। score: क्रमबद्ध criteria के लिए संख्यात्मक स्कोर, उसके वितरण के साथ।
त्रुटियां error.code (संख्यात्मक HTTP स्टेटस) और error.message उपयोग करती हैं। answers पढ़ने से पहले non-2xx प्रतिक्रियाएं संभालें।
उपयोग और मूल्य निर्धारण
प्रतिक्रिया में usage.input_tokens, usage.output_tokens शामिल होते हैं, और usage.cost भी शामिल हो सकता है। 2026-10-12 को जांची गई संदर्भ दरें: input USD 0.042 प्रति मिलियन tokens; output USD 0. output दर शून्य होने का अर्थ यह नहीं कि input उपयोग मुफ़्त है। दरें बदल सकती हैं; अनुमान के लिए प्रकाशित मॉडल मूल्य और लागू खाता छूट उपयोग करें।
प्रमाणीकरण
LLM API अनुरोधों के लिए Felo API Platform key ज़रूरी है। Authorization: Bearer ... या X-API-Key में से कोई भी उपयोग करें।
Authorization: Bearer YOUR_API_KEYX-API-Key: YOUR_API_KEYAPI key बनाने और प्रबंधित करने के विवरण के लिए Authentication गाइड देखें।
Base URL
सार्वजनिक Felo API Platform host उपयोग करें:
https://openapi.felo.aiSDK क्लाइंट के लिए, Basic Usage में दिखाया गया प्रोटोकॉल-विशिष्ट base URL कॉन्फ़िगर करें।
सामान्य हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
Authorization | हां, जब तक X-API-Key उपयोग न हो | API key Bearer YOUR_API_KEY फ़ॉर्मेट में |
X-API-Key | हां, जब तक Authorization उपयोग न हो | Bearer हेडर का विकल्प API key |
Content-Type | हां | application/json होना चाहिए |
X-Request-Id | नहीं | troubleshooting के लिए वैकल्पिक अनुरोध ID |
मॉडल खोजें
सामान्य सूची में सभी मॉडल श्रेणियां शामिल हैं। video या decision मॉडल खोजने के लिए समर्पित सूचियां उपयोग करें:
| Endpoint | मॉडल श्रेणियां |
|---|---|
GET /api/v1/models | सभी श्रेणियां (अपरिवर्तित) |
GET /api/v1/videos/models | video जनरेशन (video_generation) |
GET /api/v1/decisions/models | Decisions, Jev सहित (decisions) |
तीनों endpoint वैकल्पिक provider query पैरामीटर स्वीकार करते हैं (जैसे openrouter) और {"object":"list","data":[...]} लौटाते हैं। प्रत्येक आइटम में id, object, created, owned_by और model_kind शामिल होते हैं। समर्पित सूचियां सक्षम provider mapping override के बाद प्रभावी श्रेणी उपयोग करती हैं।
केवल सक्षम, सूचीबद्ध, non-deleted मॉडल लौटाए जाते हैं जिनका वर्तमान मूल्य निर्धारण provider शर्तों से मेल खाता है; शून्य मूल्य मान्य है। नए sync किए गए मॉडल तब तक छिपे रहते हैं जब तक administrator उन्हें सूचीबद्ध न करे। सभी सूचियां कॉन्फ़िगर किए गए क्रम को साझा करती हैं, tie-breaker के रूप में मॉडल नाम और ID के साथ। कोई मेल न होने पर HTTP 200 और खाली data array मिलता है। खोज स्थानीय सूची पढ़ती है और किसी मॉडल कॉल को invoke या चार्ज नहीं करती।
केवल GET /api/v1/models exclude_video_and_decisions स्वीकार करता है (boolean, डिफ़ॉल्ट false)। प्रभावी प्रकार video_generation और decisions को बाहर रखने के लिए इसे true पर सेट करें; image मॉडल पात्र बने रहते हैं। इसे provider के साथ जोड़ा जा सकता है। इसे छोड़ने या false पर सेट करने से पूरी सूची बनी रहती है। अमान्य boolean मान HTTP 422 लौटाते हैं।
curl "https://openapi.felo.ai/api/v1/models?exclude_video_and_decisions=true&provider=openrouter" \
-H "Authorization: Bearer ${FELO_API_KEY}"
curl "https://openapi.felo.ai/api/v1/videos/models?provider=openrouter" \
-H "Authorization: Bearer ${FELO_API_KEY}"
curl "https://openapi.felo.ai/api/v1/decisions/models?provider=openrouter" \
-H "Authorization: Bearer ${FELO_API_KEY}"model_kind से कॉलिंग endpoint चुनें: मॉडल द्वारा समर्थित होने पर Responses, Chat Completions या Messages के लिए chat; POST /api/v1/videos/generations के लिए video_generation; POST /api/v1/decisions के लिए decisions; POST /api/v1/images/generations के लिए image_generation। विवरण GET /api/v1/models/{model_id} पर बना रहता है। सूचीबद्ध मॉडल का हर कॉलिंग endpoint के साथ संगत होना आवश्यक नहीं है।
Image मॉडल के लिए कोई समर्पित सूची endpoint नहीं है। GET /api/v1/models को model_kind: "image_generation" से फ़िल्टर करें। image अनुरोध फ़ील्ड के लिए Image Generation देखें।
Models and Pricing (मॉडल और मूल्य निर्धारण)
अनुरोध मॉडल के डिफ़ॉल्ट channel का उपयोग करते हैं, जब तक आप X-Felo-Channel से कोई channel पिन न करें। मॉडल सूची से सार्वजनिक channel कोड की क्रमबद्ध, comma-सेपरेटेड सूची भेजें; डिफ़ॉल्ट उपयोग करने के लिए हेडर छोड़ दें। default का उपयोग केवल अकेले करें। केवल पहले channel का provider group सबमिट होता है; कोई स्वचालित fallback नहीं है। Channels and Provider Routing देखें।
मूल्य USD में सूचीबद्ध हैं। पठनीयता के लिए token दरें प्रति 1 मिलियन tokens दिखाई जाती हैं; बिलिंग वर्तमान मूल्य स्नैपशॉट की प्रति-token सटीकता उपयोग करती है। Cache दरें केवल तब लागू होती हैं जब प्रोटोकॉल प्रतिक्रिया में cache उपयोग शामिल हो। डैश का अर्थ है कोई अलग प्रकाशित दर या प्रकाशित सीमा नहीं। Web search उपयोग, जब मॉडल सेवा द्वारा रिपोर्ट किया जाए, प्रति search $0.01 पर चार्ज होता है।
| मॉडल ID | कॉन्टेक्स्ट | अधिकतम output | Input / 1M tokens | Output / 1M tokens | Cache read / 1M tokens | Cache write / 1M tokens |
|---|---|---|---|---|---|---|
claude-haiku-4-5 | 200K | 64K | $1.00 | $5.00 | $0.10 | $1.25 |
claude-sonnet-4-6 | 1M | 128K | $3.00 | $15.00 | $0.30 | $3.75 |
claude-opus-4-8 | 1M | 128K | $5.00 | $25.00 | $0.50 | $6.25 |
claude-sonnet-5 | 1M | 128K | $2.00 | $10.00 | $0.20 | $2.50 |
claude-haiku-5-5 | 1M | 128K | $0.10 | $0.50 | $0.01 | $0.0125 |
gpt-5.5 | 1.05M | 128K | $5.00 | $30.00 | $0.50 | - |
gpt-5.5-pro | 1.05M | 128K | $30.00 | $180.00 | - | - |
gpt-5.6-luna | 1.05M | 128K | $1.00 | $6.00 | $0.10 | $1.25 |
gpt-5.6-terra | 1.05M | 128K | $2.50 | $15.00 | $0.25 | $3.125 |
gpt-5.6-sol | 1.05M | 128K | $5.00 | $30.00 | $0.50 | $6.25 |
grok-4.5 | 500K | - | $2.00 | $6.00 | $0.50 | - |
deepseek-v4-flash | 1M | 384K | $0.09 | $0.18 | $0.018 | - |
Claude Haiku 5.5 टियर वाले मूल्य निर्धारण का उपयोग करता है: 100K tokens तक के prompt ऊपर दी गई मानक दरों पर बिल होते हैं, और जिन अनुरोधों का prompt 100K tokens से अधिक है वे पूरे अनुरोध के लिए प्रति 1M tokens $0.50 input, $2.50 output, $0.05 cache read और $0.0625 cache write पर बिल होते हैं।
GPT-5.6 तीन टियर में उपलब्ध है: तेज़, किफ़ायती workloads के लिए Luna; संतुलित coding, reasoning और agentic कार्यों के लिए Terra; और flagship जटिल reasoning व coding के लिए Sol। प्रत्येक टियर -pro मॉडल ID भी देता है (gpt-5.6-luna-pro, gpt-5.6-terra-pro और gpt-5.6-sol-pro) जो pro reasoning मोड के साथ वही अंतर्निहित मॉडल उपयोग करता है। -pro ID के लिए मूल्य निर्धारण, कॉन्टेक्स्ट लंबाई और अधिकतम output अपरिवर्तित हैं।
DeepSeek V4 Flash reasoning और non-reasoning मोड, JSON output, tool calls, Responses API और Anthropic API संगतता का समर्थन करता है। यह Felo की Responses, Chat Completions और Messages सतहों के माध्यम से उपलब्ध है। Cache write मूल्य निर्धारण अभी प्रकाशित नहीं है।
Basic Usage (मूल उपयोग)
ये उदाहरण आधिकारिक OpenAI और Anthropic SDK उपयोग करते हैं। उदाहरण चलाने से पहले FELO_API_KEY को अपनी Felo API Platform key पर सेट करें।
export FELO_API_KEY="YOUR_API_KEY"SDK इंस्टॉल करें
OpenAI SDK
Responses API और Chat Completions API के लिए OpenAI SDK उपयोग करें।
##### JavaScript
npm install openai##### Python
pip install openaiAnthropic SDK
Messages API के लिए Anthropic SDK उपयोग करें।
##### JavaScript
npm install @anthropic-ai/sdk##### Python
pip install anthropicक्लाइंट कॉन्फ़िगर करें
OpenAI-संगत endpoint OpenAI SDK base URL के साथ /api/v1 उपयोग करते हैं, क्योंकि SDK /responses और /chat/completions जैसे resource पथ जोड़ता है।
JavaScript
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});Python
import os
from openai import OpenAI
openai = OpenAI(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api/v1",
)Anthropic-संगत endpoint Anthropic SDK base URL के साथ /v1 के बिना उपयोग करते हैं, क्योंकि SDK /v1/messages जोड़ता है।
JavaScript
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api",
});Python
import os
from anthropic import Anthropic
anthropic = Anthropic(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api",
)Responses API का उपयोग करना
नए OpenAI-संगत एकीकरण और agent-शैली प्रतिक्रिया ऑब्जेक्ट के लिए Responses API उपयोग करें।
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});
const response = await client.responses.create({
model: "gpt-5.6-sol",
input: "Write a one-sentence bedtime story about a unicorn.",
});
console.log(response.output_text);Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api/v1",
)
response = client.responses.create(
model="gpt-5.6-sol",
input="Write a one-sentence bedtime story about a unicorn.",
)
print(response.output_text)Chat Completions का उपयोग करना
Chat Completions तब उपयोग करें जब आपका एप्लिकेशन पहले से OpenAI-शैली के messages भेजता है।
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});
const completion = await client.chat.completions.create({
model: "gpt-5.6-sol",
messages: [
{
role: "user",
content: "Give me one sentence about why API compatibility matters.",
},
],
});
console.log(completion.choices[0].message.content);Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api/v1",
)
completion = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[
{
"role": "user",
"content": "Give me one sentence about why API compatibility matters.",
}
],
)
print(completion.choices[0].message.content)Messages का उपयोग करना
Messages तब उपयोग करें जब आपका क्लाइंट या agent framework Anthropic-संगत अनुरोध और प्रतिक्रिया आकार अपेक्षित करता है।
JavaScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 128,
messages: [
{
role: "user",
content: "Summarize the value of direct model APIs in one sentence.",
},
],
});
const text = message.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("");
console.log(text);Python
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=128,
messages=[
{
"role": "user",
"content": "Summarize the value of direct model APIs in one sentence.",
}
],
)
text = "".join(block.text for block in message.content if block.type == "text")
print(text)आधिकारिक दस्तावेज़
- OpenAI API Quickstart
- OpenAI Create response
- OpenAI Create chat completion
- Claude Messages API
- Anthropic TypeScript SDK
- Anthropic Python SDK
Agent क्लाइंट सेटअप के लिए Claude Code and Codex Configuration देखें।
प्रोटोकॉल संदर्भ
Responses
OpenAI Responses API संगत क्लाइंट और एकीकरण के लिए यह endpoint उपयोग करें।
Endpoint
POST https://openapi.felo.ai/api/v1/responsesअनुरोध बॉडी
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
model | string | हां | सार्वजनिक Felo मॉडल ID |
input | string या array | हां | उपयोगकर्ता इनपुट, multi-turn इनपुट, या multimodal इनपुट |
instructions | string | नहीं | System या developer निर्देश |
stream | boolean | नहीं | Server-Sent Events स्ट्रीमिंग उपयोग करना है या नहीं |
temperature | number | नहीं | Sampling temperature |
max_output_tokens | integer | नहीं | अधिकतम output tokens |
SDK अनुरोध
const response = await client.responses.create({
model: "gpt-5.6-sol",
input: "Reply with exactly: responses ok",
});
console.log(response.output_text);प्रतिक्रिया टेक्स्ट पथ
output_textChat Completions
OpenAI Chat Completions संगत क्लाइंट और SDK के लिए यह endpoint उपयोग करें।
Endpoint
POST https://openapi.felo.ai/api/v1/chat/completionsअनुरोध बॉडी
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
model | string | हां | सार्वजनिक Felo मॉडल ID |
messages | array | हां | बातचीत के संदेश |
messages[].role | string | हां | system, user, या assistant |
messages[].content | string | हां | संदेश सामग्री |
stream | boolean | नहीं | Server-Sent Events स्ट्रीमिंग उपयोग करना है या नहीं |
temperature | number | नहीं | Sampling temperature |
max_tokens | integer | नहीं | अधिकतम output tokens |
SDK अनुरोध
const completion = await client.chat.completions.create({
model: "gpt-5.6-sol",
messages: [
{
role: "user",
content: "Reply with exactly: chat completions ok",
},
],
});
console.log(completion.choices[0].message.content);प्रतिक्रिया टेक्स्ट पथ
choices[0].message.contentMessages
Anthropic Messages संगत क्लाइंट और SDK के लिए यह endpoint उपयोग करें।
Endpoint
POST https://openapi.felo.ai/api/v1/messagesअनुरोध बॉडी
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
model | string | हां | सार्वजनिक Felo मॉडल ID |
max_tokens | integer | हां | अधिकतम output tokens |
messages | array | हां | बातचीत के संदेश |
messages[].role | string | हां | user या assistant |
messages[].content | string या array | हां | सादा टेक्स्ट या Anthropic content blocks |
system | string | नहीं | System prompt |
stream | boolean | नहीं | Server-Sent Events स्ट्रीमिंग उपयोग करना है या नहीं |
temperature | number | नहीं | Sampling temperature |
SDK अनुरोध
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 64,
messages: [
{
role: "user",
content: "Reply with exactly: messages ok",
},
],
});
const text = message.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("");
console.log(text);Content Block अनुरोध
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 64,
messages: [
{
role: "user",
content: [
{
type: "text",
text: "Reply with exactly: messages ok",
},
],
},
],
});प्रतिक्रिया टेक्स्ट पथ
content[].textस्ट्रीमिंग
Server-Sent Events प्राप्त करने के लिए stream को true पर सेट करें। इवेंट payload फ़ॉर्मेट चुने गए प्रोटोकॉल का पालन करता है:
- Responses स्ट्रीम Responses-संगत प्रतिक्रिया इवेंट लौटाते हैं।
- Chat Completions स्ट्रीम OpenAI-संगत chat completion chunks लौटाते हैं।
- Messages स्ट्रीम Anthropic-संगत message इवेंट लौटाते हैं।
const stream = await client.responses.create({
model: "gpt-5.6-sol",
input: "Write one sentence.",
stream: true,
});क्लाइंट को तीनों endpoint में एक साझा इवेंट schema की अपेक्षा करने के बजाय, जो प्रोटोकॉल वे उपयोग कर रहे हैं उसके अनुसार स्ट्रीम पार्स करनी चाहिए।
त्रुटियां
LLM API जहां संभव हो चुने गए प्रोटोकॉल का error shape लौटाती है। सामान्य कारणों में शामिल हैं:
| HTTP स्टेटस | कारण | सुझाया गया कार्य |
|---|---|---|
400 | अमान्य JSON बॉडी या गुम आवश्यक प्रोटोकॉल फ़ील्ड | model, messages, input, max_tokens और content block फ़ील्ड जांचें |
401 | गुम या अमान्य API key | Authorization: Bearer ... या X-API-Key सत्यापित करें |
402 | अपर्याप्त खाता क्रेडिट | अपना Felo खाता बैलेंस जांचें |
429 | दर सीमा पार हो गई | अनुरोध धीमे करें और बाद में दोबारा प्रयास करें |
502 | मॉडल सेवा अनुरोध विफल | दोबारा प्रयास करें और सहायता से संपर्क करते समय X-Request-Id दें |
503 | मॉडल सेवा अस्थायी रूप से अनुपलब्ध | backoff के साथ दोबारा प्रयास करें या दूसरा प्रकाशित मॉडल चुनें |