api.appalpha.ir
api.appalpha.ir

ارزان‌ترین ارائه‌دهنده‌ی API
هوش مصنوعی در تمام اینترنت.

ما از همه‌ی سرویس‌های ارائه‌دهنده در تمام اینترنت ارزان‌تر ارائه می‌دهیم. قیمت مدل‌ها را می‌توانید مقایسه کنید — همه‌شان همین پایین با عدد دقیق نوشته شده‌اند. تصویر، ویدیو، صدا و چت‌بات را با چند خط کد داخل محصول خودتان بیاورید و فقط بابت خروجی‌های تحویل‌شده پول بدهید، نه توکن و نه اشتراک ماهانه. تا خروجی تحویل نشود، هیچ مبلغی کسر نمی‌شود.

ثبت‌نام فقط با حساب گوگل، بدون رمز عبور تومان اعتبار هدیه
PAY PER OUTPUT
دو تصویر فلاکس ← ۱٬۰۰۰ تومان

هیچ اشتراک ماهانه‌ای در کار نیست. اعتبار می‌خرید و فقط بابت خروجی‌های موفق کسر می‌شود.

مدل آماده در یک نقطه
۰هزینه‌ی ثابت ماهانه
۲۵۰تومان، ارزان‌ترین تصویر
۱۰۰٪بازگشت وجه در صورت خطا
شروع کار

از ثبت‌نام تا اولین خروجی

سه مرحله، و هیچ‌کدام بیشتر از یک دقیقه طول نمی‌کشد.

حساب بسازید

فقط شماره موبایل و یک رمز عبور. بلافاصله بعد از ثبت‌نام، اعتبار هدیه به کیف پول شما اضافه می‌شود.

کلید را بردارید

کلید اول همان لحظه در پنل ساخته می‌شود. هر تعداد کلید دیگر هم می‌توانید بسازید و هر کدام را جدا لغو کنید.

درخواست بفرستید

یک POST به /v1/generations با نام مدل. شناسه می‌گیرید و تا آماده شدن خروجی وضعیت را می‌پرسید.

فهرست مدل‌ها و تعرفه

هر مدل، یک قیمت روشن — و قابل مقایسه

هیچ قیمتی پنهان نیست و هیچ هزینه‌ی جانبی اضافه نمی‌شود. عددی که اینجا می‌بینید دقیقاً همان چیزی است که از کیف پول کسر می‌شود. آن را با هر سرویس دیگری در اینترنت مقایسه کنید. روی شناسه‌ی هر مدل بزنید تا برای استفاده در کد کپی شود.

فلاکس Dev
FLUX.1-dev
پرطرفدار

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

1000تومان
برای هر 2 خروجی · 500 تومان هر تصویر
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "flux-dev", "prompt": "یک فنجان چای روی میز چوبی کنار پنجره، نور ملایم صبح"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "flux-dev",
      "prompt": "یک فنجان چای روی میز چوبی کنار پنجره، نور ملایم صبح"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break
    if r.get("progress"):
        print(r["progress"]["percent"], "%")   # درصد واقعی ساخت

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "flux-dev",
        "prompt": "یک فنجان چای روی میز چوبی کنار پنجره، نور ملایم صبح"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
ز ایمیج (Z-Image)
Z-Image Turbo
ارزان‌ترین

سریع‌ترین و ارزان‌ترین مدل تصویر در آلفا. خروجی تمیز با تعداد مراحل کم، مناسب تولید انبوه تصویر، تست ایده و محصولاتی که حجم درخواست بالایی دارند.

1000تومان
برای هر 4 خروجی · 250 تومان هر تصویر
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "z-image", "prompt": "پرتره‌ی یک گربه‌ی ایرانی سفید روی پس‌زمینه‌ی آبی"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "z-image",
      "prompt": "پرتره‌ی یک گربه‌ی ایرانی سفید روی پس‌زمینه‌ی آبی"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break
    if r.get("progress"):
        print(r["progress"]["percent"], "%")   # درصد واقعی ساخت

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "z-image",
        "prompt": "پرتره‌ی یک گربه‌ی ایرانی سفید روی پس‌زمینه‌ی آبی"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
ساخت تصویر کارتونی
Flux Long-Toon LoRA

از روی متن، تصویر کارتونی می‌سازد. سبک تخت و خطی با رنگ‌های شاد؛ برای کتاب کودک، استیکر، شخصیت‌پردازی و تصویرسازی آموزشی.

1000تومان
هر تصویر
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "cartoon-create", "prompt": "یک روباه بامزه با کلاه قرمز در جنگل پاییزی"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "cartoon-create",
      "prompt": "یک روباه بامزه با کلاه قرمز در جنگل پاییزی"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break
    if r.get("progress"):
        print(r["progress"]["percent"], "%")   # درصد واقعی ساخت

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "cartoon-create",
        "prompt": "یک روباه بامزه با کلاه قرمز در جنگل پاییزی"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
ویرایش تصویر
Qwen Image Edit
پرطرفدار

تصویر را با یک جمله ویرایش می‌کند: تعویض پس‌زمینه، تغییر لباس و رنگ، حذف یا اضافه کردن شیء، تغییر حالت چهره و ترکیب چند تصویر در یک صحنه.

999تومان
برای هر 3 خروجی · 333 تومان هر ویرایش
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen-image-edit", "prompt": "پس‌زمینه را به ساحل غروب تغییر بده", "image": "https://example.com/photo.jpg"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "qwen-image-edit",
      "prompt": "پس‌زمینه را به ساحل غروب تغییر بده",
      "image": "https://example.com/photo.jpg"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break
    if r.get("progress"):
        print(r["progress"]["percent"], "%")   # درصد واقعی ساخت

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "qwen-image-edit",
        "prompt": "پس‌زمینه را به ساحل غروب تغییر بده",
        "image": "https://example.com/photo.jpg"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
گسترش تصویر
Diffusers Image Outpaint

کادر تصویر را به هر سمتی که بخواهید باز می‌کند و بخش تازه را متناسب با خودِ عکس می‌سازد. برای تبدیل عکس عمودی به افقی، ساخت بنر و پر کردن حاشیه.

1000تومان
برای هر 2 خروجی · 500 تومان هر گسترش
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "image-expand", "image": "https://example.com/photo.jpg", "directions": ["left", "right"], "size": "1024x1024", "prompt": "ادامه‌ی ساحل و آسمان ابری"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "image-expand",
      "image": "https://example.com/photo.jpg",
      "directions": [
        "left",
        "right"
      ],
      "size": "1024x1024",
      "prompt": "ادامه‌ی ساحل و آسمان ابری"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "image-expand",
        "image": "https://example.com/photo.jpg",
        "directions": [
          "left",
          "right"
        ],
        "size": "1024x1024",
        "prompt": "ادامه‌ی ساحل و آسمان ابری"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
ویدیو Wan 2.2 (۱۴B)
Wan 2.2 i2v 14B
پرطرفدار

یک تصویر ثابت را به کلیپ متحرک تبدیل می‌کند، با حرکت دوربین و حرکت طبیعی سوژه. دستور شما پیش از ساخت، خودکار به یک دستور سینمایی حرفه‌ای بازنویسی می‌شود.

5000تومان
هر ویدیو
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "video-wan22", "image": "https://example.com/photo.jpg", "prompt": "دوربین آرام به سوژه نزدیک می‌شود"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "video-wan22",
      "image": "https://example.com/photo.jpg",
      "prompt": "دوربین آرام به سوژه نزدیک می‌شود"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break
    if r.get("progress"):
        print(r["progress"]["percent"], "%")   # درصد واقعی ساخت

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "video-wan22",
        "image": "https://example.com/photo.jpg",
        "prompt": "دوربین آرام به سوژه نزدیک می‌شود"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
آلفا TTS — تبدیل متن به صدا
Alpha TTS
۳۰ گوینده

آلفا TTS — تبدیل متن به صدا با هوش مصنوعی آلفا. متن را با یکی از سی گوینده‌ی فارسی و با لحن دلخواه می‌خواند و یک فایل MP3 تحویل می‌دهد. همه‌ی زبان‌های دنیا پشتیبانی می‌شوند.

از 500تومان
تا ۱۰۰ نویسه — 500 تومان
۱۰۱ تا ۶۰۰ نویسه — 1000 تومان
۶۰۱ تا ۲٬۵۰۰ نویسه — 3000 تومان
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "alpha-tts", "text": "هی، گوش کن! یه راز دارم که فقط به تو می‌گم.", "speaker": "shahab", "tone": "با لحنی مرموز، شیطنت‌آمیز و نجواگونه"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "alpha-tts",
      "text": "هی، گوش کن! یه راز دارم که فقط به تو می‌گم.",
      "speaker": "shahab",
      "tone": "با لحنی مرموز، شیطنت‌آمیز و نجواگونه"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "alpha-tts",
        "text": "هی، گوش کن! یه راز دارم که فقط به تو می‌گم.",
        "speaker": "shahab",
        "tone": "با لحنی مرموز، شیطنت‌آمیز و نجواگونه"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
تغییر صدا با مدل آلفا
Alpha Change Voice
اختصاصی آلفا

نمونه‌ی صدای خودتان و نمونه‌ی صدای مدل را می‌دهید؛ صدای شما با حفظ همان جمله‌ها و لحن، به صدای آن مدل تبدیل می‌شود.

1000تومان
برای هر 2 خروجی · 500 تومان هر تغییر صدا
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "alpha-change-voice", "source_audio": "https://example.com/voice.mp3", "reference_audio": "https://example.com/voice.mp3"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "alpha-change-voice",
      "source_audio": "https://example.com/voice.mp3",
      "reference_audio": "https://example.com/voice.mp3"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "alpha-change-voice",
        "source_audio": "https://example.com/voice.mp3",
        "reference_audio": "https://example.com/voice.mp3"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
تقویت صدا
Resemble Enhance

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

1000تومان
برای هر 2 خروجی · 500 تومان هر تقویت
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "voice-enhance", "audio": "https://example.com/voice.mp3"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "voice-enhance",
      "audio": "https://example.com/voice.mp3"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "voice-enhance",
        "audio": "https://example.com/voice.mp3"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
جداسازی صدای خواننده از موزیک
Audio Separator

آهنگ را می‌گیرد و یا فقط صدای خواننده را برمی‌گرداند یا فقط موسیقی بی‌کلام را. برای کارائوکه، ریمیکس، کاور خوانی و نمونه‌برداری.

1000تومان
هر جداسازی
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "vocal-separate", "audio": "https://example.com/voice.mp3", "stem": "vocal", "format": "WAV"}'
import os, time, requests

KEY = os.environ["ALPHA_KEY"]
job = requests.post(
    "https://api.appalpha.ir/v1/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
      "model": "vocal-separate",
      "audio": "https://example.com/voice.mp3",
      "stem": "vocal",
      "format": "WAV"
    },
).json()

# اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if "error" in job:
    raise SystemExit("خطا: " + job["error"]["message"])

# تا آماده شدن خروجی صبر می‌کنیم
while True:
    time.sleep(3)
    r = requests.get(job["poll_url"],
                     headers={"Authorization": f"Bearer {KEY}"}).json()
    if r["status"] != "processing":
        break

print(r["output"]["url"] if r["status"] == "ready"
      else r["error"]["message"])
const KEY = process.env.ALPHA_KEY;

const job = await fetch("https://api.appalpha.ir/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "model": "vocal-separate",
        "audio": "https://example.com/voice.mp3",
        "stem": "vocal",
        "format": "WAV"
      }),
}).then((r) => r.json());

// اگر درخواست پذیرفته نشود، به‌جای شناسه یک پیام فارسی برمی‌گردد
if (job.error) throw new Error(job.error.message);

// تا آماده شدن خروجی صبر می‌کنیم
let out;
do {
  await new Promise((r) => setTimeout(r, 3000));
  out = await fetch(job.poll_url, {
    headers: { Authorization: `Bearer ${KEY}` },
  }).then((r) => r.json());
} while (out.status === "processing");

console.log(out.status === "ready" ? out.output.url : out.error.message);
آیا چت
Aya Chat
۳۰ تومان

چت‌بات متنی فارسی با حافظه‌ی مکالمه. هر پیام سی تومان، بدون توجه به طول سؤال و جواب. برای پشتیبانی خودکار، دستیار داخل اپ و هر جایی که به یک مدل زبانی ارزان نیاز دارید.

30تومان
هر پیام
# پاسخ کامل، یک‌جا
curl https://api.appalpha.ir/v1/chat \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "aya-chat", "system": "تو پشتیبان فروشگاه هستی و کوتاه و مؤدب جواب می‌دهی.", "messages": [{"role": "user", "content": "سلام، سفارشم کی می‌رسد؟"}, {"role": "assistant", "content": "سلام! شماره‌ی سفارش را بفرمایید تا بررسی کنم."}, {"role": "user", "content": "شماره‌اش ۱۰۴۲ است"}]}'

# پاسخ کلمه‌به‌کلمه (استریم) — فقط با افزودن "stream": true
curl -N https://api.appalpha.ir/v1/chat \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "aya-chat", "system": "تو پشتیبان فروشگاه هستی و کوتاه و مؤدب جواب می‌دهی.", "messages": [{"role": "user", "content": "سلام، سفارشم کی می‌رسد؟"}, {"role": "assistant", "content": "سلام! شماره‌ی سفارش را بفرمایید تا بررسی کنم."}, {"role": "user", "content": "شماره‌اش ۱۰۴۲ است"}], "stream": true}'
import os, requests

KEY = os.environ["ALPHA_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

# تاریخچه را خودتان نگه می‌دارید و هر بار کامل می‌فرستید
history = [{"role": "user", "content": "سلام، سفارشم کی می‌رسد؟"}]

r = requests.post("https://api.appalpha.ir/v1/chat", headers=H, json={
    "model": "aya-chat",
    "system": "تو پشتیبان فروشگاه هستی و کوتاه و مؤدب جواب می‌دهی.",
    "messages": history,
}).json()

# اگر چیزی درست نباشد، سرور به‌جای reply یک پیام فارسی می‌دهد.
# بدون این چک، پایتون فقط KeyError می‌دهد و علت اصلی دیده نمی‌شود.
if "error" in r:
    raise SystemExit("خطا: " + r["error"]["message"])

print(r["reply"])                 # متن پاسخ
print(r["cost_toman"])            # همیشه ۳۰

# پاسخ را به تاریخچه اضافه کنید تا پیام بعدی کانتکست داشته باشد
history.append({"role": "assistant", "content": r["reply"]})


# ── همان گفتگو، اما کلمه‌به‌کلمه ──────────────────────────────
# فقط دو تفاوت با بالا دارد: "stream": True در بدنه، و stream=True
# در خودِ requests تا پاسخ تکه‌تکه خوانده شود.
import json

with requests.post("https://api.appalpha.ir/v1/chat", headers=H, stream=True, json={
    "model": "aya-chat",
    "messages": history,
    "stream": True,
}) as resp:
    reply = ""
    for line in resp.iter_lines(decode_unicode=True):
        if not line or not line.startswith("data:"):
            continue
        raw = line[5:].strip()
        if raw == "[DONE]":
            break
        ev = json.loads(raw)
        if ev["type"] == "delta":
            reply += ev["text"]
            print(ev["text"], end="", flush=True)      # چاپ زنده
        elif ev["type"] == "done":
            print("\nهزینه:", ev["cost_toman"], "تومان")
        elif ev["type"] == "error":
            print("\nخطا:", ev["message"])
const KEY = process.env.ALPHA_KEY;

const history = [{ role: "user", content: "سلام، سفارشم کی می‌رسد؟" }];

const r = await fetch("https://api.appalpha.ir/v1/chat", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "aya-chat",
    system: "تو پشتیبان فروشگاه هستی و کوتاه و مؤدب جواب می‌دهی.",
    messages: history,
  }),
}).then((r) => r.json());

// اگر چیزی درست نباشد، سرور به‌جای reply یک پیام فارسی می‌دهد
if (r.error) throw new Error(r.error.message);

console.log(r.reply);
history.push({ role: "assistant", content: r.reply });


// ── همان گفتگو، اما کلمه‌به‌کلمه ──────────────────────────────
// stream: true را اضافه کنید و پاسخ را به‌جای json() تکه‌تکه بخوانید.
const res = await fetch("https://api.appalpha.ir/v1/chat", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "aya-chat",
    messages: history,
    stream: true,
  }),
});

const reader = res.body.getReader();
const decoder = new TextDecoder();
let buffer = "", reply = "";

while (true) {
  const { value, done } = await reader.read();
  if (done) break;
  buffer += decoder.decode(value, { stream: true });

  // یک رویداد ممکن است بین دو تکه‌ی شبکه نصف شود، پس فقط
  // رویدادهای کاملِ جداشده با خط خالی پردازش می‌شوند.
  let cut;
  while ((cut = buffer.indexOf("\n\n")) !== -1) {
    const chunk = buffer.slice(0, cut).trim();
    buffer = buffer.slice(cut + 2);
    if (!chunk.startsWith("data:")) continue;

    const raw = chunk.slice(5).trim();
    if (raw === "[DONE]") continue;

    const ev = JSON.parse(raw);
    if (ev.type === "delta") {
      reply += ev.text;
      bubble.textContent = reply;        // نمایش زنده
    } else if (ev.type === "done") {
      console.log("هزینه:", ev.cost_toman);
    } else if (ev.type === "error") {
      console.error(ev.message);
    }
  }
}
یک مسیر برای همه

همه‌ی مدل‌ها، یک شکل درخواست

لازم نیست برای هر مدل کد جدا بنویسید. نام مدل را عوض می‌کنید و بقیه‌ی کد دست‌نخورده می‌ماند.

فایل‌های ورودی را هم با آدرس اینترنتی و هم به شکل base64 می‌پذیرد.
متن فارسی را مستقیم بفرستید؛ ترجمه‌ی داخلی خودکار انجام می‌شود.
اگر پردازش شکست بخورد، هزینه همان لحظه به کیف پول برمی‌گردد.
درصد پیشرفت واقعی ساخت را می‌گیرید تا در محصول خودتان نوار پیشرفت بگذارید.
خواندن مستندات کامل
curl https://api.appalpha.ir/v1/generations \
  -H "Authorization: Bearer $ALPHA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-dev",
    "prompt": "یک گربه ایرانی روی فرش دستباف، نور طبیعی"
  }'

# پاسخ
# { "id": "9f2c…", "status": "processing", "cost_toman": 500 }

curl https://api.appalpha.ir/v1/generations/9f2c… \
  -H "Authorization: Bearer $ALPHA_KEY"
درباره‌ی آلفا

آلفا چیست؟

یک کلید، 11 مدل

آلفا — که با نام‌های هوش مصنوعی آلفا، اپ آلفا و Alpha AI هم شناخته می‌شود — یک سرویس ایرانی API هوش مصنوعی است. به‌جای اینکه برای هر کار سراغ یک سرویس خارجی بروید و با کارت بین‌المللی و اشتراک دلاری درگیر شوید، همه‌ی این کارها را با یک کلید و کیف پول تومانی انجام می‌دهید.

چه کارهایی می‌شود کرد؟

تبدیل متن به صدا با آلفا TTS و سی گوینده‌ی فارسی به همه‌ی زبان‌های دنیا، گفتگو با چت‌بات فارسی «آیا چت» با هر پیام سی تومان، ساخت تصویر با فلاکس Dev و ز ایمیج، ساخت تصویر کارتونی، ویرایش تصویر با Qwen Image Edit، گسترش کادر عکس، ساخت ویدیو از روی عکس با Wan 2.2، تغییر صدا با مدل اختصاصی آلفا، تقویت صدا و جداسازی صدای خواننده از موزیک.

برای چه کسانی؟

سازنده‌های ربات تلگرام، اپلیکیشن موبایل، وب‌سایت و پنل‌های سرویس‌دهی. اگر می‌خواهید یک وب‌سایت تغییر صدا یا سرویس ساخت تصویر راه بیندازید، لایه‌ی مدل را به ما بسپارید و روی محصول خودتان تمرکز کنید.

چرا ارزان‌تر؟

چون زیرساخت را خودمان می‌گردانیم و واسطه‌ای وسط نیست. قیمت هر مدل روی همین صفحه با عدد دقیق نوشته شده تا با هر سرویس دیگری مقایسه‌اش کنید؛ نه هزینه‌ی ثابت ماهانه‌ای هست، نه حداقل خریدی.

پرسش‌های پرتکرار

سؤال‌هایی که زیاد پرسیده می‌شود

آیا آلفا واقعاً ارزان‌ترین API هوش مصنوعی است؟

قیمت همه‌ی مدل‌ها روی صفحه‌ی اصلی با عدد دقیق نوشته شده تا خودتان مقایسه کنید. دو تصویر فلاکس Dev هزار تومان، چهار تصویر ز ایمیج هزار تومان، سه ویرایش تصویر هزار تومان و هر پیام چت‌بات سی تومان. هیچ هزینه‌ی ثابت ماهانه، حداقل خرید یا کارمزد پنهانی وجود ندارد.

چه مدل‌هایی در API آلفا موجود است؟

یازده مدل: آلفا TTS برای تبدیل متن به صدا با سی گوینده و پشتیبانی از همه‌ی زبان‌های دنیا، چت‌بات آیا چت با هر پیام ۳۰ تومان، ساخت تصویر با فلاکس Dev و ز ایمیج، ساخت تصویر کارتونی، ویرایش تصویر با Qwen Image Edit، گسترش تصویر، ساخت ویدیو از عکس با Wan 2.2، تغییر صدا با مدل آلفا، تقویت صدا و جداسازی صدای خواننده از موزیک.

تبدیل متن به صدای آلفا چقدر هزینه دارد؟

قیمت از روی طول متن حساب می‌شود و سه پله دارد: متن تا ۱۰۰ نویسه ۵۰۰ تومان، تا ۶۰۰ نویسه ۱٬۰۰۰ تومان و از ۶۰۱ تا ۲٬۵۰۰ نویسه ۳٬۰۰۰ تومان. هر کدام دانه‌ای است، یعنی هر درخواست یک فایل صوتی و یک بار همین مبلغ. سقف هر درخواست ۲٬۵۰۰ نویسه است.

آلفا TTS از چه زبان‌هایی پشتیبانی می‌کند؟

از همه‌ی زبان‌های دنیا. لازم نیست زبان را اعلام کنید؛ از روی خودِ متن تشخیص داده می‌شود و همان سی گوینده به هر زبانی می‌خوانند. گوینده‌ها نام فارسی دارند (شهاب، آوا، مهتاب و…) و در درخواست API با همان نام به فینگلیش فرستاده می‌شوند.

چت‌بات آیا چت چطور حساب می‌شود؟

به ازای هر پیام، سی تومان. طول سؤال و طول جواب هیچ اثری روی مبلغ ندارد و فرستادن تاریخچه‌ی مکالمه هم هزینه‌ی جداگانه‌ای نمی‌سازد؛ ورودی و خروجی روی هم یک پیام حساب می‌شوند. یعنی صورتحساب شما دقیقاً برابر است با تعداد پیام‌ها ضربدر سی تومان.

می‌توانم درصد پیشرفت ساخت را به کاربرانم نشان بدهم؟

بله. مسیر سبک /v1/generations/{id}/progress درصد واقعی ساخت را برمی‌گرداند — عددی که خودِ مدل حین اجرا گزارش می‌کند، نه تخمین. می‌توانید هر ثانیه بپرسیدش و یک نوار پیشرفت واقعی در محصولتان بگذارید.

هزینه چطور حساب می‌شود؟

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

پرداخت ریالی و تومانی دارد؟

بله. کیف پول و همه‌ی قیمت‌ها تومانی است و نیازی به کارت بین‌المللی یا حساب ارزی ندارید. شارژ هم مستقیم با درگاه زرین‌پال و کارت بانکی خودتان انجام می‌شود.

چطور کیف پولم را شارژ کنم؟

از صفحه‌ی «شارژ کیف پول» در پنل کاربری. مبلغ را انتخاب می‌کنید، به درگاه امن زرین‌پال می‌روید و با کارت بانکی خودتان پرداخت می‌کنید؛ اعتبار بلافاصله پس از تأیید بانک در حسابتان می‌نشیند. بسته‌های بزرگ‌تر هدیه‌ی اعتبار هم دارند و مبلغ دلخواه هم پذیرفته می‌شود.

اگر وسط پرداخت اینترنتم قطع شود چه می‌شود؟

اعتبارتان گم نمی‌شود. تراکنش‌های پرداخت‌شده‌ی تأییدنشده هر چند دقیقه یک بار خودکار پیگیری و تسویه می‌شوند، و باز کردن دوباره‌ی صفحه‌ی شارژ هم همان لحظه وضعیت را بررسی می‌کند. اگر پرداختی واقعاً ناموفق باشد، مبلغ طی حداکثر ۷۲ ساعت خودکار از سمت بانک برمی‌گردد.

چطور شروع کنم؟

با حساب گوگل وارد شوید. کلید API بلافاصله ساخته می‌شود و اعتبار هدیه در کیف پول شما می‌نشیند. بعد یک درخواست POST به مسیر v1/generations بفرستید.

آیا می‌توانم روی محصول خودم استفاده کنم؟

بله. API برای همین ساخته شده: ربات تلگرام، اپلیکیشن موبایل، وب‌سایت یا هر محصولی که بخواهید. مثلاً می‌توانید یک وب‌سایت تغییر صدا بسازید و ساخت مدل صدا را به کاربران خودتان بسپارید.

پشتیبانی چطور است؟

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

کلیدتان را همین حالا بردارید

ثبت‌نام فقط با حساب گوگل انجام می‌شود — بدون رمز عبور و بدون فرم. اعتبار هدیه بلافاصله در کیف پول می‌نشیند تا اولین خروجی‌هایتان رایگان باشد. بعدش هم شارژ کیف پول آنلاین و با کارت بانکی خودتان انجام می‌شود. سؤالی داشتید، در تلگرام به @App_alpha_support پیام بدهید.