GetLinkFastGetLinkFast

Documentație pentru dezvoltatori

API și server MCP GetLinkFast

Caută site-uri, completează coșul și comandă cu credite fără să deschizi panoul: dintr-un script, dintr-un scenariu Make sau n8n ori dintr-un agent AI precum Claude sau Cursor. API-ul și serverul MCP folosesc aceeași cheie și returnează același JSON.

La ce folosește

  • Agenții și echipe SEO: conectează instrumentele interne și panourile de raportare la contul tău. Catalogul, coșul, comenzile și stările se citesc în JSON.
  • Agenți AI: cere-i lui Claude Code sau Cursor „găsește-mi 5 site-uri de finanțe cu DR 40+ și comandă”. Agentul caută, îți arată rezumatul și comandă doar după acordul tău.
  • Make, n8n, Zapier: un modul HTTP și o cheie sunt suficiente.

API-ul vinde articolul invitat (guest_post), inserarea de link (link_insertion) și pachetele SEO/GEO, numai cu credite. Cumpărarea de credite și celelalte oferte rămân în panou.

Creează o cheie

  1. Deschide Panou → Acces API.
  2. Denumește cheia (de exemplu „Agent Claude” sau „Raportare Make”) și alege-i permisiunile. Pe o cheie care poate comanda, poți fixa un plafon pe comandă și un plafon pe 24 de ore.
  3. Copiază cheia. Începe cu glf_live_ și se afișează o singură dată: păstrăm doar o amprentă a ei.
  4. Trimite-o în antetul fiecărei cereri: Authorization: Bearer glf_live_…

Cel mult 10 chei active pe organizație. O cheie revocată nu mai funcționează imediat, la fel ca cheile unui membru care părăsește organizația. Ține cheia în afara depozitelor de cod: cine o deține acționează în numele organizației tale.

Permisiunile unei chei

Fiecare cheie are una sau mai multe permisiuni. O cerere fără permisiunea necesară primește 403 insufficient_scope, iar un agent AI vede doar instrumentele permise.

PermisiuneOferă acces laCine o poate acorda
readCatalog, categorii, cont și sold, istoricul creditelor, comenzi, oferte de preț pentru pachete.Inclusă mereu.
cartAdăugarea, modificarea și eliminarea liniilor din coș.Orice membru al organizației.
purchaseComandarea coșului sau a unui pachet, cu credite. Include coșul.Doar proprietarul organizației.

Pornire rapidă

Toate rutele încep cu https://www.getlinkfast.com/api/v1. Păstrează www: adresa fără www redirecționează, iar un client HTTP nu mai trimite antetul Authorization după o redirecționare.

Sumele sunt în euro fără TVA. Răspunsurile sunt în JSON, câmpurile în snake_case.

1. Citește contul și soldul
curl https://www.getlinkfast.com/api/v1/account \
  -H "Authorization: Bearer glf_live_…"
2. Caută site-uri: DR 40 și peste, în franceză, articol invitat
curl "https://www.getlinkfast.com/api/v1/sites?dr_min=40&language=fr&product=guest_post&sort=dr&dir=desc&page_size=10" \
  -H "Authorization: Bearer glf_live_…"
3. Adaugă un articol invitat în coș
curl -X POST https://www.getlinkfast.com/api/v1/cart/items \
  -H "Authorization: Bearer glf_live_…" \
  -H "Content-Type: application/json" \
  -d '{"site_id":"8a1f0c3e-5b7d-4e2a-9c61-0f3b2d4e6a17","product_type":"guest_post","target_url":"https://www.example.com/invoicing","anchor":"invoicing software","topic":"How to choose invoicing software for a small business"}'

Înlocuiește site_id cu id-ul unui site de la pasul 2. Nu trimite niciodată un preț: serverul îl calculează.

4. Comandă coșul cu credite
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
  -H "Authorization: Bearer glf_live_…" \
  -H "Idempotency-Key: order-2026-10-14-001"

Răspunsul conține id-ul comenzii, suma debitată și soldul rămas. Apoi urmărește progresul cu GET /orders/{id}.

Comandarea cu credite

API-ul comandă numai cu credite și nu declanșează niciodată o plată cu cardul. Creditele se reîncarcă din panou.

O comandă preia liniile guest_post și link_insertion din coș. Celelalte linii, adăugate din panou, rămân în coș și sunt listate în skipped_items.

Niciun plafon implicit: soldul tău este singura limită. Pe o cheie care poate comanda, fixează un plafon pe comandă și un plafon pe 24 de ore glisante. O comandă care le depășește este refuzată (403 spending_limit_exceeded, cu restul disponibil), fără debitare.

Sold insuficient: 402 insufficient_credits, cu suma lipsă și linkul paginii Credite, de transmis unei persoane din echipa ta. Nu se debitează nimic.

Apoi totul decurge ca din panou: email de confirmare și urmărire în ecranul Comenzi, unde comanda poartă numele cheii care a plasat-o.

Antetul Idempotency-Key

  • Obligatoriu pe POST /checkout și POST /packs/orders: între 8 și 128 caractere ASCII imprimabile, fără spații. Fără el: 400 idempotency_key_required.
  • O valoare înseamnă o intenție de cumpărare. Retrimiterea aceleiași valori returnează comanda inițială (200, "replayed": true) fără a doua debitare, chiar dacă între timp coșul s-a schimbat.
  • După un timeout sau o întrerupere a rețelei, reîncearcă cu aceeași valoare: nu vei plăti de două ori.
  • Pentru o cumpărare nouă, generează o valoare nouă, de exemplu un UUID.
  • Atât pe POST /checkout, cât și pe POST /packs/orders, o valoare deja folosită pentru altă cumpărare este refuzată: 409 idempotency_conflict, fără debitare. Pentru un pachet, aceeași valoare trimisă cu alt conținut este și ea refuzată.
  • Pe partea MCP, tokenul de confirmare joacă acest rol: nu ai nimic de generat.

Limite

  • 120 cereri pe minut și pe cheie pentru citire și tot atâtea, separat, pentru coș: una nu o consumă pe cealaltă.
  • 10 apeluri pe minut și pe cheie către rutele sau instrumentele de cumpărare — inclusiv reluările, refuzurile și pasul de rezumat MCP.
  • 300 cereri HTTP pe minut și pe cheie pe serverul MCP. Fiecare instrument apelat se socotește în plus în limita permisiunii sale.
  • Peste acestea: 429 rate_limited. Așteptarea, în secunde, e dată de antetul Retry-After în HTTP și de details.retry_after_seconds în rezultatul unui instrument MCP.
  • Cel mult 100 rezultate pe pagină (page_size).
  • Corpul cererii: cel mult 1 MB.

Coduri de eroare

Orice eroare are aceeași formă. Testează code: este stabil. message este în engleză și se adresează dezvoltatorului; details indică câmpul greșit sau sumele.

Exemplu: sold insuficient
{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this order. Nothing was debited. Ask a human to top up at credits_url, then retry with the same Idempotency-Key.",
    "details": {
      "missing_amount": 42,
      "credits_url": "https://www.getlinkfast.com/dashboard/credits"
    }
  }
}
CodHTTPCe înseamnă
invalid_json400Corpul cererii nu este un JSON lizibil. Verifică sintaxa și antetul Content-Type: application/json.
idempotency_key_required400Antetul Idempotency-Key lipsește sau este greșit pe o rută de cumpărare. Trimite o valoare de 8 până la 128 caractere.
invalid_api_key401Cheie lipsă, greșită, necunoscută sau revocată ori creată de un membru care a părăsit organizația. Verifică antetul Authorization: Bearer glf_live_….
insufficient_credits402Sold insuficient. details.missing_amount dă suma lipsă, details.credits_url pagina de reîncărcare. Nu s-a debitat nimic.
insufficient_scope403Cheia nu are permisiunea cerută de această rută sau de acest instrument. Creează o cheie cu această permisiune.
spending_limit_exceeded403Comanda depășește un plafon al cheii: pe comandă (window: order) sau pe 24 de ore (window: 24h). details.remaining dă restul. Nu s-a debitat nimic.
not_found404Resursă negăsită sau care nu aparține organizației tale.
method_not_allowed405Server MCP: GET și DELETE nu sunt acceptate. Trimite fiecare mesaj JSON-RPC prin POST.
organization_financial_hold409Cumpărările sunt blocate pentru organizația ta. Contactează-ne. Nu s-a debitat nimic.
page_already_sold409O pagină din coș (inserare de link) tocmai a fost vândută. Elimină linia, apoi comandă din nou cu o nouă Idempotency-Key.
cart_already_ordered409O linie din coș a fost deja comandată printr-o altă cumpărare (panou sau altă Idempotency-Key). Recitește coșul înainte de a comanda cu o valoare nouă.
idempotency_conflict409Această Idempotency-Key a fost deja folosită pentru altă cumpărare. Folosește o valoare nouă pentru o cumpărare nouă.
not_ready409Auditul nu este încă gata. Așteptați starea ready cu get_audit, apoi adăugați pagina.
full_pass_running409Raportul complet al auditului este încă în pregătire. Reîncercați peste câteva minute. Nu s-a pornit nimic.
limit_reached409Auditul are deja 8 pagini adăugate de dvs., inclusiv analizele în curs. Nu s-a pornit nimic.
already_present409Această pagină este deja în audit sau analiza ei este în curs. Nu s-a pornit nimic.
already_ordered409Acest link planificat este deja comandat și nu mai poate fi anulat aici.
not_cancellable409Acest link nu poate fi anulat acum. Recitește-l cu get_plan.
team_planned409Acest link a fost programat de echipa noastră, nu prin API: nu poate fi anulat aici. Pentru a-l modifica, proprietarul contului contactează asistența.
payload_too_large413Corpul cererii depășește 1 MB.
invalid_parameter422Parametru de interogare invalid, repetat sau necunoscut. details.fields numește fiecare parametru greșit și motivul.
invalid_arguments422Combinație de argumente nevalidă, de exemplu nici domain, nici audit_id, sau ambele. details.field numește câmpul. Nu s-a făcut nimic.
invalid_domain422Domeniu sau URL ilizibil. Trimite un nume de domeniu, de exemplu example.com.
own_network_domain422Acest domeniu face parte din rețeaua noastră de publicare: nu poate fi auditat. Nu a fost pornit nimic.
invalid_body422Câmp invalid sau necunoscut în corp. details.fields numește fiecare câmp greșit și motivul.
product_not_available_via_api422API-ul vinde articolul invitat și inserarea de link. Celelalte produse se comandă din panou.
image_not_uploaded422Imaginea reprezentativă trebuie să fi fost încărcată pe GetLinkFast din panou.
cart_empty422Nicio linie din coș nu se poate comanda prin API. Nu s-a debitat nimic.
cart_invalid422Unele linii sunt incomplete sau nu mai sunt disponibile. details.items listează fiecare linie și problemele ei. Nu s-a debitat nimic.
invalid_pack_input422Pachetul nu respectă regulile sale (details.reason). Nu s-a debitat nimic.
site_unavailable422Acest site nu există sau nu mai este de vânzare.
target_page_required422O inserare de link necesită page_id: ia-l din lista de pagini a site-ului.
target_page_not_found422Această pagină nu aparține acestui site.
target_page_sold422Această pagină a fost deja vândută.
target_page_withdrawn422Această pagină nu mai este oferită.
target_page_already_in_cart422Această pagină este deja în coșul tău.
product_unavailable422Acest site nu vinde acest produs.
invalid_url422Adresă ilizibilă. Trimiteți o adresă http(s) completă, fără date de autentificare și fără port.
other_site422Această pagină nu este pe domeniul auditat. Trimiteți o pagină de pe același site.
invalid_keyword422Căutarea vizată este prea lungă: cel mult 120 de caractere.
rate_limited429Prea multe cereri pentru această cheie. Așteaptă numărul de secunde indicat de antetul Retry-After în HTTP sau de details.retry_after_seconds în rezultatul unui instrument MCP.
audit_quota_exceeded429Această cheie a pornit deja 10 audituri în ultimele 24 de ore. Nu s-a pornit nimic: reîncearcă mai târziu.
internal_error500Eroare de partea noastră, deja semnalată echipei. Reîncearcă mai târziu: o cumpărare reluată cu aceeași Idempotency-Key nu este niciodată debitată de două ori.
engine_unavailable502Motorul de audit este momentan inaccesibil. Nu s-a pornit nimic: reîncearcă mai târziu.
packs_unavailable503Pachetele SEO/GEO nu sunt încă disponibile.
confirmation_expiredInstrument MCPToken de confirmare expirat sau coș, prețuri ori cheie modificate de la rezumat. Nu s-a debitat nimic: apelează din nou instrumentul fără token pentru a obține un rezumat nou.
purchase_unavailableInstrument MCPCumpărările prin serverul MCP sunt momentan indisponibile. Nu s-a debitat nimic. Reîncearcă mai târziu.
unknown_toolInstrument MCPInstrument necunoscut sau nepermis de permisiunile cheii. tools/list dă instrumentele disponibile.
audit_failedInstrument MCPAcest audit a eșuat, deci nu e posibil niciun plan. Pornește unul nou cu run_audit. Nu s-a făcut nimic.
audit_not_readyInstrument MCPAcest audit nu s-a terminat. Așteaptă starea ready cu get_audit, apoi apelează din nou plan_links. Nu s-a făcut nimic.
budget_too_lowInstrument MCPBugetul lunar este sub minimul de 100 € pe lună. Nu s-a făcut nimic.
start_date_too_farInstrument MCPData de start este prea îndepărtată. Mesajul indică ultima dată permisă. Nu s-a făcut nimic.
too_many_pagesInstrument MCPUn proiect urmărește un număr limitat de pagini. Trimite mai puține pagini noi în target_urls. Nu s-a făcut nimic.
plan_existsInstrument MCPAcest domeniu are deja linkuri planificate, încă necomandate. Planurile nu se îmbină: retrage-le cu cancel_planned_link și reia. Nu s-a făcut nimic.
pending_proposalsInstrument MCPEchipa noastră analizează linkuri propuse pentru acest domeniu, așa că deocamdată nu se poate adăuga niciun plan. details.count indică numărul lor, iar details.retry_after data după care puteți încerca din nou (dacă nu sunt programate până atunci, expiră). Altfel, cereți proprietarului contului să contacteze asistența. Nu s-a făcut nimic.
no_links_foundInstrument MCPNiciun site din catalog nu se potrivește acestor pagini cu acest buget lunar. Încearcă alte pagini sau un buget mai mare. Nu s-a făcut nimic.
plan_in_progressInstrument MCPAcest plan se salvează chiar acum. Apelează din nou plan_links cu același token peste câteva secunde, ca să citești rezultatul.
plan_outcome_unknownInstrument MCPSalvarea a fost întreruptă și rezultatul ei este necunoscut. Nu confirma din nou: citește planul cu get_plan.
plan_conflictInstrument MCPPlanul nu mai este valabil așa cum este: proiectul domeniului s-a schimbat, datele sale nu mai cad în lunile bugetului (care încep la confirmare) sau unul dintre site-urile sale nu mai este disponibil pentru acest domeniu. details.reason spune care. Nu s-a scris nimic: apelați din nou plan_links fără token pentru un rezumat nou.
plan_retryInstrument MCPUn alt apel cu acest token s-a încheiat fără să salveze planul. Apelează din nou plan_links cu același token ca să citești rezultatul.

Server MCP

Serverul MCP îi oferă agentului tău AI aceleași funcții ca API-ul, cu aceeași cheie. Adresa lui: https://www.getlinkfast.com/api/mcp.

Claude Code

O comandă în terminal:

Terminal — Claude Code
claude mcp add --transport http getlinkfast https://www.getlinkfast.com/api/mcp --header "Authorization: Bearer glf_live_…"

Cursor

În ~/.cursor/mcp.json. Evită fișierul .cursor/mcp.json al unui proiect: ajunge adesea în depozit, împreună cu cheia.

~/.cursor/mcp.json
{
  "mcpServers": {
    "getlinkfast": {
      "url": "https://www.getlinkfast.com/api/mcp",
      "headers": {
        "Authorization": "Bearer glf_live_…"
      }
    }
  }
}

Claude Desktop

Claude Desktop nu trimite antete personalizate unui server la distanță, deci nu îți poate transmite cheia. Se va conecta nativ prin conexiunea OAuth, prevăzută într-o versiune viitoare. Astăzi, folosește Claude Code sau Cursor: ele trimit cheia în antetul Authorization.

Instrumentele

Agentul vede doar instrumentele permise de permisiunile cheii: o cheie fără dreptul de a comanda nu are niciun instrument de cumpărare.

read
search_sitesget_sitelist_site_pageslist_categoriesget_accountlist_ordersget_orderget_auditquote_packlist_auditsget_plan
cart
get_cartadd_to_cartupdate_cart_itemremove_cart_itemadd_audit_pagerun_auditcancel_planned_link
purchase
checkoutorder_packplan_links

Cumpărarea în doi pași

  1. Agentul apelează checkout sau order_pack fără confirmation_token: nu se debitează nimic. Primește rezumatul (linii, total, sold după debitare, plafon rămas) și un confirmation_token.
  2. Îți arată acest rezumat. Dacă accepți, apelează din nou instrumentul cu confirmation_token: comanda este plasată și debitată.
  3. Tokenul este valabil 10 minute. Dacă între timp se schimbă coșul, un preț sau cheia, este refuzat (confirmation_expired) și agentul reia pasul 1. Un nou apel cu același token după o întrerupere returnează aceeași comandă, fără a doua debitare.

Client scris de mână

Serverul este fără sesiune: fiecare mesaj JSON-RPC pleacă prin POST, iar răspunsul vine în JSON. Trimite Accept: application/json, text/event-stream și Content-Type: application/json, altfel serverul răspunde 406. GET și DELETE răspund 405.

Listează instrumentele cheii tale
curl -X POST https://www.getlinkfast.com/api/mcp \
  -H "Authorization: Bearer glf_live_…" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Audit și planificare

Un agent poate audita un site și apoi poate eșalona linkuri pe mai multe luni, pornind de la raport. Patru pași, cu instrumentele serverului MCP.

  1. run_audit pornește auditul complet al unui domeniu: verificări tehnice, vizibilitate în ChatGPT și site-uri unde un link ar ajuta. Durează câteva minute. Nu se debitează nimic, iar raportul se deblochează cu cota de audituri a organizației, dacă are una. Limită: 10 audituri pe cheie la fiecare 24 de ore; dacă ceri același domeniu din nou în decurs de o oră, primești auditul existent.
  2. get_audit returnează starea și etapa curentă, apoi raportul în summary când starea devine ready. Apelează-l la fiecare 30–60 de secunde. list_audits listează auditurile organizației, de la cel mai recent.
  3. plan_links construiește un calendar dintr-un audit gata: un buget lunar în euro fără TVA (cel puțin 100 €), de la 2 la 12 luni și, opțional, o dată de start și paginile vizate. Ca la o achiziție, sunt doi pași. Fără token nu se salvează nimic: agentul primește calendarul (linkuri, date de trimitere, total) și un confirmation_token valabil 10 minute. După acordul tău, reapelează instrumentul cu aceleași câmpuri și cu tokenul, iar planul se salvează.
  4. get_plan urmărește fiecare link: pagina țintă, ancora, prețul și starea (programat, comandat, publicat, anulat sau eșuat, cu cauza eșecului, de exemplu insufficient_credits). cancel_planned_link anulează un link planificat prin API sau toate linkurile unui domeniu încă necomandate. Linkurile programate de echipa noastră rămân pe loc: team_planned pentru un link, skipped_team_planned pentru numărul lor.

La salvarea planului nu se debitează nimic. Fiecare link se debitează în credite în ziua trimiterii, la prețul recitit în acea zi, la trecerea zilnică de dimineață (în jur de 06:20 UTC). Dacă soldul lipsește în acea zi, linkul nu se comandă și apare ca eșuat în get_plan. Un link deja comandat nu mai poate fi anulat.

Drepturi: run_audit și cancel_planned_link cer cart, plan_links cere purchase, iar get_audit, list_audits și get_plan cer read. Plafoanele de cheltuieli ale cheii se aplică și linkurilor planificate.

În panou, pagina Delegare arată aceste linkuri în blocul „Linkuri programate”. Proprietarul organizației poate retrage acolo linkurile planificate prin API. Cele planificate de echipa noastră sunt doar pentru citire.

Referință

Fiecare rută cu permisiunea sa și instrumentul MCP corespunzător. Parametri, scheme de răspuns și erori, rută cu rută: descrierea OpenAPI 3.1.

RutăPermisiuneInstrument MCPRol
GET /sitesreadsearch_sitesCăutare în catalog: metrici, preț, categorie, limbă, produs; sortare și paginare.
GET /sites/{id}readget_siteUn site: metrici, prețuri și reguli de publicare.
GET /sites/{id}/pagesreadlist_site_pagesPaginile unui site deschise inserării de link, cu prețul și traficul lor Google.
GET /categoriesreadlist_categoriesCategoriile și id-urile lor, pentru filtrul category.
GET /accountreadget_accountOrganizație, sold de credite, permisiunile și plafoanele cheii, cheltuieli pe 24 de ore.
GET /credits/transactionsreadniciunulIstoricul creditelor.
GET /ordersreadlist_ordersComenzile tale, filtrabile după stare și dată.
GET /orders/{id}readget_orderO comandă și liniile ei, cu starea lor.
GET /cart/itemscartget_cartCoșul: linii, prețuri actualizate și probleme care blochează.
POST /cart/itemscartadd_to_cartAdăugarea unui articol invitat sau a unei inserări de link.
PATCH /cart/items/{id}cartupdate_cart_itemCompletarea sau modificarea briefului unei linii.
DELETE /cart/items/{id}cartremove_cart_itemEliminarea unei linii.
GET /audits/{id}readget_auditCitește un audit: stare, etapa curentă, apoi raportul.
POST /audits/{id}/pagescartadd_audit_pageAdaugă o pagină de împins la un audit gata (cel mult 8). Analiza durează între 1 și 4 minute: urmăriți-o cu get_audit. Nu se debitează nimic.
POST /checkoutpurchasecheckoutComandarea coșului cu credite.
POST /packs/quotereadquote_packEstimarea prețului unui pachet SEO/GEO, fără debitare.
POST /packs/orderspurchaseorder_packComandarea unui pachet SEO/GEO cu credite.
Doar server MCPcartrun_auditPornește auditul complet al unui domeniu. Nu se debitează nimic.
Doar server MCPreadlist_auditsListează auditurile organizației, de la cel mai recent.
Doar server MCPpurchaseplan_linksPlanifică linkuri pe 2–12 luni dintr-un audit, în doi pași. La salvare nu se debitează nimic.
Doar server MCPreadget_planCitește linkurile planificate ale unui domeniu: data de trimitere și starea fiecăruia.
Doar server MCPcartcancel_planned_linkAnulează un link planificat sau toate cele ale unui domeniu care nu au fost încă comandate.

O întrebare despre API? Scrie-ne, o persoană din echipă îți răspunde.