Документація для розробників
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, лише за кредити. Купівля кредитів та інші пропозиції залишаються в панелі.
Створити ключ
- Відкрийте Панель → Доступ до API.
- Назвіть ключ (наприклад, «Агент Claude» або «Звіти Make») і виберіть його права. Для ключа, який може замовляти, можна встановити ліміт на замовлення та ліміт на 24 години.
- Скопіюйте ключ. Він починається з
glf_live_і показується лише один раз: ми зберігаємо тільки його відбиток. - Надсилайте його в заголовку кожного запиту:
Authorization: Bearer glf_live_…
Не більше 10 активних ключів на організацію. Відкликаний ключ одразу перестає працювати, як і ключі учасника, що залишає організацію. Не зберігайте ключ у репозиторіях коду: той, хто його має, діє від імені вашої організації.
Права ключа
Кожен ключ має одне або кілька прав. Запит без потрібного права отримує 403 insufficient_scope, а ШІ-агент бачить лише дозволені інструменти.
| Право | Дає доступ до | Хто може надати |
|---|---|---|
read | Каталог, категорії, акаунт і баланс, історія кредитів, замовлення, розрахунок пакетів. | Завжди включено. |
cart | Додавання, зміна та видалення позицій кошика. | Будь-який учасник організації. |
purchase | Замовлення кошика або пакета за кредити. Включає кошик. | Лише власник організації. |
Швидкий старт
Усі маршрути починаються з https://www.getlinkfast.com/api/v1. Зберігайте www: адреса без www перенаправляє, а HTTP-клієнт після перенаправлення більше не надсилає заголовок Authorization.
Суми вказано в євро без ПДВ. Відповіді в JSON, поля в 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"}'Замініть site_id на id сайту з кроку 2. Ніколи не надсилайте ціну: її обчислює сервер.
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_json | 400 | Тіло запиту не є читабельним JSON. Перевірте синтаксис і заголовок Content-Type: application/json. |
idempotency_key_required | 400 | Заголовок Idempotency-Key відсутній або хибний на маршруті покупки. Надішліть значення завдовжки від 8 до 128 символів. |
invalid_api_key | 401 | Ключ відсутній, хибний, невідомий або відкликаний чи створений учасником, який залишив організацію. Перевірте заголовок Authorization: Bearer glf_live_…. |
insufficient_credits | 402 | Недостатньо коштів. details.missing_amount дає суму, якої бракує, details.credits_url — сторінку поповнення. Нічого не списано. |
insufficient_scope | 403 | Ключ не має права, якого вимагає цей маршрут або інструмент. Створіть ключ із цим правом. |
spending_limit_exceeded | 403 | Замовлення перевищує ліміт ключа: на замовлення (window: order) або на 24 години (window: 24h). details.remaining дає залишок. Нічого не списано. |
not_found | 404 | Ресурс не знайдено, або він не належить вашій організації. |
method_not_allowed | 405 | Сервер MCP: GET і DELETE не приймаються. Надсилайте кожне повідомлення JSON-RPC методом POST. |
organization_financial_hold | 409 | Покупки для вашої організації заблоковано. Зв'яжіться з нами. Нічого не списано. |
page_already_sold | 409 | Сторінку з кошика (вставлення посилання) щойно продано. Видаліть позицію й замовте знову з новим Idempotency-Key. |
cart_already_ordered | 409 | Позицію кошика вже замовлено іншою покупкою (з панелі або з іншим Idempotency-Key). Перечитайте кошик, перш ніж замовляти з новим значенням. |
idempotency_conflict | 409 | Цей Idempotency-Key уже використано для іншої покупки. Для нової покупки використайте нове значення. |
not_ready | 409 | Аудит ще не готовий. Дочекайтеся статусу ready через get_audit, потім додайте сторінку. |
full_pass_running | 409 | Повний звіт аудиту ще готується. Повторіть спробу за кілька хвилин. Нічого не запущено. |
limit_reached | 409 | В аудиті вже 8 доданих вами сторінок, враховуючи аналізи, що тривають. Нічого не запущено. |
already_present | 409 | Ця сторінка вже в аудиті, або її аналіз триває. Нічого не запущено. |
already_ordered | 409 | Це заплановане посилання вже замовлене, і скасувати його тут більше не можна. |
not_cancellable | 409 | Зараз це посилання скасувати не можна. Перечитайте його через get_plan. |
team_planned | 409 | Це посилання запланувала наша команда, а не API: тут його скасувати не можна. Щоб змінити його, власник акаунта звертається до підтримки. |
payload_too_large | 413 | Тіло запиту більше за 1 МБ. |
invalid_parameter | 422 | Недійсний, повторюваний або невідомий параметр запиту. details.fields називає кожен хибний параметр і причину. |
invalid_arguments | 422 | Недійсне поєднання аргументів, наприклад немає ні domain, ні audit_id, або передано обидва. details.field називає поле. Нічого не виконано. |
invalid_domain | 422 | Не вдається прочитати домен або URL. Надішліть назву домену, наприклад example.com. |
own_network_domain | 422 | Цей домен входить до нашої мережі публікацій: його не можна перевірити. Нічого не запущено. |
invalid_body | 422 | Недійсне або невідоме поле в тілі. details.fields називає кожне хибне поле і причину. |
product_not_available_via_api | 422 | API продає гостьові статті та вставлення посилання. Інші продукти замовляються з панелі. |
image_not_uploaded | 422 | Головне зображення має бути завантажене в GetLinkFast з панелі. |
cart_empty | 422 | Жодну позицію кошика не можна замовити через API. Нічого не списано. |
cart_invalid | 422 | Деякі позиції неповні або більше недоступні. details.items перелічує кожну позицію та її проблеми. Нічого не списано. |
invalid_pack_input | 422 | Пакет не відповідає своїм правилам (details.reason). Нічого не списано. |
site_unavailable | 422 | Цього сайту не існує, або він більше не продається. |
target_page_required | 422 | Для вставлення посилання потрібен page_id: візьміть його зі списку сторінок сайту. |
target_page_not_found | 422 | Ця сторінка не належить цьому сайту. |
target_page_sold | 422 | Цю сторінку вже продано. |
target_page_withdrawn | 422 | Ця сторінка більше не пропонується. |
target_page_already_in_cart | 422 | Ця сторінка вже у вашому кошику. |
product_unavailable | 422 | Цей сайт не продає цей продукт. |
invalid_url | 422 | Адресу не вдається прочитати. Надішліть повну адресу http(s) без облікових даних і порту. |
other_site | 422 | Ця сторінка не на перевіреному домені. Надішліть сторінку того самого сайту. |
invalid_keyword | 422 | Цільовий запит задовгий: не більше 120 символів. |
rate_limited | 429 | Забагато запитів для цього ключа. Зачекайте стільки секунд, скільки вказано в заголовку Retry-After у HTTP або в details.retry_after_seconds у результаті інструмента MCP. |
audit_quota_exceeded | 429 | Цей ключ уже запустив 10 аудитів за останні 24 години. Нічого не запущено: повторіть пізніше. |
internal_error | 500 | Помилка з нашого боку, про неї вже повідомлено команді. Спробуйте пізніше: покупка, повторена з тим самим Idempotency-Key, ніколи не списується двічі. |
engine_unavailable | 502 | Рушій аудиту тимчасово недоступний. Нічого не запущено: повторіть пізніше. |
packs_unavailable | 503 | Пакети 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
Одна команда в терміналі:
claude mcp add --transport http getlinkfast https://www.getlinkfast.com/api/mcp --header "Authorization: Bearer glf_live_…"Cursor
У ~/.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.
Інструменти
Агент бачить лише інструменти, дозволені правами ключа: ключ без права замовляти не має жодного інструмента покупки.
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
Покупка у два кроки
- Агент викликає
checkoutабоorder_packбезconfirmation_token: нічого не списується. Він отримує підсумок (позиції, разом, баланс після списання, залишок ліміту) іconfirmation_token. - Він показує вам цей підсумок. Якщо ви погоджуєтеся, він знову викликає інструмент із
confirmation_token: замовлення оформлюється і списується. - Токен дійсний 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-сервера.
run_auditзапускає повний аудит домену: технічні перевірки, видимість у ChatGPT і сайти, де посилання допомогло б. Це займає кілька хвилин. Нічого не списується, а звіт відкривається квотою аудитів організації, якщо вона є. Ліміт: 10 аудитів на ключ за 24 години; повторний запит того самого домену протягом години поверне наявний аудит.get_auditповертає статус і поточний етап, а коли статус станеready, ще й звіт уsummary. Викликайте його раз на 30–60 секунд.list_auditsперелічує аудити організації, спочатку нові.plan_linksбудує календар за готовим аудитом: місячний бюджет у євро без ПДВ (щонайменше 100 €), від 2 до 12 місяців і, за бажанням, дата старту та цільові сторінки. Як і покупка, це два кроки. Без токена нічого не зберігається: агент отримує календар (посилання, дати надсилання, підсумок) іconfirmation_token, чинний 10 хвилин. Після вашої згоди він знову викликає інструмент з тими самими полями й токеном, і план зберігається.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 /sites | read | search_sites | Пошук у каталозі: метрики, ціна, категорія, мова, продукт; сортування та посторінковий вивід. |
GET /sites/{id} | read | get_site | Один сайт: метрики, ціни та правила публікації. |
GET /sites/{id}/pages | read | list_site_pages | Сторінки сайту, відкриті для вставлення посилання, з ціною та трафіком із Google. |
GET /categories | read | list_categories | Категорії та їхні id для фільтра category. |
GET /account | read | get_account | Організація, баланс кредитів, права й ліміти ключа, витрати за 24 години. |
GET /credits/transactions | read | немає | Історія кредитів. |
GET /orders | read | list_orders | Ваші замовлення з фільтром за статусом і датою. |
GET /orders/{id} | read | get_order | Одне замовлення та його позиції з їхнім статусом. |
GET /cart/items | cart | get_cart | Кошик: позиції, актуальні ціни та блокувальні проблеми. |
POST /cart/items | cart | add_to_cart | Додати гостьову статтю або вставлення посилання. |
PATCH /cart/items/{id} | cart | update_cart_item | Доповнити або змінити бриф позиції. |
DELETE /cart/items/{id} | cart | remove_cart_item | Видалити позицію. |
GET /audits/{id} | read | get_audit | Прочитати аудит: статус, поточний етап, потім звіт. |
POST /audits/{id}/pages | cart | add_audit_page | Додає сторінку для просування до готового аудиту (не більше 8). Аналіз триває від 1 до 4 хвилин: стежте за ним через get_audit. Нічого не списується. |
POST /checkout | purchase | checkout | Замовити кошик за кредити. |
POST /packs/quote | read | quote_pack | Розрахувати вартість пакета SEO/GEO, без списання. |
POST /packs/orders | purchase | order_pack | Замовити пакет SEO/GEO за кредити. |
| Лише MCP-сервер | cart | run_audit | Запустити повний аудит домену. Нічого не списується. |
| Лише MCP-сервер | read | list_audits | Перелічити аудити організації, спочатку нові. |
| Лише MCP-сервер | purchase | plan_links | Запланувати посилання на 2–12 місяців за аудитом, у два кроки. Під час збереження нічого не списується. |
| Лише MCP-сервер | read | get_plan | Прочитати заплановані посилання домену: дата надсилання та статус кожного. |
| Лише MCP-сервер | cart | cancel_planned_link | Скасувати одне заплановане посилання або всі ще не замовлені посилання домену. |
Питання щодо API? Напишіть нам, вам відповість людина з команди.
