REST API do odczytu grafu, wyniku i rekomendacji — oraz do uruchamiania skanów. Odpowiedzi w JSON, uwierzytelnianie kluczami API.
Bazowy adres URL
Wszystkie endpointy znajdują się pod prefiksem /v1 i są udostępniane wyłącznie przez HTTPS.
Bazowy adres URL
https://api.graphorank.com
Uwierzytelnianie
Klucz można wygenerować w aplikacji, na stronie API i MCP — klucze mają prefiksgr_, są pokazywane w całości tylko raz, przy tworzeniu, i przechowywane w postaci skrótu. Klucz należy przesyłać w nagłówku X-Api-Key z każdym żądaniem.
Klucze mają zakresy: read (zawsze przyznawany) obejmuje wszystkie endpointy GET, natomiast write jest wymagany do tworzenia witryn, uruchamiania skanów i zarządzania harmonogramami. Sesja samej aplikacji używa zamiast tego tokenu JWT w nagłówku Authorization: Bearer — klucze API służą do dostępu programistycznego.
Shell
# Create a key in the app under API & MCP — keys start with "gr_"
export GRAPHORANK_API_KEY="gr_..."
curl https://api.graphorank.com/v1/sites \
-H "X-Api-Key: $GRAPHORANK_API_KEY"
Endpointy
ENDPOINTOPIS
GET/v1/sitesWyświetla witryny w przestrzeni roboczej.
Witryna to domena główna w przestrzeni roboczej. Dodaj ją, potwierdź własność, a następnie przeskanuj. Własność potwierdza się plikiem well-known lub tagiem meta — dokładny fragment z tokenem znajduje się w Pierwsze kroki.
Pobiera pojedynczą witrynę. Odpowiedź ma ten sam kształt co element listy z GET /v1/sites.
PARAMETRTYPOPIS
site_idpath · uuidwymaganyIdentyfikator witryny.
POST/v1/sites/{site_id}/verify
Uruchamia sprawdzenie własności wybraną metodą. Odpowiedź zawsze zawiera token witryny, więc można wywołać ten endpoint jednokrotnie, aby go pobrać przed opublikowaniem pliku lub tagu meta.
PARAMETRTYPOPIS
site_idpath · uuidwymaganyIdentyfikator witryny.
methodbody · stringwymaganyMetoda weryfikacji: "file" (plik well-known) lub "meta" (tag meta na stronie głównej).
{
"verified": true,
"method": "file",
"token": "9Kd2mQx7Ln4pTv8waZrGQg",
"detail": "token found at /.well-known/graphorank-verify.txt"
}
Skany
Skan uruchamia pełny potok: przeszukiwanie, analizę semantyczną, budowę grafu i ocenę. Jego status przechodzi przez queued → crawling → embedding → scoring → done (lub failed, z kodem błędu). Skany wliczają się w miesięczny limit planu.
POST/v1/sites/{site_id}/scans
Uruchamia skan na żądanie. Wymaga zakresu write. Zwraca 202 ze skanem w kolejce; po wyczerpaniu miesięcznego limitu zwracane jest 402 quota_exceeded.
PARAMETRTYPOPIS
site_idpath · uuidwymaganyIdentyfikator witryny.
render_modebody · stringOpcjonalnie: "http", "js" lub "auto". Pomiń, by użyć domyślnej wartości — auto włącza renderowanie JS tylko wtedy, gdy witryna tego wymaga.
Kompletny graf węzłów i krawędzi ukończonego skanu, w tym samym formacie, którego używa interaktywny widok aplikacji. Duże grafy są udostępniane w stronach kursora po 1000 elementów (najpierw węzły, potem krawędzie): wysyłaj kolejne żądania ze zwróconym next_cursor, aż wróci null. Obiekt meta powtarza się na każdej stronie.
GET/v1/scans/{scan_id}/graph
Węzły zawierają rolę (pillar | cluster | hub | money | orphan | noindex), identyfikatory klastrów strukturalnych i semantycznych, PageRank, stopień wejściowy/wyjściowy, głębokość kliknięć i indeksowalność. Krawędzie to linki wewnętrzne.
GraphRank to wzorzec 0–100 określający, jak widoczna jest witryna dla silników generatywnych. Endpoint zwraca go razem z czterema wynikami obszarowymi pokazywanymi w aplikacji — strukturalnym, tematycznym, GEO i technicznym — oraz obiektem szczegółów, który zasila wyjaśnienia w aplikacji. Metodologia stojąca za liczbą jest zastrzeżona i stosowana identycznie wobec każdej witryny.
GET/v1/scans/{scan_id}/score
GraphRank i cztery wyniki obszarowe dla ukończonego skanu.
Poprawki według priorytetu, wygenerowane na podstawie skanu, każda z poziomem ważności (P0 blokująca, P1 istotna, P2 pożądana), zlokalizowanymi komunikatami i obiektem meta z adresem URL, którego dotyczy, oraz dodatkowym kontekstem.
GET/v1/scans/{scan_id}/recommendations
Wyświetla rekomendacje skanu, od najpoważniejszych.
PARAMETRTYPOPIS
scan_idpath · uuidwymaganyIdentyfikator skanu.
severityquery · stringOpcjonalny filtr: "P0", "P1" lub "P2".
[
{
"id": "b7e3a9c1-5d2f-4e8b-a1c6-3f9d7e2b8a54",
"page_id": "9c2b1e07-4f6a-4d3e-b8a1-7c5e9f2d1b36",
"type": "orphan_page",
"severity": "P0",
"message_it": "Pagina orfana: nessun link interno la raggiunge. Collegala dalla sezione pertinente.",
"message_en": "Orphan page: no internal link reaches it and crawlers struggle to find it. Link it from the relevant section.",
"meta": { "url": "https://rovere-arredamenti.com/blog/cura-del-rovere" }
}
]
Historia i porównania
Śledź, jak wynik zmienia się między skanami, i porównaj dwa z nich, by zobaczyć dokładnie, co się zmieniło — strony dodane i usunięte, strony osierocone, indeksowalność.
GET/v1/sites/{site_id}/history
Szereg czasowy GraphRank dla witryny, jeden punkt na każdy ukończony skan, uporządkowany według znacznika czasu.
PARAMETRTYPOPIS
site_idpath · uuidwymaganyIdentyfikator witryny.
fromquery · date-timeTylko punkty od tego znacznika czasu ISO 8601 (włącznie).
toquery · date-timeTylko punkty do tego znacznika czasu ISO 8601 (włącznie).
Porównuje dwa skany tej samej witryny. Bez parametrów porównuje dwa ostatnie ukończone skany. score_delta i sub_deltas mają wartość null, gdy któryś skan nie ma wyniku.
Jeden cykliczny skan na witrynę, z raportem e-mail po zakończeniu. Dostępne w planach Pro i Agency — w niższych planach te endpointy zwracają 402 quota_exceeded z podpowiedzią o przejściu na wyższy plan.
POST/v1/sites/{site_id}/schedule
Tworzy lub aktualizuje harmonogram witryny (upsert — jeden na witrynę). Wymaga zakresu write.
PARAMETRTYPOPIS
site_idpath · uuidwymaganyIdentyfikator witryny.
freqbody · stringwymagany"weekly" lub "monthly".
daybody · integerwymaganyTygodniowo: 0–6, gdzie poniedziałek = 0. Miesięcznie: 1–28.
timebody · stringwymagany24-godzinny format "HH:MM", UTC.
recipientsbody · string[]wymaganyDo 10 adresów e-mail, które otrzymują raport.
Klucze na poziomie przestrzeni roboczej do dostępu programistycznego, z prefiksem gr_ i przechowywane w postaci skrótu. Klucz w postaci jawnej jest zwracany tylko raz, w odpowiedzi na utworzenie — zapisz go w menedżerze sekretów. Zakresy: read (zawsze dołączany) obejmuje wszystkie endpointy GET; write jest wymagany do wszystkiego, co zmienia stan.
GET/v1/api-keys
Wyświetla klucze przestrzeni roboczej. Sekrety nigdy nie są zwracane po utworzeniu.
Unieważnia klucz. Przestaje działać natychmiast. Zwraca 204 No Content.
PARAMETRTYPOPIS
key_idpath · uuidwymaganyIdentyfikator klucza.
Limity zapytań i błędy
API chronią dwa limity typu token bucket: jeden na adres IP klienta (stosowany przed uwierzytelnieniem) i jeden na przestrzeń roboczą (stosowany po nim). Po osiągnięciu limitu odpowiedzią jest 429 z nagłówkiem Retry-After informującym, ile sekund należy odczekać.
{
"type": "about:blank",
"title": "Quota Exceeded",
"status": 402,
"detail": "monthly scan quota reached (6/6): upgrade your plan or wait for the next period",
"code": "quota_exceeded"
}
STATUSKODKIEDY
401unauthorizedBrak lub nieprawidłowe dane uwierzytelniające (X-Api-Key lub Bearer JWT).
402quota_exceededOsiągnięto limit planu lub funkcja wymaga wyższego planu. Przejdź na wyższy plan lub poczekaj na kolejny okres.
403forbiddenZakresy klucza nie pozwalają na to wywołanie (np. wymagany jest write).
404not_foundZasób nie istnieje w przestrzeni roboczej — nigdy nie widać danych innych klientów.
422validation_errorNieprawidłowa treść lub parametry; odpowiedź wymienia błędne pola.
429rate_limitedZbyt wiele żądań — zastosuj się do nagłówka Retry-After (sekundy).
503service_unavailableZależna usługa jest niedostępna. Spróbuj ponownie później.