Belgeyên API
SiberMakale girêbidin bi serîlêdana xwe, malpera xwe an otomasyonên xwe (Zapier, Make, n8n): gotaran çêbikin, rewşa wan bişopînin, naverokê bi awayê HTML / Markdown bistînin.
🚀 Destpêka bilez
- Hesabê belaş vekin an têkevin, paşê ji vê rûpelê mifteyeke API çêbikin.
POST ?r=articlesû mijar û peyvên sereke bişînin.GET ?r=jobs&id=…û bipirsin heta rewş bibe "done".GET ?r=article&id=…bi temamî gotarê bistînin.
Navnîşana bingehîn: https://sibermakale.info/api/v1.php · Hemû bersiv JSON (UTF-8) ne · Ji bo her gotarê 1 mafê gotarê tê bikaranîn.
🔑 Mifteyên we yên API
Ji bo afirandina kilîta API-yê têkevinê.
Têkeve Qeydkirina belaşKilîta xwe bi kesî re parve nekin û di koda giştî ya gerokê de cih nekin; li aliyê serverê biparêzin. Kilît tenê wekî xulase tê hilanîn, em jî nikarin bibînin.
🛡 Piştrastkirina nasnameyê
Di her daxwazê de mifteya xwe Authorization di sernavê de bişînin:
Authorization: Bearer sm_ANAHTARINIZ
Alternatîf: X-API-Key: sm_ANAHTARINIZ
📡 Xalên dawî
?r=meAgahiyên hesab û balansê (mafê gotarê, krediya amûran, bidawîbûna pakêta bêsînor).
Bersiva mînak
{"ok":true,"user":{"id":12,"name":"Ayşe","email":"ayse@ornek.com","article_credits":18,"tool_credits":5,"unlimited_until":null}}?r=optionsLîsteya ziman, ton, dirêjahî, cureya naverok, wêne û nirxên tekezî yên ku hûn dikarin bikar bînin.
Bersiva mînak
{"ok":true,"options":{"language":["tr","en","de",…],"tone":["profesyonel",…],"length":[500,1000,1500,…],…}}?r=articlesKarê gotarê dide destpêkirin. Her gotar 1 mafê gotarê bikar tîne; mafê gotarên ku xeletî didin bixweber tê vegerandin. Ji bo parametreyên bedenê li jêr binêrin.
Bersiva mînak
{"ok":true,"job":{"id":345,"status":"planning","total":1,"done":0,"articles":[{"id":901,"status":"pending","title":""}]}}?r=jobs&id=345Rewşa kar. Her pirs karekî gavekê pêş dixe; heya status "done" bibe, her 10–20 çirkeyan carekê bipirsin (an jî webhook_url bikar bînin).
Bersiva mînak
{"ok":true,"job":{"id":345,"status":"done","total":1,"done":1,"articles":[{"id":901,"status":"done","title":"Kahve Makinesi Nasıl Seçilir?","word_count":1540,"originality":96.4}]}}?r=articles&limit=20Gotarên we yên dawî yên temamkirî (herî zêde 100).
Bersiva mînak
{"ok":true,"articles":[{"id":901,"job_id":345,"title":"…","slug":"kahve-makinesi-nasil-secilir","word_count":1540}]}?r=article&id=901&format=htmlGotara bi temamî. format: html (pêşwext), markdown an text.
Bersiva mînak
{"ok":true,"article":{"id":901,"title":"…","seo_title":"…","meta_description":"…","slug":"…","format":"html","content":"<h2>…</h2><p>…</p>"}}🧩 Parametreyên gotarê (POST ?r=articles)
Laşê JSON (Content-Type: application/json) an jî wek form dikare were şandin.
| Qad | Cure | Mecbûrî | Danasîn |
|---|---|---|---|
topic | text | Erê* | Mijara gotarê / ramana sernavê (kêmtirîn 3 tîp). |
topics | rêzik / rêz | Na | Nivîsandina komî: her hêman gotarek cuda ye (herî zêde 10). Heke were dayîn li şûna topic tê bikaranîn. |
keywords | array / texta bi vîrgul | Erê | Peyvên sereke (1–10). |
language | text | Na | Koda ziman, mînak tr, en, de. Pêşwext tr. |
length | hejmar | Na | Hejmara peyvan a armanc (options → length). Standard 1000. |
tone | text | Na | Tonê nivîsê (options → tone). Pêşwext profesyonel. |
content_type | text | Na | Cureyê naverokê: blog, rêber, lîste, berawird… (options → content_type). |
seo | bool | Na | Optîmîzasyona SEO. Di API-yê de pêşwext vekirî ye. |
highlight | rêzefîlm | Na | Şablonên tekezkirinê (options → highlight). |
faq / toc / takeaways / aeo / citations | bool | Na | Pirsên pirtûk, naverok, yên pêşîn, guncanbûna ji bo lêgerînên AI-yê, çavkanî. |
image_strategy | text | Na | none (pêşwext), ai an web (options → image_strategy). |
images_per_article | hejmar | Na | 1–5 wêne. |
use_brand | bool | Na | Bi agahiyên Profîla Markeya xwe binivîse. |
link_url | text | Na | Malpera we ya ku di gotarê de girêdan jê re tê dayîn. |
webhook_url | navnîşana https | Na | Dema kar qediya, encam bi awayê JSON ji vê navnîşanê re tê POST kirin. |
* Yek ji topic an topics pêwîst e.
🔄 Herikîna asayî
Gotarek li gorî mîhengan bi gelemperî di 1–4 deqîqeyan de amade dibe. Rewşa kar: planning, running, done, failed. Rewşa gotarê: pending, running, done, failed.
🪝 Webhook
Li şûna pirsînê webhook_url ger hûn bidin, dema kar qediya bi vê laşê ji navnîşana we re POST tê kirin:
{"event":"job.done","job":{"id":345,"status":"done","total":1,"done":1,"articles":[…]}}
Piştrastkirin: X-SiberMakale-Signature sernav, ya laşê HMAC-SHA256 îmze ye; wekî mifte, kurteya SHA-256 ya mifteya API-yê ku kar dest pê kir tê bikar anîn:
hash_hmac('sha256', $govde, hash('sha256', $apiAnahtari)). Kar, tewra hûn nepirsin jî di paşxanê de berdewam dike û dema qediya webhook tê şandin (tenê navnîşanên https).
💻 Mînakên kodê
curl -X POST "https://sibermakale.info/api/v1.php?r=articles" \
-H "Authorization: Bearer sm_ANAHTARINIZ" \
-H "Content-Type: application/json" \
-d '{"topic":"Kahve makinesi nasıl seçilir","keywords":["kahve makinesi","espresso"],"language":"tr","length":1500,"faq":true}'
<?php
$key = 'sm_ANAHTARINIZ';
$api = 'https://sibermakale.info/api/v1.php';
$call = function (string $route, ?array $body = null) use ($key, $api) {
$ch = curl_init($api . '?r=' . $route);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 320,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $key, 'Content-Type: application/json']]);
if ($body) { curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body)); }
return json_decode(curl_exec($ch), true);
};
$job = $call('articles', ['topic' => 'Kahve makinesi nasıl seçilir', 'keywords' => ['kahve makinesi']])['job'];
do { sleep(15); $job = $call('jobs&id=' . $job['id'])['job']; } while (!in_array($job['status'], ['done', 'failed']));
foreach ($job['articles'] as $a) {
$art = $call('article&id=' . $a['id'])['article'];
echo $art['title'], "\n", $art['content'];
}
const KEY = 'sm_ANAHTARINIZ';
const API = 'https://sibermakale.info/api/v1.php';
const call = (route, body) => fetch(`${API}?r=${route}`, {
method: body ? 'POST' : 'GET',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: body ? JSON.stringify(body) : undefined,
}).then(r => r.json());
let { job } = await call('articles', { topic: 'Kahve makinesi nasıl seçilir', keywords: ['kahve makinesi'] });
while (!['done', 'failed'].includes(job.status)) {
await new Promise(r => setTimeout(r, 15000));
({ job } = await call(`jobs&id=${job.id}`));
}
console.log(job.articles);
import requests, time
KEY = 'sm_ANAHTARINIZ'
API = 'https://sibermakale.info/api/v1.php'
H = {'Authorization': f'Bearer {KEY}'}
job = requests.post(f'{API}?r=articles', headers=H, json={'topic': 'Kahve makinesi nasıl seçilir', 'keywords': ['kahve makinesi']}).json()['job']
while job['status'] not in ('done', 'failed'):
time.sleep(15)
job = requests.get(f"{API}?r=jobs&id={job['id']}", headers=H, timeout=320).json()['job']
for a in job['articles']:
art = requests.get(f"{API}?r=article&id={a['id']}&format=markdown", headers=H).json()['article']
print(art['title'], art['content'][:200])
⚠ Kodên çewtiyê
{"ok":false,"error":{"type":"invalid_request","message":"En az bir anahtar kelime girin."}}
| HTTP | type | Wateya wê |
|---|---|---|
| 401 | unauthorized | Mifte kêm e an nederbasdar e. |
| 402 | insufficient_credits | Mafê gotaran têrê nake. |
| 404 | not_found | Kar / gotar nehat dîtin an xala dawî tune. |
| 422 | invalid_request | Parametreya kêm an çewt (hûrgilî di peyamê de ye). |
| 429 | rate_limited | Sînorê 60 daxwazên di deqîqeyê de derbas bû (binêrin sernivîsa Retry-After). |
| 500 | server_error | Çewtiyeke neçaverêkirî; dîsa biceribîne. |
📏 Sînor û bihayan
- 60 daxwaz di deqîqeyê de (ji bo her mifteyê).
- Di daxwazekê de herî zêde 10 gotar; her gotar 1 mafê gotarê ye. Di pakêtên bêsînor de sînorê bikaranîna adilane ya rojane derbasdar e.
- API bi xwe belaş e; tenê gotarên ku hûn çêdikin ji mafê we tê kêmkirin. Ji bo pakêtan Pakêt rûpelê binêrin.