OpenAPI سئو سیگنال
دسترسی برنامهنویسی به ابزارهای تحقیق کلمه کلیدی و آنالیز کلمات سایت — برای اتوماسیون گزارشها و اتصال به ابزارهای خودتان، بدون باز کردن پنل.
معرفی
این API همان منطق و دادهای را برمیگرداند که در پنل سئو سیگنال میبینید — تحقیق کلمه کلیدی، آنالیز کلمات سایت، دستیار رپورتاژ و ردیاب رتبه — بهصورت درخواستهای ساده HTTP با بدنه و پاسخ JSON.
همه endpointها با متد POST فراخوانی میشوند و پاسخ همیشه یک شیء JSON با کلید ok است.
ردیاب رتبه (RankTracker) چون داده خودِ حساب شماست، مشمول سقف روزانه نیست. تحقیق کلمه کلیدی، آنالیز کلمات سایت، مقایسه سایت و دستیار رپورتاژ از یک سقف روزانه مشترک استفاده میکنند.
احراز هویت
کلید API خود را از منوی کاربری پنل، بخش «مدیریت API» بسازید. کلید بهصورت ایمیل:توکن نمایش داده میشود — همین مقدار را عیناً در هدر هر درخواست بفرستید.
X-Api-Key: saeed@example.com:a1b2c3d4e5f6...64کاراکتر
این کلید معادل رمز عبور حساب شماست. آن را در کد سمت کلاینت (مرورگر) قرار ندهید و در صورت افشا، بلافاصله از پنل بازتولیدش کنید.
اتصال MCP
علاوهبر endpointهای REST بالا، همه ابزارهای این API از طریق یک سرور MCP (Model Context Protocol) هم در دسترساند — برای اتصال مستقیم دستیارهای هوش مصنوعی به دادههای سئو سیگنال، بدون نیاز به نوشتن کد. سرور MCP دقیقاً همان منطق/داده REST را برمیگرداند؛ فقط قالب پروتکل فرق دارد.
X-Api-Key بالابعد از اتصال، کلاینت با متد tools/list فهرست کامل ابزارها را با شرح و پارامترهایشان خودکار کشف میکند — نیازی به کپی دستی مستندات نیست. سقف روزانه و دسترسی پلن (رپورتاژ/رایگان) عیناً مثل REST روی هر ابزار اعمال میشود. برای گفتگوی طبیعی کافی است بگویید مثلاً «از طریق MCP سئو سیگنال، رتبه سایتم رو چک کن» — دستیار خودش ابزار مناسب را صدا میزند.
اتصال از کلاینتهای مختلف
از منوی Settings → Developer → Edit Config فایل پیکربندی MCP را باز کنید و این بلوک را داخل mcpServers اضافه کنید، سپس Claude Desktop را ریاستارت کنید.
{
"mcpServers": {
"seosignal": {
"url": "https://panel.seosignal.net/openapi/mcp",
"headers": { "X-Api-Key": "YOUR_API_KEY" }
}
}
}
بعد از ریاستارت، آیکون ابزارها (🔌) پایین چت باید ۱۲ ابزار سئو سیگنال را نشان دهد.
در ترمینال، داخل پوشه پروژه یا با دستور کلی زیر سرور را اضافه کنید:
claude mcp add --transport http seosignal \ https://panel.seosignal.net/openapi/mcp \ --header "X-Api-Key: YOUR_API_KEY"
با دستور /mcp داخل Claude Code میتوانید وضعیت اتصال و ابزارهای در دسترس را ببینید.
شروع سریع
-
۱
کلید API را بسازید
پنل → آیکون کاربری →
مدیریت API→ دکمه «ساخت کلید API». -
۲
یک درخواست بزنید
نمونههای
curlپایین هر endpoint را کپی وYOUR_API_KEYرا با کلید خودتان جایگزین کنید. -
۳
پاسخ را بخوانید
در موفقیت،
ok:trueو داده در کلیدdataبرمیگردد. در خطا،error.codeوerror.messageرا ببینید.
سقف و مصرف روزانه
هر کاربر بهطور پیشفرض روزانه ۵۰ درخواست به بخشهای تحلیلی دارد (این عدد در پنل، بخش «مدیریت API»، همراه با میزان مصرف امروز شما قابل مشاهده است). شمارنده هر روز ساعت ۰۰:۰۰ بهوقت تهران صفر میشود.
OpenAPI برای پلن رایگان فعال نیست. اگر حساب شما در پلن رایگان باشد، همه endpointها با خطای PLAN_NOT_ALLOWED (کد ۴۰۳) پاسخ میدهند.
چهار endpoint «دستیار رپورتاژ» علاوهبر سقف بالا، نیاز به فعال بودن سرویس رپورتاژ روی پلن شما دارند؛ در غیر اینصورت با همان خطای PLAN_NOT_ALLOWED پاسخ داده میشود. همچنین endpoint آنالیز خریدار رپورتاژ، مشابه آنالیز کلمات سایت، از سقف ماهانه SRLimit پلن شما هم استفاده میکند (فیلدهای limit/usage در پاسخ آن).
کدهای خطا
در خطا، پاسخ همیشه این ساختار را دارد و کد HTTP متناظر برمیگردد:
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "سقف روزانه درخواستهای API به پایان رسیده است."
}
}
limit و used هم برمیگردند.تحقیق کلمه کلیدی
حجم جستجو، رقابت و روند ماهانه یک کلمه کلیدی — با ۵ مدل مختلف جستجو.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| keyword الزامی | string | کلمه کلیدی هدف |
| search_type اختیاری | string | مدل جستجو — پیشفرض similar |
| count اختیاری | int | حداکثر تعداد نتیجه — پیشفرض و سقف 1000 |
مقادیر search_type
نمونه درخواست و پاسخ
curl -X POST https://panel.seosignal.net/openapi/v1/keyword-research \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keyword":"سئو","search_type":"similar"}'
{
"ok": true,
"search_type": "similar",
"limit": 1000,
"usage": 55,
"data": {
"wordSearchVolume": 12000,
"allSearchVolume": 145000,
"changeSearchVolume": 4.2,
"keywordList": [
{ "Word": "سئو کلاه سفید", "SearchVolume": 2400, "Competition": "معمولی" }
],
"chart": { "lable": ["مهر ۱۴۰۴", ...], "data": [121350, ...] },
"domainCTR": { "Domain": ["safine.net (10%)", ...], "CTR": [10, ...] }
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/keyword-research \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keyword":"سئو","search_type":"topical"}'
{
"ok": true,
"search_type": "topical",
"limit": 1000,
"usage": 56,
"data": {
"wordSearchVolume": 12000,
"allSearchVolume": 98000,
"changeSearchVolume": -1.8,
"keywordList": [
{ "Word": "آموزش سئو سایت", "SearchVolume": 3600, "Competition": "سخت" }
],
"chart": { "lable": ["مهر ۱۴۰۴", ...], "data": [99200, ...] },
"domainCTR": { "Domain": ["safine.net (10%)", ...], "CTR": [10, ...] }
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/keyword-research \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keyword":"سئو","search_type":"starting_with"}'
{
"ok": true,
"search_type": "starting_with",
"limit": 1000,
"usage": 57,
"data": {
"wordSearchVolume": 12000,
"allSearchVolume": 41000,
"changeSearchVolume": 6.5,
"keywordList": [
{ "Word": "سئو چیست", "SearchVolume": 8100, "Competition": "معمولی" }
],
"chart": { "lable": ["مهر ۱۴۰۴", ...], "data": [40100, ...] },
"domainCTR": { "Domain": ["safine.net (10%)", ...], "CTR": [10, ...] }
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/keyword-research \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keyword":"سئو","search_type":"ending_with"}'
{
"ok": true,
"search_type": "ending_with",
"limit": 1000,
"usage": 58,
"data": {
"wordSearchVolume": 12000,
"allSearchVolume": 15400,
"changeSearchVolume": 2.1,
"keywordList": [
{ "Word": "آموزش سئو", "SearchVolume": 3600, "Competition": "معمولی" }
],
"chart": { "lable": ["مهر ۱۴۰۴", ...], "data": [15080, ...] },
"domainCTR": { "Domain": ["safine.net (10%)", ...], "CTR": [10, ...] }
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/keyword-research \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keyword":"سئو","search_type":"questions"}'
{
"ok": true,
"search_type": "questions",
"limit": 1000,
"usage": 59,
"data": {
"wordSearchVolume": 12000,
"allSearchVolume": 8600,
"changeSearchVolume": 11.3,
"keywordList": [
{ "Word": "سئو چگونه انجام میشود", "SearchVolume": 720, "Competition": "معمولی" }
],
"chart": { "lable": ["مهر ۱۴۰۴", ...], "data": [8420, ...] },
"domainCTR": { "Domain": ["safine.net (10%)", ...], "CTR": [10, ...] }
}
}
تحقیق دستهای کلمات کلیدی
حجم جستجو، رقابت و روند ماهانه برای چند کلمه کلیدی همزمان — مناسب گزارشهای دورهای روی یک سبد کلمه.
یک درخواست موفق، صرفنظر از تعداد کلمات داخل آرایه، فقط یک واحد از سقف روزانه شما مصرف میکند. حداکثر ۱۰۰۰ کلمه در هر درخواست قابل ارسال است.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| keywords الزامی | string[] | آرایهای از کلمات کلیدی (حداکثر ۱۰۰۰ مورد) |
نمونه درخواست
curl -X POST https://panel.seosignal.net/openapi/v1/keyword-research-bulk \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keywords":["سئو","بک لینک","رپورتاژ"]}'
نمونه پاسخ
{
"ok": true,
"data": {
"wordsCount": 3,
"allSearchVolume": 16000,
"changeSearchVolume": 47.4,
"keywordList": [
{ "Word": "سئو", "SearchVolume": 12000, "Competition": "معمولی" },
{ "Word": "رپورتاژ", "SearchVolume": 2400, "Competition": "معمولی" },
{ "Word": "بک لینک", "SearchVolume": 450, "Competition": "معمولی" }
],
"chart": { "lable": ["مهر ۱۴۰۴", ...], "data": [18650, ...] },
"domainCTR": { "Domain": ["safine.net (32%)", ...], "CTR": [32, ...] },
"All": 3,
"Count": 2,
"Remain": 943,
"Limit": 1000,
"Usage": 57
}
}
آنالیز کلمات سایت
کلمات کلیدی و صفحات برتر یک دامنه یا آدرس، بههمراه سهم کلیک رقبا.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| url الزامی | string | دامنه یا آدرس هدف (مثل example.com) |
| search_type اختیاری | string | مدل جستجو — پیشفرض domain |
| contains اختیاری | string | فقط وقتی search_type=contains |
| count اختیاری | int | حداکثر تعداد نتیجه — پیشفرض و سقف 2000 |
مقادیر search_type
نمونه درخواست و پاسخ
url بهصورت دامنه ساده — همه کلمات کلیدی کل سایت برمیگردد.
curl -X POST https://panel.seosignal.net/openapi/v1/site-analyzer \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url":"alibaba.ir","search_type":"domain"}'
{
"ok": true,
"search_type": "domain",
"limit": 250,
"usage": 13,
"data": {
"domain": "alibaba.ir",
"Keywords": [
{ "Word": "بلیط هواپیما", "SearchVolume": 1600, "Page": "/" }
],
"topPages": [ { "Page": "/", "Avg": 4.2, "Count": 38 } ],
"RelDomains": ["flightio.com"],
"domainCTR": { "Domain": ["flightio.com (12%)"], "CTR": [12] }
}
}
url بهصورت آدرس کامل یک صفحه — فقط کلمات کلیدی همان صفحه برمیگردد.
curl -X POST https://panel.seosignal.net/openapi/v1/site-analyzer \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url":"alibaba.ir/flight","search_type":"page"}'
{
"ok": true,
"search_type": "page",
"limit": 250,
"usage": 14,
"data": {
"domain": "alibaba.ir",
"Keywords": [
{ "Word": "بلیط هواپیما", "SearchVolume": 1600, "Page": "/flight" }
],
"topPages": [ { "Page": "/flight", "Avg": 3.1, "Count": 22 } ],
"RelDomains": ["flightio.com"],
"domainCTR": { "Domain": ["flightio.com (18%)"], "CTR": [18] }
}
}
url یک مسیر پایه است — فقط صفحاتی که آدرسشان با این مسیر شروع میشود در نظر گرفته میشوند.
curl -X POST https://panel.seosignal.net/openapi/v1/site-analyzer \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url":"alibaba.ir/flight","search_type":"starting_with"}'
{
"ok": true,
"search_type": "starting_with",
"limit": 250,
"usage": 15,
"data": {
"domain": "alibaba.ir",
"Keywords": [
{ "Word": "بلیط هواپیما تهران مشهد", "SearchVolume": 880, "Page": "/flight/mashhad" }
],
"topPages": [ { "Page": "/flight/mashhad", "Avg": 5.4, "Count": 9 } ],
"RelDomains": ["flightio.com"],
"domainCTR": { "Domain": ["flightio.com (15%)"], "CTR": [15] }
}
}
وقتی search_type برابر contains باشد، پارامتر اضافه contains هم باید در بدنه ارسال شود؛ نتیجه فقط شامل صفحاتی میشود که مسیرشان حاوی این عبارت است.
curl -X POST https://panel.seosignal.net/openapi/v1/site-analyzer \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url":"alibaba.ir","search_type":"contains","contains":"flight"}'
{
"ok": true,
"search_type": "contains",
"limit": 250,
"usage": 16,
"data": {
"domain": "alibaba.ir",
"Keywords": [
{ "Word": "بلیط هواپیما", "SearchVolume": 1600, "Page": "/flight" }
],
"topPages": [ { "Page": "/flight", "Avg": 3.1, "Count": 22 } ],
"RelDomains": ["flightio.com"],
"domainCTR": { "Domain": ["flightio.com (18%)"], "CTR": [18] }
}
}
مقایسه دو سایت
رتبه یک مجموعه کلمه کلیدی در دو دامنه، کنار هم — برای پیدا کردن فاصله با رقیب.
بهمحض معتبر بودن هر دو دامنه، مصرف هردو بلافاصله ثبت میشود — حتی اگر در ادامه نتیجهای برنگردد. دامنهها را قبل از فراخوانی مکرر بررسی کنید.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| site1 الزامی | string | دامنه یا سایت اول (مبنای مقایسه) |
| site2 الزامی | string | دامنه یا سایت دوم (رقیب) |
| compare_type اختیاری | string | مدل مقایسه — پیشفرض common |
مقادیر compare_type
نمونه درخواست و پاسخ
curl -X POST https://panel.seosignal.net/openapi/v1/site-compare \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"site1":"alibaba.ir","site2":"flightio.com","compare_type":"common"}'
{
"ok": true,
"compare_type": "common",
"first_domain": "alibaba.ir",
"second_domain": "flightio.com",
"data": [
{
"Word": "بلیط هواپیما",
"Rank1": 1,
"Rank2": 2,
"Diff": 1,
"SearchVolume": 450
}
]
}
فقط کلماتی برمیگردد که site1 رتبه بهتری (عدد کوچکتر) نسبت به site2 دارد.
curl -X POST https://panel.seosignal.net/openapi/v1/site-compare \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"site1":"alibaba.ir","site2":"flightio.com","compare_type":"better_than"}'
{
"ok": true,
"compare_type": "better_than",
"first_domain": "alibaba.ir",
"second_domain": "flightio.com",
"data": [
{
"Word": "بلیط هواپیما",
"Rank1": 1,
"Rank2": 6,
"Diff": 5,
"SearchVolume": 450
}
]
}
فقط کلماتی برمیگردد که site1 رتبه بدتری (عدد بزرگتر) نسبت به site2 دارد.
curl -X POST https://panel.seosignal.net/openapi/v1/site-compare \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"site1":"alibaba.ir","site2":"flightio.com","compare_type":"worse_than"}'
{
"ok": true,
"compare_type": "worse_than",
"first_domain": "alibaba.ir",
"second_domain": "flightio.com",
"data": [
{
"Word": "چارتر پرواز",
"Rank1": 9,
"Rank2": 3,
"Diff": -6,
"SearchVolume": 210
}
]
}
کلماتی که فقط site2 برایشان رتبه دارد و site1 اصلاً رتبهای ندارد — یعنی فرصت خالی برای site1. در این حالت Rank2 همیشه مقدار ثابت "!" و Diff مقدار ثابت "50<" برمیگرداند و معنای عددی ندارند.
curl -X POST https://panel.seosignal.net/openapi/v1/site-compare \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"site1":"alibaba.ir","site2":"flightio.com","compare_type":"gap"}'
{
"ok": true,
"compare_type": "gap",
"first_domain": "alibaba.ir",
"second_domain": "flightio.com",
"data": [
{
"Word": "رزرو هتل مشهد",
"Rank1": null,
"Rank2": "!",
"Diff": "50<",
"SearchVolume": 590
}
]
}
پیشنهاد رسانه رپورتاژ
بر اساس تا ۴ کلمه کلیدی، رسانههایی که مناسب خرید رپورتاژ برای این کلمات هستند را رتبهبندی میکند.
این endpoint فقط برای پلنهایی در دسترس است که سرویس «دستیار رپورتاژ» روی آنها فعال باشد.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| keywords الزامی | string[] | آرایهای از کلمات کلیدی (حداکثر ۴ مورد) |
نمونه درخواست
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-suggest \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"keywords":["سئو","بک لینک"]}'
نمونه پاسخ
{
"ok": true,
"data": [
{
"Domain": "blog.example-media.ir",
"Score": 33,
"Count": 48,
"RankAvg": 9,
"Price": 3700000,
"Ranks": [
{ "Keyword": "سئو چیست", "URL": "/what-is-seo/", "Rank": 3 }
]
}
]
}
جزئیات رسانه پیشنهادی
پروفایل لینکهای خروجی یک رسانه (از پاسخ پیشنهاد رسانه) روی کلمات مشخص — برای بررسی اینکه آیا آن رسانه قبلاً روی این کلمات/انکرها رپورتاژ فروخته یا نه.
این endpoint فقط برای پلنهایی در دسترس است که سرویس «دستیار رپورتاژ» روی آنها فعال باشد.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| domain الزامی | string | دامنه رسانه (از فیلد Domain در پاسخ پیشنهاد رسانه) |
| keywords الزامی | string[] | آرایهای از کلمات کلیدی (حداکثر ۴ مورد) |
نمونه درخواست
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-suggest-check \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domain":"blog.example-media.ir","keywords":["سئو","بک لینک"]}'
نمونه پاسخ
{
"ok": true,
"data": [
{
"FromUrl": "https://blog.example-media.ir/seo-guide/",
"AnchorText": "آموزش سئو",
"ToUrl": "https://alibaba.ir/seo",
"ToHost": "alibaba.ir",
"Follow": true
}
]
}
آنالیز فروشنده رپورتاژ
یک دامنه را بهعنوان «فروشنده» رپورتاژ بررسی میکند — چه رپورتاژهایی منتشر کرده، به کجا لینک داده و رتبهبندی خودش در گوگل چگونه است.
این endpoint فقط برای پلنهایی در دسترس است که سرویس «دستیار رپورتاژ» روی آنها فعال باشد.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| domain الزامی | string | دامنه رسانه هدف |
| report_type اختیاری | string | نوع گزارش — پیشفرض reportages |
| date_range اختیاری | string | بازه زمانی — پیشفرض all (فقط برای گزارشهای غیر از serp اثر دارد) |
مقادیر report_type
نمونه درخواست و پاسخ
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-seller \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domain":"blog.example-media.ir","report_type":"reportages","date_range":"last_90"}'
{
"ok": true,
"report_type": "reportages",
"data": {
"Reportages": [
{
"Url": "https://blog.example-media.ir/travel-tips/",
"Follow": 6,
"NoFollow": 0,
"All": 6,
"InLinkCount": 28,
"OutDomainCount": 7,
"OutLinkCount": 7,
"PublishDate": "1404/02/14",
"Title": "۱۰ نکته کاربردی سفر — بلاگ رسانه نمونه"
}
]
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-seller \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domain":"blog.example-media.ir","report_type":"out_domains","date_range":"last_90"}'
{
"ok": true,
"report_type": "out_domains",
"data": {
"OutDomains": [
{ "DomainName": "alibaba.ir", "Follow": 2, "NoFollow": 0, "All": 2 }
]
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-seller \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domain":"blog.example-media.ir","report_type":"serp"}'
{
"ok": true,
"report_type": "serp",
"data": {
"domain": "blog.example-media.ir",
"url": "https://blog.example-media.ir",
"keywordCount": 2000,
"topKeywords": [
{ "Word": "آموزش سئو", "SearchVolume": 3600 }
],
"topPages": [ { "Page": "/seo-guide/", "Avg": 4.2, "Count": 15 } ],
"domainCTR": { "Domain": ["translate.google.com (16%)", ...], "CTR": [16, ...] }
}
}
آنالیز خریدار رپورتاژ
یک دامنه را بهعنوان «خریدار» رپورتاژ بررسی میکند — چه رپورتاژهایی خریده، از چه رسانههایی و با چه هزینهای.
این endpoint فقط برای پلنهایی در دسترس است که سرویس «دستیار رپورتاژ» روی آنها فعال باشد. علاوهبر سقف روزانه OpenAPI، از سقف ماهانه مشترک SRLimit (همان سقف آنالیز کلمات سایت) هم استفاده میکند.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| domain الزامی | string | دامنه هدف (خریدار رپورتاژ) |
| report_type اختیاری | string | نوع گزارش — پیشفرض reportages |
| date_range اختیاری | string | بازه زمانی — پیشفرض all |
| search_type اختیاری | string | مدل جستجو — پیشفرض domain |
مقادیر report_type
مقادیر search_type
نمونه درخواست و پاسخ
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-buyer \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domain":"alibaba.ir","report_type":"reportages"}'
{
"ok": true,
"report_type": "reportages",
"limit": 250,
"usage": 19,
"data": {
"PRList": [
{
"Url": "https://news-example.ir/hotel-booking-tips",
"FromHost": "news-example.ir",
"Follow": 1,
"NoFollow": 0,
"All": 1,
"PublishDate": "1404/02/18",
"Title": "راهنمای رزرو هتل",
"Price": 2213000
}
]
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/reportage-buyer \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domain":"alibaba.ir","report_type":"cost_analysis","date_range":"last_365"}'
{
"ok": true,
"report_type": "cost_analysis",
"limit": 250,
"usage": 20,
"data": {
"LastYearCost": {
"DateList": ["1404 مهر", "1404 آبان"],
"Prices": [4200000, 3100000]
},
"LastMonthCost": {
"DateList": ["1404/08/01", "1404/08/02"]
}
}
}
لیست پروژههای ردیاب رتبه
فهرست پروژههای ردیاب رتبه کاربر، بههمراه تعداد دامنه/کلمه کلیدی هر پروژه و سقف پلن.
چون داده ردیاب رتبه متعلق به خودِ حساب شماست، هر چهار endpoint ردیاب رتبه مشمول سقف روزانه OpenAPI نیستند. همچنین، برخلاف سایر endpointها، فیلد Id هر پروژه در خروجی حذف نمیشود — برای فراخوانی جزئیات پروژه لازم است.
پارامترهای بدنه
این endpoint بدون پارامتر است — بدنه درخواست میتواند خالی ({}) باشد.
نمونه درخواست
curl -X POST https://panel.seosignal.net/openapi/v1/ranktracker-projects \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{}'
نمونه پاسخ
{
"ok": true,
"data": {
"List": [
{
"Id": 37113,
"Name": "پروژه دیوار — اصفهان",
"CheckDate": "1405/07/06",
"DomainCount": 1,
"MainDomain": "divar.ir",
"KeywordCount": 3,
"IsActive": true,
"IsOwner": true
}
],
"ProjectCount": 8,
"ActiveCount": 7,
"KeywordLimit": 1000,
"KeywordCount": 79,
"DomainLimit": 30,
"DomainCount": 13
}
}
جزئیات پروژه ردیاب رتبه
دامنه اصلی، کلمات کلیدی، دامنههای رقیب، شهر بررسی رتبه و شناسههای گزارشگیری (mobile_id/desktop_id) یک پروژه — گام میانی لازم قبل از فراخوانی گزارش دامنه اصلی.
project_id باید متعلق به همان حسابی باشد که کلید API از آن ساخته شده؛ در غیر اینصورت خطای REQUEST_FAILED برمیگردد.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| project_id الزامی | int | شناسه پروژه (از پاسخ لیست پروژهها) |
نمونه درخواست
curl -X POST https://panel.seosignal.net/openapi/v1/ranktracker-project-detail \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"project_id":37113}'
نمونه پاسخ
{
"ok": true,
"data": {
"name": "پروژه دیوار — اصفهان",
"main_domain": "divar.ir",
"is_active": true,
"keywords": ["آپارتمان", "خرید آپارتمان", "اجاره آپارتمان"],
"competitor_domains": [],
"location": "اصفهان",
"country_code": "IR",
"mobile_id": 87,
"desktop_id": 88
}
}
وضعیت تغییر رتبهها
وضعیت رتبه کلمات کلیدی یک دامنه پروژه (اصلی یا رقیب) در یک بازه زمانی — رتبه، تغییر رتبه نسبت به ابتدای بازه، بهترین رتبه و حجم جستجو.
project_id باید متعلق به همان حسابی باشد که کلید API از آن ساخته شده و device_id باید یکی از mobile_id/desktop_id همان پروژه (از پاسخ جزئیات پروژه) باشد؛ در غیر اینصورت خطای REQUEST_FAILED برمیگردد.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| project_id الزامی | int | شناسه پروژه (از پاسخ لیست پروژهها) |
| device_id الزامی | int | mobile_id یا desktop_id همان پروژه (از پاسخ جزئیات پروژه) |
| domain اختیاری | string | دامنه هدف — پیشفرض main_domain؛ یا یکی از competitor_domains همان پروژه (از پاسخ جزئیات پروژه) |
| start_date اختیاری | string | تاریخ شروع بازه، قالب YYYY-MM-DD — پیشفرض دیروز |
| end_date اختیاری | string | تاریخ پایان بازه، قالب YYYY-MM-DD — پیشفرض امروز (حداکثر بازه ۹۰ روز) |
اگر start_date/end_date ارسال نشوند، بازه پیشفرض «دیروز تا امروز» است (برای گرفتن وضعیت لحظهای/روزانه). برای روند بلندمدتتر، هر دو تاریخ را صریح ارسال کنید (حداکثر ۹۰ روز). ترتیب فراخوانی معمول: ابتدا لیست پروژهها برای گرفتن project_id، سپس جزئیات پروژه برای گرفتن mobile_id/desktop_id، و در نهایت این endpoint با یکی از آن دو مقدار بهعنوان device_id.
نمونه درخواست و پاسخ
curl -X POST https://panel.seosignal.net/openapi/v1/ranktracker-rank-status \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"project_id":37113,"device_id":87}'
{
"ok": true,
"data": {
"domain": "divar.ir",
"device_id": 87,
"is_main_domain": true,
"date_range": ["2026-09-28", "2026-09-29"],
"avg_rank_series": [1, 1.33],
"visibility_series": [100, 100],
"rank_distribution": { "رتبه ۱": 2, "رتبه ۲ تا ۳": 1, ... },
"rank_change_distribution": { "بدون تغییر": 2, "رشد کرده": 0, "افت کرده": 1 },
"keywords": [
{
"keyword": "آپارتمان",
"rank": 2,
"rank_change": 1,
"avg_rank": 1.5,
"best_rank": 1,
"best_rank_date": "2026-09-28",
"search_volume": 22000,
"target_url": null,
"tags": null,
"check_datetime": "1405/07/07"
}
]
}
}
curl -X POST https://panel.seosignal.net/openapi/v1/ranktracker-rank-status \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"project_id":37113,"device_id":87,"start_date":"2026-08-30","end_date":"2026-09-29"}'
{
"ok": true,
"data": {
"domain": "divar.ir",
"device_id": 87,
"is_main_domain": true,
"date_range": ["2026-08-30", "...", "2026-09-29"],
"avg_rank_series": [ ... ],
"visibility_series": [ ... ],
"rank_distribution": { ... },
"rank_change_distribution": { ... },
"keywords": [ ... ]
}
}
وقتی domain یکی از competitor_domains پروژه باشد، همان گزارش برای دامنه رقیب برمیگردد و is_main_domain برابر false است.
curl -X POST https://panel.seosignal.net/openapi/v1/ranktracker-rank-status \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"project_id":472,"device_id":1,"domain":"torob.com"}'
{
"ok": true,
"data": {
"domain": "torob.com",
"device_id": 1,
"is_main_domain": false,
"date_range": ["2026-09-28", "2026-09-29"],
"avg_rank_series": [32.2, 32],
"visibility_series": [70, 70],
"keywords": [ ... ]
}
}
تاریخچه رتبه کلمات کلیدی
رتبه روزبهروز هر کلمه کلیدی یک دامنه پروژه (اصلی یا رقیب) در یک بازه زمانی — برخلاف «وضعیت تغییر رتبهها» که فقط آخرین وضعیت را میدهد، اینجا رتبه هر روزِ بازه بهصورت جداگانه برمیگردد.
project_id باید متعلق به همان حسابی باشد که کلید API از آن ساخته شده و device_id باید یکی از mobile_id/desktop_id همان پروژه (از پاسخ جزئیات پروژه) باشد؛ در غیر اینصورت خطای REQUEST_FAILED برمیگردد.
پارامترهای بدنه
| کلید | نوع | توضیح |
|---|---|---|
| project_id الزامی | int | شناسه پروژه (از پاسخ لیست پروژهها) |
| device_id الزامی | int | mobile_id یا desktop_id همان پروژه (از پاسخ جزئیات پروژه) |
| domain اختیاری | string | دامنه هدف — پیشفرض main_domain؛ یا یکی از competitor_domains همان پروژه (از پاسخ جزئیات پروژه) |
| start_date اختیاری | string | تاریخ شروع بازه، قالب YYYY-MM-DD — پیشفرض دیروز |
| end_date اختیاری | string | تاریخ پایان بازه، قالب YYYY-MM-DD — پیشفرض امروز (حداکثر بازه ۹۰ روز) |
نمونه درخواست
curl -X POST https://panel.seosignal.net/openapi/v1/ranktracker-rank-history \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"project_id":37113,"device_id":87,"start_date":"2026-09-22","end_date":"2026-09-29"}'
نمونه پاسخ
{
"ok": true,
"data": {
"domain": "divar.ir",
"device_id": 87,
"date_range": ["2026-09-28", "2026-09-29"],
"avg_rank_series": [1, 1.33],
"visibility_series": [100, 100],
"keywords": [
{
"keyword": "آپارتمان",
"search_volume": 22000,
"target_url": null,
"tags": null,
"start_rank": 1,
"end_rank": 2,
"rank_change": 1,
"avg_rank": 1.5,
"best_rank": 1,
"best_rank_date": "2026-09-28",
"history": [
{ "date": "2026-09-28", "rank": 1 },
{ "date": "2026-09-29", "rank": 2 }
]
}
]
}
}