GetLinkFastGetLinkFast

Documentatie voor ontwikkelaars

GetLinkFast API en MCP-server

Zoek sites, vul uw winkelwagen en bestel met tegoed zonder het dashboard te openen: vanuit een script, een Make- of n8n-scenario, of een AI-agent zoals Claude of Cursor. De API en de MCP-server gebruiken dezelfde sleutel en geven dezelfde JSON terug.

Waarvoor het dient

  • Bureaus en SEO-teams: koppel uw interne tools en rapportagedashboards aan uw account. Catalogus, winkelwagen, bestellingen en statussen zijn als JSON leesbaar.
  • AI-agents: vraag Claude Code of Cursor „zoek 5 financiële sites met DR 40+ en bestel ze”. De agent zoekt, toont u het overzicht en bestelt pas na uw akkoord.
  • Make, n8n, Zapier: een HTTP-module en een sleutel zijn genoeg.

De API verkoopt gastartikelen (guest_post), linkinvoegingen (link_insertion) en SEO/GEO-pakketten, uitsluitend met tegoed. Tegoed kopen en de overige aanbiedingen blijven in het dashboard.

Een sleutel aanmaken

  1. Open Dashboard → API-toegang.
  2. Geef de sleutel een naam (bijvoorbeeld „Claude-agent” of „Make-rapportage”) en kies de rechten. Op een sleutel die mag bestellen, kunt u een limiet per bestelling en een limiet over 24 uur instellen.
  3. Kopieer de sleutel. Hij begint met glf_live_ en wordt maar één keer getoond: wij bewaren alleen een hash ervan.
  4. Stuur hem mee in de header van elk verzoek: Authorization: Bearer glf_live_…

Maximaal 10 actieve sleutels per organisatie. Een ingetrokken sleutel werkt meteen niet meer, net als de sleutels van een lid dat de organisatie verlaat. Houd de sleutel buiten uw coderepository's: wie hem heeft, handelt namens uw organisatie.

De rechten van een sleutel

Elke sleutel heeft een of meer rechten. Een verzoek zonder het benodigde recht krijgt 403 insufficient_scope, en een AI-agent ziet alleen de toegestane tools.

RechtGeeft toegang totWie het kan toekennen
readCatalogus, categorieën, account en saldo, tegoedgeschiedenis, bestellingen, offertes voor pakketten.Altijd inbegrepen.
cartRegels in de winkelwagen toevoegen, wijzigen en verwijderen.Elk lid van de organisatie.
purchaseDe winkelwagen of een pakket bestellen, met tegoed. Inclusief de winkelwagen.Alleen de eigenaar van de organisatie.

Snel aan de slag

Alle routes beginnen met https://www.getlinkfast.com/api/v1. Houd de www: het adres zonder www stuurt door, en een HTTP-client stuurt na een doorverwijzing de header Authorization niet meer mee.

Bedragen zijn in euro exclusief btw. Antwoorden zijn JSON, velden in snake_case.

1. Uw account en saldo lezen
curl https://www.getlinkfast.com/api/v1/account \
  -H "Authorization: Bearer glf_live_…"
2. Sites zoeken: DR 40 en hoger, in het Frans, gastartikel
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. Een gastartikel aan de winkelwagen toevoegen
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"}'

Vervang site_id door het id van een site uit stap 2. Stuur nooit een prijs mee: de server berekent die.

4. De winkelwagen bestellen met tegoed
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
  -H "Authorization: Bearer glf_live_…" \
  -H "Idempotency-Key: order-2026-10-14-001"

Het antwoord bevat het id van de bestelling, het afgeschreven bedrag en uw resterende saldo. Volg daarna de voortgang met GET /orders/{id}.

Bestellen met tegoed

De API bestelt uitsluitend met tegoed en start nooit een kaartbetaling. Tegoed wordt opgewaardeerd in het dashboard.

Een bestelling neemt de regels guest_post en link_insertion uit de winkelwagen. Andere regels, toegevoegd via het dashboard, blijven in de winkelwagen en staan in skipped_items.

Standaard geen limiet: uw saldo is de enige grens. Stel op een sleutel die mag bestellen een limiet per bestelling en een limiet over voortschrijdende 24 uur in. Een bestelling die ze overschrijdt, wordt geweigerd (403 spending_limit_exceeded, met het resterende bedrag), zonder afschrijving.

Onvoldoende saldo: 402 insufficient_credits, met het ontbrekende bedrag en de link naar de pagina Tegoed, om door te geven aan iemand in uw team. Er wordt niets afgeschreven.

Daarna gaat alles zoals vanuit het dashboard: bevestigingsmail en opvolging in het scherm Bestellingen, waar de bestelling de naam draagt van de sleutel die haar plaatste.

De header Idempotency-Key

  • Verplicht op POST /checkout en POST /packs/orders: 8 tot 128 afdrukbare ASCII-tekens, zonder spaties. Zonder: 400 idempotency_key_required.
  • Eén waarde staat voor één aankoopintentie. Dezelfde waarde opnieuw sturen geeft de oorspronkelijke bestelling terug (200, "replayed": true) zonder tweede afschrijving, ook als de winkelwagen sindsdien is gewijzigd.
  • Na een time-out of een netwerkonderbreking probeert u het opnieuw met dezelfde waarde: u betaalt niet twee keer.
  • Genereer voor een nieuwe aankoop een nieuwe waarde, bijvoorbeeld een UUID.
  • Op POST /checkout en op POST /packs/orders wordt een waarde die al voor een andere aankoop is gebruikt geweigerd: 409 idempotency_conflict, zonder afschrijving. Voor een pakket geldt dat ook voor dezelfde waarde met andere inhoud.
  • Aan de MCP-kant vervult het bevestigingstoken deze rol: u hoeft niets te genereren.

Limieten

  • 120 verzoeken per minuut per sleutel om te lezen, en evenveel, apart, voor de winkelwagen: het een gaat niet af van het ander.
  • 10 aanroepen per minuut per sleutel naar de aankooproutes of -tools — herhalingen, weigeringen en de MCP-samenvattingsstap inbegrepen.
  • 300 HTTP-verzoeken per minuut per sleutel op de MCP-server. Elke aangeroepen tool telt daarnaast mee in de limiet van zijn recht.
  • Daarboven: 429 rate_limited. De wachttijd in seconden staat via HTTP in de header Retry-After, en in een MCP-toolresultaat in details.retry_after_seconds.
  • Maximaal 100 resultaten per pagina (page_size).
  • Body van het verzoek: maximaal 1 MB.

Foutcodes

Elke fout heeft dezelfde vorm. Test op code: die is stabiel. message is in het Engels en bedoeld voor de ontwikkelaar; details noemt het foute veld of de bedragen.

Voorbeeld: onvoldoende saldo
{
  "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"
    }
  }
}
CodeHTTPWat het betekent
invalid_json400De body van het verzoek is geen leesbare JSON. Controleer de syntaxis en de header Content-Type: application/json.
idempotency_key_required400Header Idempotency-Key ontbreekt of is ongeldig op een aankooproute. Stuur een waarde van 8 tot 128 tekens.
invalid_api_key401Sleutel ontbreekt, is ongeldig, onbekend of ingetrokken, of is aangemaakt door een lid dat de organisatie heeft verlaten. Controleer de header Authorization: Bearer glf_live_….
insufficient_credits402Onvoldoende saldo. details.missing_amount geeft het ontbrekende bedrag, details.credits_url de pagina om op te waarderen. Er is niets afgeschreven.
insufficient_scope403De sleutel heeft niet het recht dat deze route of tool vraagt. Maak een sleutel aan met dat recht.
spending_limit_exceeded403De bestelling overschrijdt een limiet van de sleutel: per bestelling (window: order) of over 24 uur (window: 24h). details.remaining geeft wat er over is. Er is niets afgeschreven.
not_found404Resource niet gevonden, of niet van uw organisatie.
method_not_allowed405MCP-server: GET en DELETE worden niet geaccepteerd. Stuur elk JSON-RPC-bericht als POST.
organization_financial_hold409Aankopen zijn geblokkeerd voor uw organisatie. Neem contact met ons op. Er is niets afgeschreven.
page_already_sold409Een pagina in de winkelwagen (linkinvoeging) is net verkocht. Verwijder de regel en bestel opnieuw met een nieuwe Idempotency-Key.
cart_already_ordered409Een regel in de winkelwagen is al besteld door een andere aankoop (dashboard of andere Idempotency-Key). Lees de winkelwagen opnieuw voordat u met een nieuwe waarde bestelt.
idempotency_conflict409Deze Idempotency-Key is al gebruikt voor een andere aankoop. Gebruik een nieuwe waarde voor een nieuwe aankoop.
not_ready409De audit is nog niet klaar. Wacht met get_audit op de status ready en voeg dan de pagina toe.
full_pass_running409Het volledige auditrapport wordt nog voorbereid. Probeer het over enkele minuten opnieuw. Er is niets gestart.
limit_reached409De audit heeft al 8 door jou toegevoegde pagina's, lopende analyses meegeteld. Er is niets gestart.
already_present409Deze pagina staat al in de audit of haar analyse loopt. Er is niets gestart.
already_ordered409Deze geplande link is al besteld en kan hier niet meer worden geannuleerd.
not_cancellable409Deze link kan nu niet worden geannuleerd. Lees hem opnieuw met get_plan.
team_planned409Deze link is door ons team ingepland, niet via de API: hij kan hier niet worden geannuleerd. Om hem te wijzigen, neemt de accounteigenaar contact op met support.
payload_too_large413Body van het verzoek groter dan 1 MB.
invalid_parameter422Ongeldige, herhaalde of onbekende queryparameter. details.fields noemt elke foute parameter en de reden.
invalid_arguments422Ongeldige combinatie van argumenten, bijvoorbeeld noch domain noch audit_id, of beide. details.field noemt het veld. Er is niets uitgevoerd.
invalid_domain422Domein of URL onleesbaar. Stuur een domeinnaam, bijvoorbeeld example.com.
own_network_domain422Dit domein maakt deel uit van ons publicatienetwerk: het kan niet worden geaudit. Er is niets gestart.
invalid_body422Ongeldig of onbekend veld in de body. details.fields noemt elk fout veld en de reden.
product_not_available_via_api422De API verkoopt gastartikelen en linkinvoegingen. Andere producten bestelt u via het dashboard.
image_not_uploaded422De uitgelichte afbeelding moet via het dashboard naar GetLinkFast zijn geüpload.
cart_empty422Geen enkele regel in de winkelwagen kan via de API worden besteld. Er is niets afgeschreven.
cart_invalid422Sommige regels zijn onvolledig of niet meer beschikbaar. details.items toont elke regel en de problemen ervan. Er is niets afgeschreven.
invalid_pack_input422Het pakket voldoet niet aan de regels (details.reason). Er is niets afgeschreven.
site_unavailable422Deze site bestaat niet of is niet meer te koop.
target_page_required422Een linkinvoeging vereist page_id: haal die uit de lijst met pagina's van de site.
target_page_not_found422Deze pagina hoort niet bij deze site.
target_page_sold422Deze pagina is al verkocht.
target_page_withdrawn422Deze pagina wordt niet meer aangeboden.
target_page_already_in_cart422Deze pagina staat al in uw winkelwagen.
product_unavailable422Deze site verkoopt dit product niet.
invalid_url422Onleesbaar adres. Stuur een volledig http(s)-adres, zonder inloggegevens of poort.
other_site422Deze pagina staat niet op het geauditeerde domein. Stuur een pagina van dezelfde site.
invalid_keyword422Beoogde zoekopdracht te lang: maximaal 120 tekens.
rate_limited429Te veel verzoeken voor deze sleutel. Wacht het aantal seconden dat via HTTP de header Retry-After aangeeft, of details.retry_after_seconds in een MCP-toolresultaat.
audit_quota_exceeded429Deze sleutel heeft de afgelopen 24 uur al 10 audits gestart. Er is niets gestart: probeer het later opnieuw.
internal_error500Fout aan onze kant, al gemeld aan het team. Probeer het later opnieuw: een aankoop die opnieuw wordt verstuurd met dezelfde Idempotency-Key wordt nooit twee keer afgeschreven.
engine_unavailable502De auditmotor is tijdelijk onbereikbaar. Er is niets gestart: probeer het later opnieuw.
packs_unavailable503SEO/GEO-pakketten zijn nog niet beschikbaar.
confirmation_expiredMCP-toolBevestigingstoken verlopen, of winkelwagen, prijzen of sleutel gewijzigd sinds het overzicht. Er is niets afgeschreven: roep de tool opnieuw aan zonder token voor een nieuw overzicht.
purchase_unavailableMCP-toolAankopen via de MCP-server zijn tijdelijk niet beschikbaar. Er is niets afgeschreven. Probeer het later opnieuw.
unknown_toolMCP-toolOnbekende tool, of niet toegestaan door de rechten van de sleutel. tools/list geeft de beschikbare tools.
audit_failedMCP-toolDeze audit is mislukt, dus een plan is niet mogelijk. Start een nieuwe met run_audit. Er is niets uitgevoerd.
audit_not_readyMCP-toolDeze audit is nog niet klaar. Wacht met get_audit op de status ready en roep daarna plan_links opnieuw aan. Er is niets uitgevoerd.
budget_too_lowMCP-toolHet maandbudget ligt onder het minimum van 100 € per maand. Er is niets uitgevoerd.
start_date_too_farMCP-toolDe startdatum ligt te ver weg. De melding noemt de laatste toegestane datum. Er is niets uitgevoerd.
too_many_pagesMCP-toolEen project volgt een beperkt aantal pagina's. Stuur minder nieuwe pagina's in target_urls. Er is niets uitgevoerd.
plan_existsMCP-toolDit domein heeft al geplande links die nog niet zijn besteld. Plannen worden nooit samengevoegd: verwijder ze met cancel_planned_link en begin opnieuw. Er is niets uitgevoerd.
pending_proposalsMCP-toolOns team beoordeelt voorgestelde links voor dit domein, dus er kan voorlopig geen plan worden toegevoegd. details.count geeft het aantal en details.retry_after de datum waarna u het opnieuw kunt proberen (zonder planning tegen die tijd verlopen ze). Vraag anders de accounteigenaar contact op te nemen met support. Er is niets gedaan.
no_links_foundMCP-toolGeen enkele site in de catalogus past bij deze pagina's met dit maandbudget. Probeer andere pagina's of een hoger budget. Er is niets uitgevoerd.
plan_in_progressMCP-toolDit plan wordt nu opgeslagen. Roep plan_links over een paar seconden opnieuw aan met hetzelfde token om het resultaat te lezen.
plan_outcome_unknownMCP-toolHet opslaan is onderbroken en de uitkomst is onbekend. Bevestig niet opnieuw: lees het plan met get_plan.
plan_conflictMCP-toolHet plan klopt zo niet meer: het project van het domein is gewijzigd, de datums vallen niet meer binnen de budgetmaanden (die bij de bevestiging beginnen), of een van de sites is niet meer beschikbaar voor dit domein. details.reason zegt welke. Er is niets geschreven: roep plan_links opnieuw aan zonder token voor een nieuw overzicht.
plan_retryMCP-toolEen andere aanroep met dit token is geëindigd zonder het plan op te slaan. Roep plan_links opnieuw aan met hetzelfde token om het resultaat te lezen.

MCP-server

De MCP-server geeft uw AI-agent dezelfde functies als de API, met dezelfde sleutel. Het adres: https://www.getlinkfast.com/api/mcp.

Claude Code

Eén opdracht in uw terminal:

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

Cursor

In ~/.cursor/mcp.json. Vermijd het bestand .cursor/mcp.json van een project: dat belandt vaak in de repository, samen met de sleutel.

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

Claude Desktop

Claude Desktop stuurt geen aangepaste headers naar een externe server en kan uw sleutel dus niet doorgeven. Het koppelt straks rechtstreeks via de OAuth-verbinding, gepland voor een volgende versie. Gebruik vandaag Claude Code of Cursor: die sturen de sleutel in de header Authorization.

De tools

De agent ziet alleen de tools die de rechten van de sleutel toestaan: een sleutel zonder bestelrecht heeft geen aankooptool.

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

Aankoop in twee stappen

  1. De agent roept checkout of order_pack aan zonder confirmation_token: er wordt niets afgeschreven. Hij krijgt het overzicht (regels, totaal, saldo na afschrijving, resterende limiet) en een confirmation_token.
  2. Hij toont u dat overzicht. Gaat u akkoord, dan roept hij de tool opnieuw aan met het confirmation_token: de bestelling wordt geplaatst en afgeschreven.
  3. Het token is 10 minuten geldig. Als intussen de winkelwagen, een prijs of de sleutel verandert, wordt het geweigerd (confirmation_expired) en herhaalt de agent stap 1. Opnieuw aanroepen met hetzelfde token na een onderbreking geeft dezelfde bestelling terug, zonder tweede afschrijving.

Zelfgeschreven client

De server is sessieloos: elk JSON-RPC-bericht gaat als POST en het antwoord komt als JSON. Stuur Accept: application/json, text/event-stream en Content-Type: application/json mee, anders antwoordt de server 406. GET en DELETE geven 405.

De tools van uw sleutel opvragen
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"}'

Auditeren en plannen

Een agent kan een site auditeren en op basis van het rapport links over meerdere maanden spreiden. Vier stappen, met de tools van de MCP-server.

  1. run_audit start de volledige audit van een domein: technische controles, zichtbaarheid in ChatGPT en sites waar een link zou helpen. Reken op enkele minuten. Er wordt niets afgeschreven, en het rapport wordt ontgrendeld met het auditkrediet van de organisatie als ze dat heeft. Limiet: 10 audits per sleutel per 24 uur; vraagt u hetzelfde domein binnen een uur opnieuw aan, dan krijgt u de bestaande audit terug.
  2. get_audit geeft de status en de huidige stap, daarna het rapport in summary zodra de status ready is. Roep het elke 30 tot 60 seconden aan. list_audits toont de audits van de organisatie, de nieuwste eerst.
  3. plan_links maakt uit een klare audit een kalender: een maandbudget in euro excl. btw (minstens 100 €), 2 tot 12 maanden en optioneel een startdatum en de doelpagina's. Net als bij een aankoop zijn er twee stappen. Zonder token wordt niets opgeslagen: de agent krijgt de kalender (links, verzenddata, totaal) en een confirmation_token dat 10 minuten geldig is. Na uw akkoord roept hij de tool opnieuw aan met dezelfde velden en het token, en wordt het plan opgeslagen.
  4. get_plan volgt elke link: doelpagina, ankertekst, prijs en status (ingepland, besteld, gepubliceerd, geannuleerd of mislukt, met de oorzaak van een mislukking, zoals insufficient_credits). cancel_planned_link annuleert een via de API geplande link, of alle nog niet bestelde links van een domein. Links die ons team heeft ingepland blijven staan: team_planned voor één link, skipped_team_planned voor hun aantal.

Bij het opslaan van het plan wordt niets afgeschreven. Elke link wordt op de dag van verzending in credits afgeschreven, tegen de prijs die die dag opnieuw is opgehaald, tijdens de dagelijkse ochtendronde (rond 06:20 UTC). Is het saldo die dag te laag, dan wordt de link niet besteld en staat hij in get_plan als mislukt. Een link die al besteld is, kan niet meer worden geannuleerd.

Rechten: run_audit en cancel_planned_link vragen cart, plan_links vraagt purchase, en get_audit, list_audits en get_plan vragen read. De bestedingslimieten van de sleutel gelden ook voor geplande links.

In het dashboard toont de pagina Delegatie deze links in het blok ‘Geplande links’. De eigenaar van de organisatie kan daar de via de API geplande links verwijderen. Links die ons team heeft gepland, zijn alleen-lezen.

Referentie

Elke route met het bijbehorende recht en de bijbehorende MCP-tool. Parameters, antwoordschema's en fouten per route: de OpenAPI 3.1-beschrijving.

RouteRechtMCP-toolFunctie
GET /sitesreadsearch_sitesZoeken in de catalogus: metrics, prijs, categorie, taal, product; sortering en paginering.
GET /sites/{id}readget_siteEén site: metrics, prijzen en publicatieregels.
GET /sites/{id}/pagesreadlist_site_pagesDe pagina's van een site die openstaan voor linkinvoeging, met prijs en Google-verkeer.
GET /categoriesreadlist_categoriesDe categorieën en hun id's, voor het filter category.
GET /accountreadget_accountOrganisatie, tegoedsaldo, rechten en limieten van de sleutel, uitgaven over 24 uur.
GET /credits/transactionsreadgeenTegoedgeschiedenis.
GET /ordersreadlist_ordersUw bestellingen, te filteren op status en datum.
GET /orders/{id}readget_orderEén bestelling en haar regels, met hun status.
GET /cart/itemscartget_cartDe winkelwagen: regels, actuele prijzen en blokkerende problemen.
POST /cart/itemscartadd_to_cartEen gastartikel of een linkinvoeging toevoegen.
PATCH /cart/items/{id}cartupdate_cart_itemDe briefing van een regel aanvullen of wijzigen.
DELETE /cart/items/{id}cartremove_cart_itemEen regel verwijderen.
GET /audits/{id}readget_auditEen audit lezen: status, huidige stap, daarna het rapport.
POST /audits/{id}/pagescartadd_audit_pageVoegt een te versterken pagina toe aan een klare audit (maximaal 8). De analyse duurt 1 tot 4 minuten: volg haar met get_audit. Er wordt niets afgeschreven.
POST /checkoutpurchasecheckoutDe winkelwagen bestellen met tegoed.
POST /packs/quotereadquote_packEen SEO/GEO-pakket laten berekenen, zonder afschrijving.
POST /packs/orderspurchaseorder_packEen SEO/GEO-pakket bestellen met tegoed.
Alleen MCP-servercartrun_auditDe volledige audit van een domein starten. Er wordt niets afgeschreven.
Alleen MCP-serverreadlist_auditsDe audits van de organisatie tonen, de nieuwste eerst.
Alleen MCP-serverpurchaseplan_linksLinks over 2 tot 12 maanden plannen op basis van een audit, in twee stappen. Bij het opslaan wordt niets afgeschreven.
Alleen MCP-serverreadget_planDe geplande links van een domein lezen: verzenddatum en status van elke link.
Alleen MCP-servercartcancel_planned_linkEén geplande link annuleren, of alle nog niet bestelde links van een domein.

Een vraag over de API? Schrijf ons, iemand van het team antwoordt u.