Nástroj na kontrolu zpětných odkazů na webu: skripty, které můžete naplánovat
Každý volání zde funguje s curl nebo libovolným HTTP klientem. Nahraďte klíč, zachovejte vzor: volání, uložení, rozdíl.
Výzkumný tým ArchiLinks ·

Základní pravidla
Jedno volání, jedna fakturace. Každý požadavek je účtován jednou bez ohledu na počet řádků a jedno volání vrátí až 1 000 řádků. Hluboké stránkování končí u 50 000 řádků a parametr per přijímá hodnoty od 10 do 5 000.
To mění způsob, jakým píšete skripty. Požádejte o per=1000 a stránkujte pouze tehdy, když potřebujete více, protože nástroj na kontrolu zpětných odkazů na webu postavený na malých stránkách znásobí vaše náklady desetinásobně bez přínosu. Chyby jsou jasné: HTTP 401 pro chybějící klíč, 402 když dojdou kredity, a každé JSON tělo nese ok.
Spusťte každý skript jednou ručně proti malé doméně a přečtěte JSON. Názvy polí, kontejner řádků a pole pro stránkování by měla vycházet ze skutečné odpovědi, ne z našich příkladů, takže je potvrďte, než bude cron job na nich záviset.
Python: uložení datumového snímku
Názvy polí v odpovědi jsou uvedeny jako příklad. Vytiskněte jednu odpověď, než se na klíč spolehnete.
import json, sys, datetime, requests
BASE = "https://archilinks.com/api.php"
KEY = "sk_live_..."
def snapshot(domain, action="refdomains"):
r = requests.get(BASE, params={"action": action, "q": domain, "per": 1000, "key": KEY}, timeout=30)
if r.status_code in (401, 402):
sys.exit(f"API said {r.status_code}: check key or balance")
r.raise_for_status()
body = r.json()
assert body.get("ok"), body
name = f"{domain}-{action}-{datetime.date.today()}.json"
json.dump(body, open(name, "w"), indent=1)
print(name, body.get("_credits"))
snapshot(sys.argv[1])Node: hromadné Domain Rating pro seznam
bulk_dr přijme až 2 000 domén za 1 kredit na volání, pomocí GET s parametrem domains nebo tělem POST. Čárkový oddělovač níže je příklad; nejprve otestujte se dvěma doménami. Node 18 nebo novější má vestavěný fetch.
const domains = ["example.com", "example.org"];
const url = new URL("https://archilinks.com/api.php");
url.search = new URLSearchParams({
action: "bulk_dr",
domains: domains.join(","),
key: "sk_live_...",
});
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(JSON.stringify(await res.json(), null, 2));Bash a jq: týdenní rozdíl
Uložte snímek s datem, poté porovnejte dva soubory. Plánujte cron týdenně nebo měsíčně; index se obnovuje přibližně měsíčně.
# crontab: 0 6 1 * * /opt/seo/pull.sh old-shop.com
curl -s "https://archilinks.com/api.php?action=refdomains&q=$1&per=1000&key=$KEY" \
| jq -S . > "snap-$1-$(date +%F).json"
# compare two dated files
diff <(jq -S . snap-old-shop.com-2026-09-01.json) <(jq -S . snap-old-shop.com-2026-10-01.json) | head -50Která akce pro který skript
| Skript | Akce | Náklad na spuštění | Výstup |
|---|---|---|---|
| Báze pro migraci | toppages, refdomains | 4 kredity | Dva JSON soubory |
| Čištění outreachu | bulk_dr | 1 kredit na volání, až 2 000 domén | DR na prospecta |
| Překryv s konkurencí | intersect | 2 kredity | Stránky odkazující na 2–10 domén |
| Sledování anchor textů | anchors | 2 kredity | Seznam anchor textů |
| Kontrola portfolia | compare | 1 kredit na volání, až 20 domén | Metriky vedle sebe |

Zvládání okrajových případů
Skripty selhávají na okrajových případech. Počítejte s nimi.
Obalte každé volání retry, které čeká a vzdá se po třech pokusech, kromě 401 a 402, které retry nikdy neopraví. Logujte objekt _credits z každé autentizované odpovědi, aby skok v nákladech ukázal ve vašich logech dříve, než se projeví na zůstatku, a omezte smyčky tvrdým maximálním počtem stránek.
Uchovávejte snímky v git nebo object storage s datem v názvu souboru. Jednoduché, nudné, účinné. Pro migrace spárujte tyto skripty s receptem na mapu přesměrování a kontrolním seznamem migrace. Uživatelé Google Sheets mohou volat stejná URL z Apps Script pomocí UrlFetchApp a tabulka s měsíčním spouštěčem je dokonale dobrým monitorem.
Otázky ke skriptům
Tři otázky se objeví dříve, než většina skriptů půjde do produkce, a každá má krátkou odpověď.
Jak zdarma zkontroluji, kolik zpětných odkazů má můj web?
Volání akce overview nebo stats bez klíče. Oba jsou zdarma a vracejí celkové počty z našeho vlastního link indexu.
Pro seznamy za celkovými počty potřebujete klíč a 2 kredity na volání.
Co se stane, když dojde zůstatek?
API vrátí HTTP 402. Váš skript by měl zastavit a upozornit, ne retry v smyčce. Dobijte z účtu pomocí USDT (TRC-20) a spusťte znovu.
Mohu to volat z prohlížeče?
Ano. CORS je otevřený. Neumisťujte však klíč do veřejného front-end kódu, protože si ho může každý přečíst a utratit váš kredit.

Stránkování bez plýtvání kredity
Stránkování je místo, kde skripty tiše stojí více, než by měli. Každý požadavek na stránku je samostatné volání s vlastním poplatkem, takže smyčka, která požádá o jednu stránku příliš mnoho, platí za nic.
Přečtěte si pole pro stránkování v jedné skutečné odpovědi předtím, než napíšete smyčku. Příklady na tomto webu ukazují tvar, ale názvy a signál pro zastavení pocházejí z živého JSON.
Zastavte, když se vrátí kratší stránka
Stránka s méně řádky, než jste požadovali, je obvykle ta poslední. Nechte smyčku tam zastavit místo toho, abyste požádali o další stránku pro jistotu.
Pokud odpověď obsahuje total nebo next-page pole, použijte to jako signál pro zastavení. Počítejte řádky, které jste uložili, proti tomu, aby se nesrovnalost ukázala v logu.
Omezte každou smyčku
Nastavte tvrdé maximum na stránky ve každé smyčce. Omezení chrání váš zůstatek, pokud se změní název pole a skript bude stále požadovat stejnou stránku.
Vyberte limit z velikosti, kterou očekáváte, a poté ho vědomě zvyšte, když skutečná doména potřebuje více stránek.
Pište každou stránku, jak přichází
Uložte každou stránku na disk, jakmile se vrátí, s číslem stránky v názvu souboru. Skript, který se zastaví na stránce čtyřicet, může pokračovat od posledního uloženého souboru místo toho, aby začínal znovu a platil dvakrát.
Udržujte soubory v jedné složce pro doménu a datum, aby se při opakování nikdy nemíchaly dva tahy.
Spuštění skriptů v rozvrhu
Vhodné bude jakékoliv plánovače. Na tom záleží, že každé spuštění zanechá soubor a že selhání spuštění někoho upozorní.
Výběr hostitele pro úkol
Cron vyhovuje serveru s diskem, který ovládáte. CI job vyhovuje repozitáři, který již uchovává snímky, takže historie žije vedle kódu, který ji čte.
Ať už vyberete cokoliv, udržujte seznam domén v souboru, takže přidání domény je úprava místo změny skriptu.
Upozornění na selhání, ne na každý úspěch
Upozorněte, když skript selže, nebo když zůstatek klesne pod úroveň, kterou jste si vybrali. Zpráva o úspěchu každé ráno naučí lidi ignorovat kanál, který nese skutečný problém.
Logujte objekt _credits z každého spuštění, jak dělá příklad v Pythonu, a jednou měsíčně zkontrolujte trend.
Týdenní rozdíl v pěti krocích
Vyberte akce
Vyberte dvě nebo tři volání, která odpoví na vaši otázku. Každé stojí kredity, takže vedle něj napište cenu.
Uložte surovou odpověď
Uložte JSON přesně tak, jak přišel, s doménou a datem v názvu souboru. Formátování může počkat až na krok rozdílu.
Seřaďte klíče před porovnáním
Použijte jq -S nebo ekvivalent, aby pořadí klíčů neukazovalo změnu. Bash příklad výše to dělá.
Porovnejte seznamy, ne soubory
Spojte dvě odpovědi na URL nebo doménu, poté nahlaste, co bylo přidáno, odstraněno a změněno. Čistý textový diff dlouhého souboru je těžko akční.
Zkontrolujte rozdíl a jednejte
Odeslané domény, které odkazují, pošlete tomu, kdo vlastní outreach, a odstraněné stránky tomu, kdo vlastní přesměrování.
Testování skriptu předtím, než na něj závisí cron job
Skript, který běží bez dozoru, by se měl nejprve prokázat. Použijte jednu malou doménu, přečtěte si celé JSON a až poté rozšiřte seznam.
Rychlá kontrola správnosti je porovnat celkové počty s volným overview voláním pro stejnou doménu. Čísla nemusí přesně odpovídat placenému seznamu, ale měla by souhlasit v měřítku.
Spuštění se dvěma doménami
Dvě domény testují smyčku, názvy souborů a chybové cesty. Jedna doména může projít štěstím, zatímco dvě ukážou, zda se smyčka resetuje mezi doménami.
Použijte jednu doménu, kterou dobře znáte, a jednu, kterou neznáte, abyste mohli posoudit, zda výstup vypadá správně.
Udržujte klíč mimo logy a tikety
Skripty často vytisknou celou adresu požadavku a klíč sedí v té adrese jako parametr. Odstraňte klíč z každé řádky, která opustí server, nebo pošlete ji v Authorization hlavičce, což ji drží mimo adresu.
Pokud se klíč objeví v tiketu nebo veřejném repozitáři, zastavte plánované spuštění, které ho používá, před dalším během.
Udržujte krátkou poznámku o tom, kde klíč žije, které skripty ho čtou a které hosty volají. Tato poznámka je to, co potřebujete, když se někdo zeptá, kdo může utratit zůstatek.
Výběr akce pro každou otázku
Začněte otázkou, ne seznamem endpointů. Migrace potřebuje vědět, které URL nesou odkazy, zatímco outreach seznam potřebuje skóre domén. Jeden host, dvě otázky. Každá stojí jiné množství kreditů.
Napište cenu vedle otázky předtím, než napíšete jakýkoliv kód. Skript, který běží týdně, znásobí malou cenu padesát dvěma, a to násobení je snadné zapomenout, dokud zůstatek neukáže.
Retry, které se zastaví, když by měly
Retry požadavku, který selhal z dočasného důvodu, jako je timeout nebo server error, několikrát s rostoucím pauzou mezi pokusy. Nechte retry 401 nebo 402, protože čekání ani jednu odpověď nezmění.
Logujte každý retry s akcí a doménou, aby vzor selhání ukázal jako vzor spíše než jako ticho.
Nastavte počet retry na jednom místě, takže každé volání ve skriptu následuje stejné pravidlo. Rozptýlené retry smyčky se často neshodují a neshoda je těžko najít v logu.