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? Напишите нам, вам ответит человек из команды.