GetLinkFastGetLinkFast

Документація для розробників

API і сервер MCP GetLinkFast

Шукайте сайти, наповнюйте кошик і замовляйте за кредити, не відкриваючи панель: зі скрипта, сценарію Make чи n8n або з ШІ-агента, наприклад Claude чи Cursor. API і сервер MCP використовують той самий ключ і повертають той самий JSON.

Для чого це

  • Агенції та SEO-команди: підключіть свої внутрішні інструменти й панелі звітності до акаунта. Каталог, кошик, замовлення та статуси читаються в JSON.
  • ШІ-агенти: попросіть Claude Code або Cursor «знайди 5 фінансових сайтів із DR 40+ і замов». Агент шукає, показує вам підсумок і замовляє лише після вашої згоди.
  • Make, n8n, Zapier: досить HTTP-модуля та ключа.

API продає гостьові статті (guest_post), вставлення посилання (link_insertion) і пакети SEO/GEO, лише за кредити. Купівля кредитів та інші пропозиції залишаються в панелі.

Створити ключ

  1. Відкрийте Панель → Доступ до API.
  2. Назвіть ключ (наприклад, «Агент Claude» або «Звіти Make») і виберіть його права. Для ключа, який може замовляти, можна встановити ліміт на замовлення та ліміт на 24 години.
  3. Скопіюйте ключ. Він починається з glf_live_ і показується лише один раз: ми зберігаємо тільки його відбиток.
  4. Надсилайте його в заголовку кожного запиту: Authorization: Bearer glf_live_…

Не більше 10 активних ключів на організацію. Відкликаний ключ одразу перестає працювати, як і ключі учасника, що залишає організацію. Не зберігайте ключ у репозиторіях коду: той, хто його має, діє від імені вашої організації.

Права ключа

Кожен ключ має одне або кілька прав. Запит без потрібного права отримує 403 insufficient_scope, а ШІ-агент бачить лише дозволені інструменти.

ПравоДає доступ доХто може надати
readКаталог, категорії, акаунт і баланс, історія кредитів, замовлення, розрахунок пакетів.Завжди включено.
cartДодавання, зміна та видалення позицій кошика.Будь-який учасник організації.
purchaseЗамовлення кошика або пакета за кредити. Включає кошик.Лише власник організації.

Швидкий старт

Усі маршрути починаються з https://www.getlinkfast.com/api/v1. Зберігайте www: адреса без www перенаправляє, а HTTP-клієнт після перенаправлення більше не надсилає заголовок Authorization.

Суми вказано в євро без ПДВ. Відповіді в JSON, поля в snake_case.

1. Прочитати акаунт і баланс
curl https://www.getlinkfast.com/api/v1/account \
  -H "Authorization: Bearer glf_live_…"
2. Знайти сайти: DR 40 і вище, французькою, гостьова стаття
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. Додати гостьову статтю в кошик
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"}'

Замініть site_id на id сайту з кроку 2. Ніколи не надсилайте ціну: її обчислює сервер.

4. Замовити кошик за кредити
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
  -H "Authorization: Bearer glf_live_…" \
  -H "Idempotency-Key: order-2026-10-14-001"

Відповідь містить id замовлення, списану суму та залишок балансу. Далі стежте за виконанням через GET /orders/{id}.

Замовлення за кредити

API замовляє лише за кредити й ніколи не запускає оплату карткою. Кредити поповнюються в панелі.

Замовлення бере з кошика позиції guest_post і link_insertion. Інші позиції, додані з панелі, залишаються в кошику й перелічені в skipped_items.

За замовчуванням ліміту немає: єдине обмеження — ваш баланс. Для ключа, який може замовляти, встановіть ліміт на замовлення та ліміт на ковзні 24 години. Замовлення, що їх перевищує, відхиляється (403 spending_limit_exceeded, із доступним залишком), без списання.

Недостатньо коштів: 402 insufficient_credits, із сумою, якої бракує, і посиланням на сторінку «Кредити», яке можна передати колезі. Нічого не списується.

Далі все як у панелі: лист із підтвердженням і відстеження на екрані «Замовлення», де замовлення має назву ключа, яким його оформлено.

Заголовок Idempotency-Key

  • Обов'язковий для POST /checkout і POST /packs/orders: від 8 до 128 друкованих символів ASCII, без пробілів. Без нього: 400 idempotency_key_required.
  • Одне значення — один намір купити. Повторне надсилання того самого значення повертає початкове замовлення (200, "replayed": true) без другого списання, навіть якщо кошик відтоді змінився.
  • Після тайм-ауту чи обриву мережі повторіть запит із тим самим значенням: ви не заплатите двічі.
  • Для нової покупки створіть нове значення, наприклад UUID.
  • І на POST /checkout, і на POST /packs/orders значення, вже використане для іншої покупки, відхиляється: 409 idempotency_conflict, без списання. Для пакета відхиляється й те саме значення, надіслане з іншим вмістом.
  • На боці MCP цю роль виконує токен підтвердження: нічого генерувати не потрібно.

Обмеження

  • 120 запитів на хвилину на ключ для читання і стільки ж, окремо, для кошика: одне не витрачає інше.
  • 10 викликів на хвилину на ключ до маршрутів або інструментів покупки — включно з повторами, відмовами та кроком зведення в MCP.
  • 300 HTTP-запитів на хвилину на ключ на сервері MCP. Кожен викликаний інструмент додатково враховується в ліміті свого права.
  • Понад це: 429 rate_limited. Час очікування в секундах вказує заголовок Retry-After у HTTP і details.retry_after_seconds у результаті інструмента MCP.
  • Не більше 100 результатів на сторінку (page_size).
  • Тіло запиту: не більше 1 МБ.

Коди помилок

Усі помилки мають однакову форму. Перевіряйте code: він стабільний. message англійською й адресоване розробнику; details вказує хибне поле або суми.

Приклад: недостатньо коштів
{
  "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"
    }
  }
}
КодHTTPЩо означає
invalid_json400Тіло запиту не є читабельним JSON. Перевірте синтаксис і заголовок Content-Type: application/json.
idempotency_key_required400Заголовок Idempotency-Key відсутній або хибний на маршруті покупки. Надішліть значення завдовжки від 8 до 128 символів.
invalid_api_key401Ключ відсутній, хибний, невідомий або відкликаний чи створений учасником, який залишив організацію. Перевірте заголовок Authorization: Bearer glf_live_….
insufficient_credits402Недостатньо коштів. details.missing_amount дає суму, якої бракує, details.credits_url — сторінку поповнення. Нічого не списано.
insufficient_scope403Ключ не має права, якого вимагає цей маршрут або інструмент. Створіть ключ із цим правом.
spending_limit_exceeded403Замовлення перевищує ліміт ключа: на замовлення (window: order) або на 24 години (window: 24h). details.remaining дає залишок. Нічого не списано.
not_found404Ресурс не знайдено, або він не належить вашій організації.
method_not_allowed405Сервер MCP: GET і DELETE не приймаються. Надсилайте кожне повідомлення JSON-RPC методом POST.
organization_financial_hold409Покупки для вашої організації заблоковано. Зв'яжіться з нами. Нічого не списано.
page_already_sold409Сторінку з кошика (вставлення посилання) щойно продано. Видаліть позицію й замовте знову з новим Idempotency-Key.
cart_already_ordered409Позицію кошика вже замовлено іншою покупкою (з панелі або з іншим Idempotency-Key). Перечитайте кошик, перш ніж замовляти з новим значенням.
idempotency_conflict409Цей Idempotency-Key уже використано для іншої покупки. Для нової покупки використайте нове значення.
not_ready409Аудит ще не готовий. Дочекайтеся статусу ready через get_audit, потім додайте сторінку.
full_pass_running409Повний звіт аудиту ще готується. Повторіть спробу за кілька хвилин. Нічого не запущено.
limit_reached409В аудиті вже 8 доданих вами сторінок, враховуючи аналізи, що тривають. Нічого не запущено.
already_present409Ця сторінка вже в аудиті, або її аналіз триває. Нічого не запущено.
already_ordered409Це заплановане посилання вже замовлене, і скасувати його тут більше не можна.
not_cancellable409Зараз це посилання скасувати не можна. Перечитайте його через get_plan.
team_planned409Це посилання запланувала наша команда, а не API: тут його скасувати не можна. Щоб змінити його, власник акаунта звертається до підтримки.
payload_too_large413Тіло запиту більше за 1 МБ.
invalid_parameter422Недійсний, повторюваний або невідомий параметр запиту. details.fields називає кожен хибний параметр і причину.
invalid_arguments422Недійсне поєднання аргументів, наприклад немає ні domain, ні audit_id, або передано обидва. details.field називає поле. Нічого не виконано.
invalid_domain422Не вдається прочитати домен або URL. Надішліть назву домену, наприклад example.com.
own_network_domain422Цей домен входить до нашої мережі публікацій: його не можна перевірити. Нічого не запущено.
invalid_body422Недійсне або невідоме поле в тілі. details.fields називає кожне хибне поле і причину.
product_not_available_via_api422API продає гостьові статті та вставлення посилання. Інші продукти замовляються з панелі.
image_not_uploaded422Головне зображення має бути завантажене в GetLinkFast з панелі.
cart_empty422Жодну позицію кошика не можна замовити через API. Нічого не списано.
cart_invalid422Деякі позиції неповні або більше недоступні. details.items перелічує кожну позицію та її проблеми. Нічого не списано.
invalid_pack_input422Пакет не відповідає своїм правилам (details.reason). Нічого не списано.
site_unavailable422Цього сайту не існує, або він більше не продається.
target_page_required422Для вставлення посилання потрібен page_id: візьміть його зі списку сторінок сайту.
target_page_not_found422Ця сторінка не належить цьому сайту.
target_page_sold422Цю сторінку вже продано.
target_page_withdrawn422Ця сторінка більше не пропонується.
target_page_already_in_cart422Ця сторінка вже у вашому кошику.
product_unavailable422Цей сайт не продає цей продукт.
invalid_url422Адресу не вдається прочитати. Надішліть повну адресу http(s) без облікових даних і порту.
other_site422Ця сторінка не на перевіреному домені. Надішліть сторінку того самого сайту.
invalid_keyword422Цільовий запит задовгий: не більше 120 символів.
rate_limited429Забагато запитів для цього ключа. Зачекайте стільки секунд, скільки вказано в заголовку Retry-After у HTTP або в details.retry_after_seconds у результаті інструмента MCP.
audit_quota_exceeded429Цей ключ уже запустив 10 аудитів за останні 24 години. Нічого не запущено: повторіть пізніше.
internal_error500Помилка з нашого боку, про неї вже повідомлено команді. Спробуйте пізніше: покупка, повторена з тим самим Idempotency-Key, ніколи не списується двічі.
engine_unavailable502Рушій аудиту тимчасово недоступний. Нічого не запущено: повторіть пізніше.
packs_unavailable503Пакети SEO/GEO поки недоступні.
confirmation_expiredІнструмент MCPТокен підтвердження прострочено, або після підсумку змінилися кошик, ціни чи ключ. Нічого не списано: викличте інструмент знову без токена, щоб отримати новий підсумок.
purchase_unavailableІнструмент MCPПокупки через сервер MCP тимчасово недоступні. Нічого не списано. Спробуйте пізніше.
unknown_toolІнструмент MCPНевідомий інструмент, або його не дозволяють права ключа. tools/list дає доступні інструменти.
audit_failedІнструмент MCPЦей аудит завершився невдачею, тому план неможливий. Запустіть новий через run_audit. Нічого не виконано.
audit_not_readyІнструмент MCPЦей аудит ще не завершено. Дочекайтеся статусу ready через get_audit, потім знову викличте plan_links. Нічого не виконано.
budget_too_lowІнструмент MCPМісячний бюджет нижчий за мінімум 100 € на місяць. Нічого не виконано.
start_date_too_farІнструмент MCPДата старту надто далека. У повідомленні вказано останню допустиму дату. Нічого не виконано.
too_many_pagesІнструмент MCPПроєкт відстежує обмежену кількість сторінок. Надішліть менше нових сторінок у target_urls. Нічого не виконано.
plan_existsІнструмент MCPУ цього домену вже є заплановані, але ще не замовлені посилання. Плани не об'єднуються: приберіть їх через cancel_planned_link і почніть заново. Нічого не виконано.
pending_proposalsІнструмент MCPНаша команда розглядає запропоновані посилання для цього домену, тож додати план поки не можна. details.count вказує їхню кількість, а details.retry_after — дату, після якої можна спробувати знову (якщо до того часу їх не заплановано, вони спливуть). Інакше попросіть власника акаунта звернутися до підтримки. Нічого не виконано.
no_links_foundІнструмент MCPЖоден сайт каталогу не підходить для цих сторінок за такого місячного бюджету. Спробуйте інші сторінки або більший бюджет. Нічого не виконано.
plan_in_progressІнструмент MCPЦей план зберігається просто зараз. За кілька секунд знову викличте plan_links з тим самим токеном, щоб прочитати результат.
plan_outcome_unknownІнструмент MCPЗбереження перервано, його результат невідомий. Не підтверджуйте повторно: прочитайте план через get_plan.
plan_conflictІнструмент MCPПлан у такому вигляді більше не дійсний: проєкт домену змінився, його дати більше не потрапляють у місяці бюджету (які починаються з підтвердження), або один із його сайтів більше недоступний для цього домену. details.reason вказує, що саме. Нічого не записано: знову викличте plan_links без токена, щоб отримати нове зведення.
plan_retryІнструмент MCPІнший виклик із цим токеном завершився, не зберігши план. Знову викличте plan_links з тим самим токеном, щоб прочитати результат.

Сервер MCP

Сервер MCP дає вашому ШІ-агенту ті самі функції, що й API, з тим самим ключем. Його адреса: https://www.getlinkfast.com/api/mcp.

Claude Code

Одна команда в терміналі:

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

Cursor

У ~/.cursor/mcp.json. Уникайте файлу .cursor/mcp.json у проєкті: він часто потрапляє до репозиторію разом із ключем.

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

Claude Desktop

Claude Desktop не надсилає власні заголовки віддаленому серверу, тож не може передати ваш ключ. Він підключатиметься напряму через OAuth-з'єднання, заплановане в одній із наступних версій. Зараз використовуйте Claude Code або Cursor: вони надсилають ключ у заголовку Authorization.

Інструменти

Агент бачить лише інструменти, дозволені правами ключа: ключ без права замовляти не має жодного інструмента покупки.

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

Покупка у два кроки

  1. Агент викликає checkout або order_pack без confirmation_token: нічого не списується. Він отримує підсумок (позиції, разом, баланс після списання, залишок ліміту) і confirmation_token.
  2. Він показує вам цей підсумок. Якщо ви погоджуєтеся, він знову викликає інструмент із confirmation_token: замовлення оформлюється і списується.
  3. Токен дійсний 10 хвилин. Якщо тим часом зміняться кошик, ціна чи ключ, його відхиляють (confirmation_expired), і агент повторює крок 1. Повторний виклик із тим самим токеном після обриву повертає те саме замовлення, без другого списання.

Власний клієнт

Сервер працює без сесій: кожне повідомлення JSON-RPC надсилається методом POST, а відповідь приходить у JSON. Надсилайте Accept: application/json, text/event-stream і Content-Type: application/json, інакше сервер відповість 406. GET і DELETE повертають 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"}'

Аудит і планування

Агент може провести аудит сайту, а потім розподілити посилання на кілька місяців за звітом. Чотири кроки, з інструментами MCP-сервера.

  1. run_audit запускає повний аудит домену: технічні перевірки, видимість у ChatGPT і сайти, де посилання допомогло б. Це займає кілька хвилин. Нічого не списується, а звіт відкривається квотою аудитів організації, якщо вона є. Ліміт: 10 аудитів на ключ за 24 години; повторний запит того самого домену протягом години поверне наявний аудит.
  2. get_audit повертає статус і поточний етап, а коли статус стане ready, ще й звіт у summary. Викликайте його раз на 30–60 секунд. list_audits перелічує аудити організації, спочатку нові.
  3. plan_links будує календар за готовим аудитом: місячний бюджет у євро без ПДВ (щонайменше 100 €), від 2 до 12 місяців і, за бажанням, дата старту та цільові сторінки. Як і покупка, це два кроки. Без токена нічого не зберігається: агент отримує календар (посилання, дати надсилання, підсумок) і confirmation_token, чинний 10 хвилин. Після вашої згоди він знову викликає інструмент з тими самими полями й токеном, і план зберігається.
  4. get_plan відстежує кожне посилання: цільову сторінку, анкор, ціну й стан (заплановано, замовлено, опубліковано, скасовано або не вдалося, а в разі невдачі з причиною, наприклад insufficient_credits). cancel_planned_link скасовує посилання, заплановане через API, або всі ще не замовлені посилання домену. Посилання, заплановані нашою командою, залишаються на місці: team_planned для одного посилання, skipped_team_planned для їхньої кількості.

Під час збереження плану нічого не списується. Кожне посилання списується в кредитах у день надсилання, за ціною, перечитаною цього дня, під час щоденного ранкового проходу (близько 06:20 UTC). Якщо цього дня бракує балансу, посилання не замовляється і в get_plan показується як невдале. Вже замовлене посилання скасувати не можна.

Права: run_audit і cancel_planned_link потребують cart, plan_links потребує purchase, а get_audit, list_audits і get_plan потребують read. Ліміти витрат ключа діють і для запланованих посилань.

У панелі сторінка Делегування показує ці посилання в блоці «Заплановані посилання». Власник організації може прибрати там посилання, заплановані через API. Посилання, заплановані нашою командою, доступні лише для читання.

Довідник

Кожен маршрут із його правом і відповідним інструментом MCP. Параметри, схеми відповідей і помилки для кожного маршруту: опис OpenAPI 3.1.

МаршрутПравоІнструмент MCPПризначення
GET /sitesreadsearch_sitesПошук у каталозі: метрики, ціна, категорія, мова, продукт; сортування та посторінковий вивід.
GET /sites/{id}readget_siteОдин сайт: метрики, ціни та правила публікації.
GET /sites/{id}/pagesreadlist_site_pagesСторінки сайту, відкриті для вставлення посилання, з ціною та трафіком із Google.
GET /categoriesreadlist_categoriesКатегорії та їхні id для фільтра category.
GET /accountreadget_accountОрганізація, баланс кредитів, права й ліміти ключа, витрати за 24 години.
GET /credits/transactionsreadнемаєІсторія кредитів.
GET /ordersreadlist_ordersВаші замовлення з фільтром за статусом і датою.
GET /orders/{id}readget_orderОдне замовлення та його позиції з їхнім статусом.
GET /cart/itemscartget_cartКошик: позиції, актуальні ціни та блокувальні проблеми.
POST /cart/itemscartadd_to_cartДодати гостьову статтю або вставлення посилання.
PATCH /cart/items/{id}cartupdate_cart_itemДоповнити або змінити бриф позиції.
DELETE /cart/items/{id}cartremove_cart_itemВидалити позицію.
GET /audits/{id}readget_auditПрочитати аудит: статус, поточний етап, потім звіт.
POST /audits/{id}/pagescartadd_audit_pageДодає сторінку для просування до готового аудиту (не більше 8). Аналіз триває від 1 до 4 хвилин: стежте за ним через get_audit. Нічого не списується.
POST /checkoutpurchasecheckoutЗамовити кошик за кредити.
POST /packs/quotereadquote_packРозрахувати вартість пакета SEO/GEO, без списання.
POST /packs/orderspurchaseorder_packЗамовити пакет SEO/GEO за кредити.
Лише MCP-серверcartrun_auditЗапустити повний аудит домену. Нічого не списується.
Лише MCP-серверreadlist_auditsПерелічити аудити організації, спочатку нові.
Лише MCP-серверpurchaseplan_linksЗапланувати посилання на 2–12 місяців за аудитом, у два кроки. Під час збереження нічого не списується.
Лише MCP-серверreadget_planПрочитати заплановані посилання домену: дата надсилання та статус кожного.
Лише MCP-серверcartcancel_planned_linkСкасувати одне заплановане посилання або всі ще не замовлені посилання домену.

Питання щодо API? Напишіть нам, вам відповість людина з команди.