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