مستندات API سرویس AI-Kar

مقدمه

به مستندات API سرویس هوش مصنوعی AI-Kar خوش آمدید. با استفاده از این API می‌توانید از قدرت تمام مدل‌های هوش مصنوعی ما در برنامه‌ها و سرویس‌های خود استفاده کنید. تمام درخواست‌ها از طریق متد POST به نقطه پایانی اصلی ارسال می‌شوند و هزینه آن‌ها از کیف پول شما در وب‌سایت کسر می‌گردد.

احراز هویت (Authentication)

تمام درخواست‌ها به API باید احراز هویت شوند. برای این کار، باید کلید API خود را که از داشبورد دریافت کرده‌اید، در هدر Authorization قرار دهید.

ساختار هدر

Authorization: Bearer YOUR_API_KEY

فراموش نکنید که YOUR_API_KEY را با کلید واقعی خود جایگزین کنید.

مدیریت امن درخواست‌ها با کلید تکرارپذیری (Idempotency)

برای محافظت در برابر خطاهای شبکه (مانند تایم‌اوت) و جلوگیری از اجرای یا شارژ تکراری یک درخواست، API ما از مکانیزم **کلید تکرارپذیری** استفاده می‌کند. با ارسال یک کلید منحصر به فرد در هدر هر درخواست POST، شما تضمین می‌کنید که حتی اگر درخواست خود را چندین بار ارسال کنید، عملیات تنها **یک بار** اجرا و هزینه آن محاسبه می‌شود.

مهم: ارسال هدر Idempotency-Key برای تمام درخواست‌های POST **اجباری** است.

چرا این قابلیت ضروری است؟

فرض کنید درخواستی برای تولید متن ارسال می‌کنید، اما قبل از دریافت پاسخ، ارتباط اینترنت شما قطع می‌شود. در این حالت شما نمی‌دانید آیا درخواست به سرور ما رسیده و هزینه کسر شده است یا نه. با استفاده از کلید تکرارپذیری، می‌توانید با اطمینان کامل همان درخواست را دوباره ارسال کنید. سرور ما درخواست تکراری را تشخیص داده و پاسخی را که از اجرای اول ذخیره کرده بود، بدون کسر هزینه جدید، به شما برمی‌گرداند.

نحوه عملکرد

نقطه پایانی اصلی (Endpoint)

تمام درخواست‌های مربوط به مدل‌های چت، کد، تصویر، ویدئو و... به یک نقطه پایانی واحد ارسال می‌شوند:

POST https://ai-kar.com/v1/chat/completions

ساختار درخواست (Request Body)

بدنه درخواست شما باید با فرمت JSON و شامل پارامترهای زیر باشد:




آیدی دقیق تمام مدل ها جهت استفاده

اگر مدلی نیاز دارید قیمت ندارد یا خطا میدهد به پشتیبانی تیکت بزنید

openai/gpt-4o
gpt-4o-2024-08-06
gpt-4o-2024-05-13
gpt-4o-mini
gpt-4o-mini-2024-07-18
chatgpt-4o-latest
gpt-4-turbo
gpt-4-turbo-2024-04-09
gpt-4
gpt-4-0125-preview
gpt-4-1106-preview
gpt-3.5-turbo
gpt-3.5-turbo-0125
gpt-3.5-turbo-1106
o1-mini
o1-mini-2024-09-12
o3-mini
gpt-4o-audio-preview
gpt-4o-mini-audio-preview
gpt-4o-search-preview
gpt-4o-mini-search-preview
openai/gpt-4.1-2025-04-14
openai/gpt-4.1-mini-2025-04-14
openai/gpt-4.1-nano-2025-04-14
openai/o4-mini-2025-04-16
openai/o3-2025-04-16
o1
openai/gpt-5-2025-08-07
openai/gpt-5-mini-2025-08-07
openai/gpt-5-nano-2025-08-07
openai/gpt-5-chat-latest
openai/o3-pro
mistralai/Mixtral-8x7B-Instruct-v0.1
meta-llama/Llama-3.3-70B-Instruct-Turbo
meta-llama/Llama-3.2-3B-Instruct-Turbo
meta-llama/Llama-Guard-3-11B-Vision-Turbo
Qwen/Qwen2.5-7B-Instruct-Turbo
Qwen/Qwen2.5-Coder-32B-Instruct
meta-llama/Meta-Llama-3-8B-Instruct-Lite
meta-llama/Llama-3-70b-chat-hf
Qwen/Qwen2.5-72B-Instruct-Turbo
Qwen/QwQ-32B
meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo
meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo
meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo
mistralai/Mistral-7B-Instruct-v0.2
meta-llama/LlamaGuard-2-8b
mistralai/Mistral-7B-Instruct-v0.1
mistralai/Mistral-7B-Instruct-v0.3
meta-llama/Meta-Llama-Guard-3-8B
meta-llama/llama-4-scout
meta-llama/llama-4-maverick
Qwen/Qwen3-235B-A22B-fp8-tput
claude-3-opus-20240229
claude-3-haiku-20240307
claude-3-5-sonnet-20240620
claude-3-5-sonnet-20241022
claude-3-5-haiku-20241022
claude-3-7-sonnet-20250219
claude-sonnet-4-20250514
claude-opus-4-20250514
claude-opus-4-1-20250805
claude-sonnet-4-5-20250929
google/gemini-2.0-flash-exp
google/gemini-2.0-flash
google/gemini-2.5-pro
google/gemini-2.5-flash
deepseek-chat
deepseek-reasoner
deepseek/deepseek-chat-v3.1
deepseek/deepseek-reasoner-v3.1
deepseek/deepseek-non-reasoner-v3.1-terminus
deepseek/deepseek-reasoner-v3.1-terminus
deepseek/deepseek-non-thinking-v3.2-exp
deepseek/deepseek-thinking-v3.2-exp
alibaba/qwen-max
alibaba/qwen-plus
alibaba/qwen-turbo
alibaba/qwen-max-2025-01-25
alibaba/qwen3-coder-480b-a35b-instruct
alibaba/qwen3-32b
alibaba/qwen3-max-preview
alibaba/qwen3-235b-a22b-thinking-2507
alibaba/qwen3-next-80b-a3b-thinking
alibaba/qwen3-next-80b-a3b-instruct
alibaba/qwen3-max-instruct
mistralai/mistral-tiny
mistralai/mistral-nemo
anthracite-org/magnum-v4-72b
nvidia/llama-3.1-nemotron-70b-instruct
mistralai/codestral-2501
google/gemma-3-4b-it
google/gemma-3-12b-it
google/gemma-3-27b-it
google/gemini-2.5-flash-lite-preview
deepseek/deepseek-prover-v2
google/gemma-3n-e4b-it
cohere/command-a
openai/gpt-oss-120b
openai/gpt-oss-20b
nousresearch/hermes-4-405b
MiniMax-Text-01
minimax/m1
bagoodex/bagoodex-search-v1
moonshot/kimi-k2-preview
x-ai/grok-4-07-09
x-ai/grok-3-beta
x-ai/grok-3-mini-beta
x-ai/grok-code-fast-1
x-ai/grok-4-fast-reasoning
x-ai/grok-4-fast-non-reasoning
perplexity/sonar
perplexity/sonar-pro
zhipu/glm-4.5
zhipu/glm-4.5-air
zhipu/glm-4.6
meta-llama/llama-3.3-70b-versatile
google/gc-document-ai
mistral/mistral-ocr-latest
dall-e-3
dall-e-2
openai/gpt-image-1
imagen-3.0-generate-002
imagen-4.0-ultra-generate-preview-06-06
google/imagen-4.0-generate-001
google/imagen-4.0-fast-generate-001
google/imagen-4.0-ultra-generate-001
google/imagen4/preview
flux/schnell
flux-pro
flux-pro/v1.1
flux-pro/v1.1-ultra
flux/dev
flux/dev/image-to-image
flux/srpo
flux/srpo/image-to-image
bytedance/uso
bytedance/seedream-v4-edit
bytedance/seedream-v4-text-to-image
stable-diffusion-v3-medium
stable-diffusion-v35-large
flux-realism
recraft-v3
triposr
flux/kontext-max/text-to-image
flux/kontext-pro/text-to-image
flux/kontext-pro/image-to-image
flux/kontext-max/image-to-image
alibaba/qwen-image
google/gemini-2.5-flash-image
google/gemini-2.5-flash-image-edit
hunyuan/hunyuan-image-v3-text-to-image
alibaba/qwen-image-edit
bytedance/seedream-3.0
bytedance/seededit-3.0-i2i
reve/create-image
reve/edit-image
reve/remix-edit-image
text-embedding-3-small
text-embedding-3-large
text-embedding-ada-002
togethercomputer/m2-bert-80M-32k-retrieval
BAAI/bge-base-en-v1.5
BAAI/bge-large-en-v1.5
voyage-large-2-instruct
voyage-finance-2
voyage-multilingual-2
voyage-law-2
voyage-code-2
voyage-large-2
voyage-2
textembedding-gecko@003
textembedding-gecko-multilingual@001
text-multilingual-embedding-002
#g1_nova-2-general
#g1_nova-2-meeting
#g1_nova-2-phonecall
#g1_nova-2-voicemail
#g1_nova-2-finance
#g1_nova-2-conversationalai
#g1_nova-2-video
#g1_nova-2-medical
#g1_nova-2-drivethru
#g1_nova-2-automotive
#g1_whisper-large
#g1_whisper-medium
#g1_whisper-small
#g1_whisper-tiny
#g1_whisper-base
#g1_aura-asteria-en
#g1_aura-hera-en
#g1_aura-luna-en
#g1_aura-stella-en
#g1_aura-athena-en
#g1_aura-zeus-en
#g1_aura-orion-en
#g1_aura-arcas-en
#g1_aura-perseus-en
#g1_aura-angus-en
#g1_aura-orpheus-en
#g1_aura-helios-en
#g1_aura-2-amalthea-en
#g1_aura-2-andromeda-en
#g1_aura-2-apollo-en
#g1_aura-2-arcas-en
#g1_aura-2-aries-en
#g1_aura-2-asteria-en
#g1_aura-2-athena-en
#g1_aura-2-atlas-en
#g1_aura-2-aurora-en
#g1_aura-2-callista-en
#g1_aura-2-cora-en
#g1_aura-2-cordelia-en
#g1_aura-2-delia-en
#g1_aura-2-draco-en
#g1_aura-2-electra-en
#g1_aura-2-harmonia-en
#g1_aura-2-helena-en
#g1_aura-2-hera-en
#g1_aura-2-hermes-en
#g1_aura-2-hyperion-en
#g1_aura-2-iris-en
#g1_aura-2-janus-en
#g1_aura-2-juno-en
#g1_aura-2-jupiter-en
#g1_aura-2-luna-en
#g1_aura-2-mars-en
#g1_aura-2-minerva-en
#g1_aura-2-neptune-en
#g1_aura-2-odysseus-en
#g1_aura-2-ophelia-en
#g1_aura-2-orion-en
#g1_aura-2-orpheus-en
#g1_aura-2-pandora-en
#g1_aura-2-phoebe-en
#g1_aura-2-pluto-en
#g1_aura-2-saturn-en
#g1_aura-2-selene-en
#g1_aura-2-thalia-en
#g1_aura-2-theia-en
#g1_aura-2-vesta-en
#g1_aura-2-zeus-en
#g1_aura-2-celeste-es
#g1_aura-2-estrella-es
#g1_aura-2-nestor-es
aai/slam-1
aai/universal
elevenlabs/eleven_multilingual_v2
elevenlabs/eleven_turbo_v2_5
elevenlabs/v3_alpha
minimax/speech-2.5-turbo-preview
minimax/speech-2.5-hd-preview
microsoft/vibevoice-7b
microsoft/vibevoice-1.5b
gpt-3.5-turbo-instruct
mistralai/Mixtral-8x7B-v0.1
mistralai/Mistral-7B-v0.1
NousResearch/Nous-Hermes-13b
togethercomputer/llama-2-7b
huggyllama/llama-7b
WizardLM/WizardLM-70B-V1.0
huggyllama/llama-65b
togethercomputer/llama-2-13b
togethercomputer/llama-2-70b
huggyllama/llama-13b
huggyllama/llama-30b
EleutherAI/llemma_7b
meta-llama/Llama-3-70b-hf
meta-llama/Meta-Llama-3.1-8B-Reference
meta-llama/Meta-Llama-3.1-70B-Reference
video-01
video-01-live2d
minimax/hailuo-02
kling-video/v1.6/standard/text-to-video
kling-video/v1.6/standard/image-to-video
pixverse/v5/transition
pixverse/v5/image-to-video
pixverse/v5/text-to-video
klingai/v2.5-turbo/pro/image-to-video
klingai/v2.5-turbo/pro/text-to-video
bytedance/omnihuman
alibaba/wan2.2-vace-fun-a14b-depth
alibaba/wan2.2-vace-fun-a14b-pose
alibaba/wan2.2-vace-fun-a14b-inpainting
alibaba/wan2.2-vace-fun-a14b-outpainting
alibaba/wan2.2-vace-fun-a14b-reframe
alibaba/wan2.2-14b-animate-move
alibaba/wan2.2-14b-animate-replace
gen3a_turbo
runway/gen4_turbo
runway/act_two
runway/gen4_aleph
bytedance/seedance-1-0-lite-t2v
bytedance/seedance-1-0-lite-i2v
bytedance/seedance-1-0-pro-t2v
bytedance/seedance-1-0-pro-i2v
alibaba/wan2.2-i2v-plus
alibaba/wan2.2-t2v-plus
alibaba/wan2.1-t2v-turbo
alibaba/wan2.1-t2v-plus
alibaba/wan2.5-t2v-preview
alibaba/wan2.5-i2v-preview
veo2/image-to-video
veo2
google/veo3
google/veo-3.0-i2v
google/veo-3.0-fast
google/veo-3.0-i2v-fast
kling-video/v1/standard/image-to-video
kling-video/v1/standard/text-to-video
kling-video/v1/pro/image-to-video
kling-video/v1/pro/text-to-video
kling-video/v1.5/standard/image-to-video
kling-video/v1.5/standard/text-to-video
kling-video/v1.5/pro/image-to-video
kling-video/v1.5/pro/text-to-video
kling-video/v1.6/pro/image-to-video
kling-video/v1.6/pro/text-to-video
kling-video/v1.6/standard/multi-image-to-video
klingai/kling-video-v1.6-pro-effects
klingai/kling-video-v1.6-standard-effects
klingai/v2-master-text-to-video
klingai/v2-master-image-to-video
klingai/v2.1-master-text-to-video
klingai/v2.1-master-image-to-video
kling-video/v2.1/standard/image-to-video
kling-video/v2.1/pro/image-to-video
stable-audio
minimax-music
google/lyria2
music-01
elevenlabs/eleven_music

مثال ۱: درخواست متنی ساده

{
  "model": "openai/gpt-4o",
  "messages": [
    {
      "role": "user",
      "content": "سلام، یک نام خلاقانه برای یک کافی شاپ پیشنهاد بده."
    }
  ]
}

مثال ۲: درخواست تولید تصویر (Text-to-Image)

برای مدل‌های تصویری، محتوای پیام شما همان دستور (prompt) ساخت تصویر است.

{
  "model": "openai/dall-e-3",
  "messages": [
    {
      "role": "user",
      "content": "A futuristic city skyline at sunset, digital art"
    }
  ],
  "size": "1024x1024",
  "quality": "hd"
}

پارامترهای مهم و پرکاربرد

شما می‌توانید با ارسال پارامترهای اضافی در بدنه درخواست JSON، خروجی مدل‌ها را کنترل کنید. در اینجا به چند مورد مهم اشاره می‌کنیم:

temperature (دما): یک عدد بین ۰ تا ۲. مقادیر بالاتر (مثلا ۱.۲) پاسخ‌های خلاقانه‌تر و تصادفی‌تری تولید می‌کنند، در حالی که مقادیر پایین‌تر (مثلا ۰.۳) پاسخ‌ها را دقیق‌تر و قابل پیش‌بینی‌تر می‌کنند.

max_tokens (حداکثر توکن): یک عدد صحیح که حداکثر طول پاسخ را مشخص می‌کند. این پارامتر برای کنترل هزینه‌ها و جلوگیری از پاسخ‌های بیش از حد طولانی بسیار مفید است.

response_format (فرمت پاسخ): اگر مقدار آن را { "type": "json_object" } قرار دهید، مدل را مجبور می‌کند تا خروجی خود را در فرمت یک JSON معتبر ارائه دهد.

web_search (جستجو در وب): برای مدل‌هایی که از این قابلیت پشتیبانی می‌کنند، با قرار دادن مقدار true، به مدل اجازه می‌دهید از اطلاعات زنده و به‌روز وب برای پاسخ دادن استفاده کند.

مثال‌های کد (Code Snippets)

در زیر می‌توانید نمونه کدهای آماده برای استفاده از API ما به زبان‌های مختلف را مشاهده کنید. فراموش نکنید که YOUR_API_KEY را با کلید API واقعی خود و هدر Idempotency-Key را در تمام درخواست‌های POST جایگزین کنید.

مثال با Python (کتابخانه `requests`)

این کد نحوه ارسال یک درخواست با هدر تکرارپذیری و منطق ساده تلاش مجدد را نشان می‌دهد.


import requests
import uuid

API_URL = "https://ai-kar.com/v1/chat/completions"
API_KEY = "YOUR_API_KEY"

# کلید تکرارپذیری برای این عملیات منطقی
idempotency_key = str(uuid.uuid4())

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
    "Idempotency-Key": idempotency_key
}

payload = {
    "model": "google/gemini-2.0-flash",
    "messages": [{"role": "user", "content": "۳ حقیقت جالب درباره کهکشان راه شیری بگو."}]
}

try:
    response = requests.post(API_URL, headers=headers, json=payload, timeout=30)
    response.raise_for_status()
    print("پاسخ موفقیت‌آمیز:", response.json())

except requests.exceptions.RequestException as e:
    print(f"خطا رخ داد: {e}")
    print("تلاش مجدد با همان کلید...")
    
    # در یک اپلیکیشن واقعی، می‌توانید با کمی تاخیر دوباره تلاش کنید
    try:
        # مهم: از همان headers (و همان idempotency_key) استفاده می‌کنیم
        response = requests.post(API_URL, headers=headers, json=payload, timeout=30)
        response.raise_for_status()
        print("پاسخ در تلاش مجدد دریافت شد:", response.json())
    except requests.exceptions.RequestException as retry_e:
        print(f"تلاش مجدد نیز ناموفق بود: {retry_e}")

مثال با JavaScript (در مرورگر با `fetch`)

این کد نحوه استفاده از API در یک پروژه فرانت‌اند را نشان می‌دهد.


// تابعی برای ساخت UUID در جاوا اسکریپت
function generateUUID() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}

const apiKey = "YOUR_API_KEY";
const apiUrl = "https://ai-kar.com/v1/chat/completions";

const payload = {
  model: "google/gemini-2.0-flash",
  messages: [{ role: "user", content: "چگونه می‌توانم انگیزه خود را برای ورزش افزایش دهم؟" }]
};

async function getAiResponse() {
  // یک کلید جدید برای این عملیات بسازید
  const idempotencyKey = generateUUID();

  const headers = new Headers({
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': idempotencyKey
  });

  try {
    const response = await fetch(apiUrl, {
      method: 'POST',
      headers: headers,
      body: JSON.stringify(payload)
    });

    if (!response.ok) {
      const errorData = await response.json();
      throw new Error(errorData.error || `HTTP error! status: ${response.status}`);
    }

    const data = await response.json();
    console.log('پاسخ موفقیت‌آمیز:', data.choices[0].message.content);

  } catch (error) {
    console.error("خطا در دریافت پاسخ:", error);
    // در یک اپلیکیشن واقعی، اینجا منطق تلاش مجدد (retry) را با همان هدرها پیاده‌سازی کنید.
  }
}

getAiResponse();

مثال با PHP (cURL)

این کد نحوه ارسال درخواست API با هدر تکرارپذیری در PHP را نشان می‌دهد.


<?php

// تابعی برای ساخت UUID v4 در PHP
function guidv4($data = null) {
    $data = $data ?? random_bytes(16);
    assert(strlen($data) == 16);
    $data[6] = chr(ord($data[6]) & 0x0f | 0x40);
    $data[8] = chr(ord($data[8]) & 0x3f | 0x80);
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}

$apiKey = "YOUR_API_KEY";
$apiUrl = "https://ai-kar.com/v1/chat/completions";

// 1. یک کلید تکرارپذیری برای این درخواست بسازید
$idempotencyKey = guidv4();

// 2. آماده‌سازی هدرها
$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey,
    'Idempotency-Key: ' . $idempotencyKey
];

// 3. آماده‌سازی پیلود
$payload = [
    "model" => "google/gemini-2.0-flash",
    "messages" => [
        ["role" => "user", "content" => "بزرگترین اقیانوس جهان کدام است؟"]
    ]
];
$postData = json_encode($payload);

// 4. راه‌اندازی و اجرای cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_TIMEOUT, 90);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch)) {
    echo 'خطای cURL: ' . curl_error($ch);
} elseif ($httpCode >= 400) {
    echo "خطای HTTP: " . $httpCode . "\n";
    echo "پاسخ سرور: " . $response;
} else {
    $result = json_decode($response, true);
    if ($result && !empty($result['choices'][0]['message']['content'])) {
        echo $result['choices'][0]['message']['content'];
    }
}
curl_close($ch);

?>