Utvecklardokumentation
GetLinkFast API och MCP-server
Sök sajter, fyll din varukorg och beställ med saldo utan att öppna kontrollpanelen: från ett skript, ett Make- eller n8n-scenario eller en AI-agent som Claude eller Cursor. API:t och MCP-servern använder samma nyckel och returnerar samma JSON.
Vad det är till för
- Byråer och SEO-team: koppla era interna verktyg och uppföljningspaneler till ditt konto. Katalog, varukorg, beställningar och statusar läses som JSON.
- AI-agenter: be Claude Code eller Cursor ”hitta 5 finanssajter med DR 40+ och beställ”. Agenten söker, visar dig sammanfattningen och beställer först när du godkänt.
- Make, n8n, Zapier: en HTTP-modul och en nyckel räcker.
API:t säljer gästartiklar (guest_post), länkinfogningar (link_insertion) och SEO/GEO-paket, endast mot saldo. Köp av saldo och övriga erbjudanden finns kvar i kontrollpanelen.
Skapa en nyckel
- Öppna Kontrollpanel → API-åtkomst.
- Namnge nyckeln (till exempel ”Claude-agent” eller ”Make-rapportering”) och välj dess behörigheter. På en nyckel som får beställa kan du sätta ett tak per beställning och ett tak över 24 timmar.
- Kopiera nyckeln. Den börjar med
glf_live_och visas bara en gång: vi sparar bara ett avtryck av den. - Skicka den i huvudet på varje förfrågan:
Authorization: Bearer glf_live_…
Högst 10 aktiva nycklar per organisation. En återkallad nyckel slutar fungera direkt, liksom nycklarna för en medlem som lämnar organisationen. Håll nyckeln utanför dina kodförråd: den som har den agerar i din organisations namn.
En nyckels behörigheter
Varje nyckel har en eller flera behörigheter. En förfrågan utan den behörighet som krävs får 403 insufficient_scope, och en AI-agent ser bara de tillåtna verktygen.
| Behörighet | Ger åtkomst till | Vem kan ge den |
|---|---|---|
read | Katalog, kategorier, konto och saldo, saldohistorik, beställningar, offerter för paket. | Alltid inkluderad. |
cart | Lägga till, ändra och ta bort rader i varukorgen. | Alla medlemmar i organisationen. |
purchase | Beställa varukorgen eller ett paket, mot saldo. Inkluderar varukorgen. | Endast organisationens ägare. |
Snabbstart
Alla rutter börjar med https://www.getlinkfast.com/api/v1. Behåll www: adressen utan www omdirigerar, och en HTTP-klient skickar inte längre huvudet Authorization efter en omdirigering.
Beloppen är i euro exklusive moms. Svaren är JSON, med fält i snake_case.
curl https://www.getlinkfast.com/api/v1/account \
-H "Authorization: Bearer glf_live_…"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_…"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"}'Ersätt site_id med id:t för en sajt från steg 2. Skicka aldrig ett pris: servern räknar ut det.
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
-H "Authorization: Bearer glf_live_…" \
-H "Idempotency-Key: order-2026-10-14-001"Svaret ger beställningens id, det dragna beloppet och ditt återstående saldo. Följ sedan förloppet med GET /orders/{id}.
Beställa mot saldo
API:t beställer endast mot saldo och startar aldrig en kortbetalning. Saldot fylls på i kontrollpanelen.
En beställning tar raderna guest_post och link_insertion i varukorgen. Övriga rader, tillagda från kontrollpanelen, ligger kvar i varukorgen och listas i skipped_items.
Inget tak som standard: ditt saldo är den enda gränsen. På en nyckel som får beställa sätter du ett tak per beställning och ett tak över rullande 24 timmar. En beställning som överskrider dem nekas (403 spending_limit_exceeded, med vad som återstår), utan dragning.
Otillräckligt saldo: 402 insufficient_credits, med det saknade beloppet och länken till sidan Saldo, att skicka vidare till någon i ditt team. Inget dras.
Därefter fungerar allt som från kontrollpanelen: bekräftelsemejl och uppföljning på skärmen Beställningar, där beställningen bär namnet på nyckeln som lade den.
Huvudet Idempotency-Key
- Obligatoriskt på
POST /checkoutochPOST /packs/orders: 8 till 128 utskrivbara ASCII-tecken, utan mellanslag. Utan det:400 idempotency_key_required. - Ett värde motsvarar en köpavsikt. Skickas samma värde igen returneras den ursprungliga beställningen (
200,"replayed": true) utan en andra dragning, även om varukorgen har ändrats sedan dess. - Efter en tidsgräns eller ett nätverksavbrott försöker du igen med samma värde: du betalar inte två gånger.
- För ett nytt köp genererar du ett nytt värde, till exempel ett UUID.
- På
POST /checkoutliksom påPOST /packs/ordersnekas ett värde som redan använts för ett annat köp:409 idempotency_conflict, utan dragning. För ett paket nekas även samma värde skickat med annat innehåll. - På MCP-sidan fyller bekräftelsetoken den rollen: du behöver inte generera något.
Gränser
- 120 förfrågningar per minut och nyckel för läsning, och lika många, separat, för varukorgen: det ena tär inte på det andra.
- 10 anrop per minut och nyckel till köprutterna eller köpverktygen — omförsök, avslag och MCP:s sammanfattningssteg inräknade.
- 300 HTTP-förfrågningar per minut och nyckel på MCP-servern. Varje anropat verktyg räknas dessutom mot gränsen för sin behörighet.
- Därutöver:
429 rate_limited. Väntetiden i sekunder anges av huvudetRetry-Afteröver HTTP, och avdetails.retry_after_secondsi ett MCP-verktygsresultat. - Högst 100 resultat per sida (
page_size). - Förfrågans brödtext: högst 1 MB.
Felkoder
Alla fel har samma form. Testa code: den är stabil. message är på engelska och riktar sig till utvecklaren; details anger det felaktiga fältet eller beloppen.
{
"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"
}
}
}| Kod | HTTP | Vad det betyder |
|---|---|---|
invalid_json | 400 | Förfrågans brödtext är inte läsbar JSON. Kontrollera syntaxen och huvudet Content-Type: application/json. |
idempotency_key_required | 400 | Huvudet Idempotency-Key saknas eller är felaktigt på en köprutt. Skicka ett värde på 8 till 128 tecken. |
invalid_api_key | 401 | Nyckeln saknas, är felaktig, okänd eller återkallad, eller skapades av en medlem som lämnat organisationen. Kontrollera huvudet Authorization: Bearer glf_live_…. |
insufficient_credits | 402 | Otillräckligt saldo. details.missing_amount anger det saknade beloppet, details.credits_url sidan för påfyllning. Inget har dragits. |
insufficient_scope | 403 | Nyckeln saknar den behörighet som rutten eller verktyget kräver. Skapa en nyckel med den behörigheten. |
spending_limit_exceeded | 403 | Beställningen överskrider ett tak på nyckeln: per beställning (window: order) eller över 24 timmar (window: 24h). details.remaining anger vad som återstår. Inget har dragits. |
not_found | 404 | Resursen hittades inte eller tillhör inte din organisation. |
method_not_allowed | 405 | MCP-server: GET och DELETE accepteras inte. Skicka varje JSON-RPC-meddelande som POST. |
organization_financial_hold | 409 | Köp är spärrade för din organisation. Kontakta oss. Inget har dragits. |
page_already_sold | 409 | En sida i varukorgen (länkinfogning) har just sålts. Ta bort raden och beställ igen med en ny Idempotency-Key. |
cart_already_ordered | 409 | En rad i varukorgen har redan beställts av ett annat köp (kontrollpanelen eller en annan Idempotency-Key). Läs varukorgen igen innan du beställer med ett nytt värde. |
idempotency_conflict | 409 | Den här Idempotency-Key har redan använts för ett annat köp. Använd ett nytt värde för ett nytt köp. |
not_ready | 409 | Granskningen är inte klar än. Vänta på statusen ready med get_audit och lägg sedan till sidan. |
full_pass_running | 409 | Granskningens fullständiga rapport förbereds fortfarande. Försök igen om några minuter. Inget har startats. |
limit_reached | 409 | Granskningen har redan 8 sidor som du lagt till, pågående analyser inräknade. Inget har startats. |
already_present | 409 | Den här sidan finns redan i granskningen eller så pågår dess analys. Inget har startats. |
already_ordered | 409 | Den här planerade länken är redan beställd och kan inte längre avbrytas här. |
not_cancellable | 409 | Den här länken kan inte avbrytas just nu. Läs den igen med get_plan. |
team_planned | 409 | Den här länken schemalades av vårt team, inte via API:t: den kan inte avbokas här. För att ändra den kontaktar kontoägaren supporten. |
payload_too_large | 413 | Förfrågans brödtext är större än 1 MB. |
invalid_parameter | 422 | Ogiltig, upprepad eller okänd frågeparameter. details.fields anger varje felaktig parameter och orsaken. |
invalid_arguments | 422 | Ogiltig kombination av argument, till exempel varken domain eller audit_id, eller båda. details.field anger fältet. Inget har gjorts. |
invalid_domain | 422 | Domänen eller URL:en går inte att läsa. Skicka ett domännamn, till exempel example.com. |
own_network_domain | 422 | Den här domänen ingår i vårt publiceringsnätverk: den kan inte granskas. Inget har startats. |
invalid_body | 422 | Ogiltigt eller okänt fält i brödtexten. details.fields anger varje felaktigt fält och orsaken. |
product_not_available_via_api | 422 | API:t säljer gästartiklar och länkinfogningar. Övriga produkter beställs från kontrollpanelen. |
image_not_uploaded | 422 | Den utvalda bilden måste ha laddats upp till GetLinkFast från kontrollpanelen. |
cart_empty | 422 | Ingen rad i varukorgen kan beställas via API:t. Inget har dragits. |
cart_invalid | 422 | Vissa rader är ofullständiga eller inte längre tillgängliga. details.items listar varje rad och dess problem. Inget har dragits. |
invalid_pack_input | 422 | Paketet följer inte sina regler (details.reason). Inget har dragits. |
site_unavailable | 422 | Den här sajten finns inte eller är inte längre till salu. |
target_page_required | 422 | En länkinfogning kräver page_id: hämta det från sajtens lista över sidor. |
target_page_not_found | 422 | Den här sidan hör inte till den här sajten. |
target_page_sold | 422 | Den här sidan har redan sålts. |
target_page_withdrawn | 422 | Den här sidan erbjuds inte längre. |
target_page_already_in_cart | 422 | Den här sidan finns redan i din varukorg. |
product_unavailable | 422 | Den här sajten säljer inte den här produkten. |
invalid_url | 422 | Adressen går inte att läsa. Skicka en fullständig http(s)-adress utan inloggningsuppgifter och port. |
other_site | 422 | Den här sidan finns inte på den granskade domänen. Skicka en sida från samma webbplats. |
invalid_keyword | 422 | Önskad sökning är för lång: högst 120 tecken. |
rate_limited | 429 | För många förfrågningar för den här nyckeln. Vänta det antal sekunder som huvudet Retry-After anger över HTTP, eller details.retry_after_seconds i ett MCP-verktygsresultat. |
audit_quota_exceeded | 429 | Den här nyckeln har redan startat 10 granskningar de senaste 24 timmarna. Inget har startats: försök igen senare. |
internal_error | 500 | Ett fel hos oss, redan rapporterat till teamet. Försök igen senare: ett köp som görs om med samma Idempotency-Key dras aldrig två gånger. |
engine_unavailable | 502 | Granskningsmotorn går tillfälligt inte att nå. Inget har startats: försök igen senare. |
packs_unavailable | 503 | SEO/GEO-paketen är inte tillgängliga än. |
confirmation_expired | MCP-verktyg | Bekräftelsetoken har gått ut, eller så har varukorg, priser eller nyckel ändrats sedan sammanfattningen. Inget har dragits: anropa verktyget igen utan token för att få en ny sammanfattning. |
purchase_unavailable | MCP-verktyg | Köp via MCP-servern är tillfälligt otillgängliga. Inget har dragits. Försök igen senare. |
unknown_tool | MCP-verktyg | Okänt verktyg, eller inte tillåtet av nyckelns behörigheter. tools/list anger de tillgängliga verktygen. |
audit_failed | MCP-verktyg | Den här granskningen misslyckades, så ingen plan är möjlig. Starta en ny med run_audit. Inget har gjorts. |
audit_not_ready | MCP-verktyg | Den här granskningen är inte klar. Vänta på statusen ready med get_audit och anropa sedan plan_links igen. Inget har gjorts. |
budget_too_low | MCP-verktyg | Månadsbudgeten ligger under minimum på 100 € per månad. Inget har gjorts. |
start_date_too_far | MCP-verktyg | Startdatumet ligger för långt fram. Meddelandet anger det senaste tillåtna datumet. Inget har gjorts. |
too_many_pages | MCP-verktyg | Ett projekt följer ett begränsat antal sidor. Skicka färre nya sidor i target_urls. Inget har gjorts. |
plan_exists | MCP-verktyg | Den här domänen har redan planerade länkar som ännu inte är beställda. Planer slås aldrig ihop: ta bort dem med cancel_planned_link och börja om. Inget har gjorts. |
pending_proposals | MCP-verktyg | Vårt team granskar föreslagna länkar för den här domänen, så ingen plan kan läggas till just nu. details.count anger hur många de är och details.retry_after datumet efter vilket du kan försöka igen (schemaläggs de inte innan dess löper de ut). Be annars kontoägaren att kontakta supporten. Ingenting har gjorts. |
no_links_found | MCP-verktyg | Ingen webbplats i katalogen passar de här sidorna med den här månadsbudgeten. Prova andra sidor eller en högre budget. Inget har gjorts. |
plan_in_progress | MCP-verktyg | Den här planen sparas just nu. Anropa plan_links igen med samma token om några sekunder för att läsa resultatet. |
plan_outcome_unknown | MCP-verktyg | Sparandet avbröts och utfallet är okänt. Bekräfta inte igen: läs planen med get_plan. |
plan_conflict | MCP-verktyg | Planen håller inte längre som den är: domänens projekt har ändrats, dess datum faller inte längre inom budgetmånaderna (som börjar vid bekräftelsen), eller någon av dess webbplatser är inte längre tillgänglig för den här domänen. details.reason anger vilket. Ingenting skrevs: anropa plan_links igen utan token för en ny sammanfattning. |
plan_retry | MCP-verktyg | Ett annat anrop med den här token slutade utan att spara planen. Anropa plan_links igen med samma token för att läsa resultatet. |
MCP-server
MCP-servern ger din AI-agent samma funktioner som API:t, med samma nyckel. Dess adress: https://www.getlinkfast.com/api/mcp.
Claude Code
Ett kommando i din terminal:
claude mcp add --transport http getlinkfast https://www.getlinkfast.com/api/mcp --header "Authorization: Bearer glf_live_…"Cursor
I ~/.cursor/mcp.json. Undvik ett projekts fil .cursor/mcp.json: den hamnar ofta i kodförrådet, tillsammans med nyckeln.
{
"mcpServers": {
"getlinkfast": {
"url": "https://www.getlinkfast.com/api/mcp",
"headers": {
"Authorization": "Bearer glf_live_…"
}
}
}
}Claude Desktop
Claude Desktop skickar inga egna huvuden till en fjärrserver och kan därför inte vidarebefordra din nyckel. Den kopplas in direkt via OAuth-anslutningen, som är planerad till en kommande version. Använd i dag Claude Code eller Cursor: de skickar nyckeln i huvudet Authorization.
Verktygen
Agenten ser bara de verktyg som nyckelns behörigheter tillåter: en nyckel utan rätt att beställa har inget köpverktyg.
readsearch_sitesget_sitelist_site_pageslist_categoriesget_accountlist_ordersget_orderget_auditquote_packlist_auditsget_plancartget_cartadd_to_cartupdate_cart_itemremove_cart_itemadd_audit_pagerun_auditcancel_planned_linkpurchasecheckoutorder_packplan_links
Köp i två steg
- Agenten anropar
checkoutellerorder_packutanconfirmation_token: inget dras. Den får sammanfattningen (rader, summa, saldo efter dragning, återstående tak) och enconfirmation_token. - Den visar dig sammanfattningen. Om du godkänner anropar den verktyget igen med
confirmation_token: beställningen läggs och dras. - Token gäller i 10 minuter. Om varukorgen, ett pris eller nyckeln ändras under tiden nekas den (
confirmation_expired) och agenten gör om steg 1. Ett nytt anrop med samma token efter ett avbrott returnerar samma beställning, utan en andra dragning.
Handskriven klient
Servern är sessionslös: varje JSON-RPC-meddelande skickas som POST och svaret kommer som JSON. Skicka Accept: application/json, text/event-stream och Content-Type: application/json, annars svarar servern 406. GET och DELETE svarar 405.
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"}'Granska och planera
En agent kan granska en webbplats och sedan sprida länkar över flera månader utifrån rapporten. Fyra steg, med verktygen i MCP-servern.
run_auditstartar den fullständiga granskningen av en domän: tekniska kontroller, synlighet i ChatGPT och webbplatser där en länk skulle hjälpa. Räkna med några minuter. Inget dras, och rapporten låses upp med organisationens granskningskvot om den har en. Gräns: 10 granskningar per nyckel och 24 timmar; om samma domän begärs igen inom en timme returneras den befintliga granskningen.get_auditger status och aktuellt steg, därefter rapporten isummarynär statusen blirready. Anropa det var 30:e till 60:e sekund.list_auditslistar organisationens granskningar, den nyaste först.plan_linksbygger en kalender utifrån en färdig granskning: en månadsbudget i euro exkl. moms (minst 100 €), 2 till 12 månader och som tillval ett startdatum och målsidor. Som vid ett köp är det två steg. Utan token sparas inget: agenten får kalendern (länkar, sändningsdatum, summa) och enconfirmation_tokensom gäller i 10 minuter. Efter ditt godkännande anropar den verktyget igen med samma fält och token, och planen sparas.get_planföljer varje länk: målsida, ankartext, pris och status (schemalagd, beställd, publicerad, avbokad eller misslyckad, med orsaken till ett misslyckande, till exempelinsufficient_credits).cancel_planned_linkavbokar en länk som planerats via API:t, eller alla ännu inte beställda länkar för en domän. Länkar som vårt team har schemalagt ligger kvar:team_plannedför en länk,skipped_team_plannedför antalet.
Inget dras när planen sparas. Varje länk dras i krediter på sändningsdagen, till priset som läses om den dagen, vid det dagliga morgonpasset (omkring 06:20 UTC). Räcker inte saldot den dagen beställs länken inte och visas som misslyckad i get_plan. En länk som redan är beställd kan inte längre avbrytas.
Behörigheter: run_audit och cancel_planned_link kräver cart, plan_links kräver purchase, och get_audit, list_audits och get_plan kräver read. Nyckelns utgiftstak gäller även planerade länkar.
I kontrollpanelen visar sidan Delegering dessa länkar i blocket ”Schemalagda länkar”. Organisationens ägare kan ta bort länkar som planerats via API:t där. Länkar som vårt team har planerat är skrivskyddade.
Referens
Varje rutt med sin behörighet och motsvarande MCP-verktyg. Parametrar, svarsscheman och fel rutt för rutt: OpenAPI 3.1-beskrivningen.
| Rutt | Behörighet | MCP-verktyg | Syfte |
|---|---|---|---|
GET /sites | read | search_sites | Sök i katalogen: mätvärden, pris, kategori, språk, produkt; sortering och sidindelning. |
GET /sites/{id} | read | get_site | En sajt: mätvärden, priser och publiceringsregler. |
GET /sites/{id}/pages | read | list_site_pages | En sajts sidor som är öppna för länkinfogning, med pris och trafik från Google. |
GET /categories | read | list_categories | Kategorierna och deras id, för filtret category. |
GET /account | read | get_account | Organisation, saldo, nyckelns behörigheter och tak, utgifter över 24 timmar. |
GET /credits/transactions | read | inget | Saldohistorik. |
GET /orders | read | list_orders | Dina beställningar, filtrerbara på status och datum. |
GET /orders/{id} | read | get_order | En beställning och dess rader, med deras status. |
GET /cart/items | cart | get_cart | Varukorgen: rader, aktuella priser och blockerande problem. |
POST /cart/items | cart | add_to_cart | Lägg till en gästartikel eller en länkinfogning. |
PATCH /cart/items/{id} | cart | update_cart_item | Komplettera eller ändra en rads brief. |
DELETE /cart/items/{id} | cart | remove_cart_item | Ta bort en rad. |
GET /audits/{id} | read | get_audit | Läs en granskning: status, aktuellt steg, därefter rapporten. |
POST /audits/{id}/pages | cart | add_audit_page | Lägger till en sida att lyfta i en klar granskning (högst 8). Analysen tar 1 till 4 minuter: följ den med get_audit. Inget debiteras. |
POST /checkout | purchase | checkout | Beställ varukorgen mot saldo. |
POST /packs/quote | read | quote_pack | Prissätt ett SEO/GEO-paket, utan dragning. |
POST /packs/orders | purchase | order_pack | Beställ ett SEO/GEO-paket mot saldo. |
| Endast MCP-server | cart | run_audit | Starta den fullständiga granskningen av en domän. Inget dras. |
| Endast MCP-server | read | list_audits | Lista organisationens granskningar, den nyaste först. |
| Endast MCP-server | purchase | plan_links | Planera länkar över 2 till 12 månader utifrån en granskning, i två steg. Inget dras när planen sparas. |
| Endast MCP-server | read | get_plan | Läs en domäns planerade länkar: sändningsdatum och status för varje. |
| Endast MCP-server | cart | cancel_planned_link | Avbryt en planerad länk eller alla ännu obeställda länkar för en domän. |
En fråga om API:t? Skriv till oss, så svarar en person i teamet.
