Felo API PlatformFelo API Platform

Felo APIs

LLM API

OpenAI-compatible और Anthropic-compatible प्रोटोकॉल से Felo मॉडल endpoints कॉल करें।

GET/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.13
  • state: मूल्यांकन के लिए कॉन्टेक्स्ट; एक 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_KEY
X-API-Key: YOUR_API_KEY

API key बनाने और प्रबंधित करने के विवरण के लिए Authentication गाइड देखें।

Base URL

सार्वजनिक Felo API Platform host उपयोग करें:

https://openapi.felo.ai

SDK क्लाइंट के लिए, 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/modelsvideo जनरेशन (video_generation)
GET /api/v1/decisions/modelsDecisions, 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कॉन्टेक्स्टअधिकतम outputInput / 1M tokensOutput / 1M tokensCache read / 1M tokensCache write / 1M tokens
claude-haiku-4-5200K64K$1.00$5.00$0.10$1.25
claude-sonnet-4-61M128K$3.00$15.00$0.30$3.75
claude-opus-4-81M128K$5.00$25.00$0.50$6.25
claude-sonnet-51M128K$2.00$10.00$0.20$2.50
claude-haiku-5-51M128K$0.10$0.50$0.01$0.0125
gpt-5.51.05M128K$5.00$30.00$0.50-
gpt-5.5-pro1.05M128K$30.00$180.00--
gpt-5.6-luna1.05M128K$1.00$6.00$0.10$1.25
gpt-5.6-terra1.05M128K$2.50$15.00$0.25$3.125
gpt-5.6-sol1.05M128K$5.00$30.00$0.50$6.25
grok-4.5500K-$2.00$6.00$0.50-
deepseek-v4-flash1M384K$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 openai

Anthropic 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)

आधिकारिक दस्तावेज़

Agent क्लाइंट सेटअप के लिए Claude Code and Codex Configuration देखें।

प्रोटोकॉल संदर्भ

Responses

OpenAI Responses API संगत क्लाइंट और एकीकरण के लिए यह endpoint उपयोग करें।

Endpoint

POST https://openapi.felo.ai/api/v1/responses

अनुरोध बॉडी

पैरामीटरप्रकारआवश्यकविवरण
modelstringहांसार्वजनिक Felo मॉडल ID
inputstring या arrayहांउपयोगकर्ता इनपुट, multi-turn इनपुट, या multimodal इनपुट
instructionsstringनहींSystem या developer निर्देश
streambooleanनहींServer-Sent Events स्ट्रीमिंग उपयोग करना है या नहीं
temperaturenumberनहींSampling temperature
max_output_tokensintegerनहींअधिकतम 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_text

Chat Completions

OpenAI Chat Completions संगत क्लाइंट और SDK के लिए यह endpoint उपयोग करें।

Endpoint

POST https://openapi.felo.ai/api/v1/chat/completions

अनुरोध बॉडी

पैरामीटरप्रकारआवश्यकविवरण
modelstringहांसार्वजनिक Felo मॉडल ID
messagesarrayहांबातचीत के संदेश
messages[].rolestringहांsystem, user, या assistant
messages[].contentstringहांसंदेश सामग्री
streambooleanनहींServer-Sent Events स्ट्रीमिंग उपयोग करना है या नहीं
temperaturenumberनहींSampling temperature
max_tokensintegerनहींअधिकतम 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.content

Messages

Anthropic Messages संगत क्लाइंट और SDK के लिए यह endpoint उपयोग करें।

Endpoint

POST https://openapi.felo.ai/api/v1/messages

अनुरोध बॉडी

पैरामीटरप्रकारआवश्यकविवरण
modelstringहांसार्वजनिक Felo मॉडल ID
max_tokensintegerहांअधिकतम output tokens
messagesarrayहांबातचीत के संदेश
messages[].rolestringहांuser या assistant
messages[].contentstring या arrayहांसादा टेक्स्ट या Anthropic content blocks
systemstringनहींSystem prompt
streambooleanनहींServer-Sent Events स्ट्रीमिंग उपयोग करना है या नहीं
temperaturenumberनहीं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 keyAuthorization: Bearer ... या X-API-Key सत्यापित करें
402अपर्याप्त खाता क्रेडिटअपना Felo खाता बैलेंस जांचें
429दर सीमा पार हो गईअनुरोध धीमे करें और बाद में दोबारा प्रयास करें
502मॉडल सेवा अनुरोध विफलदोबारा प्रयास करें और सहायता से संपर्क करते समय X-Request-Id दें
503मॉडल सेवा अस्थायी रूप से अनुपलब्धbackoff के साथ दोबारा प्रयास करें या दूसरा प्रकाशित मॉडल चुनें