开发者文档
GetLinkFast API 与 MCP 服务器
无需打开控制台,即可搜索站点、填充购物车并用额度下单:可以从脚本、Make 或 n8n 场景,或者 Claude、Cursor 等 AI 代理发起。API 和 MCP 服务器使用同一个密钥,返回相同的 JSON。
用途
- 代理机构与 SEO 团队:将您的内部工具和跟踪看板接入账户。目录、购物车、订单和状态都能以 JSON 读取。
- AI 代理:让 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,AI 代理也只能看到被允许的工具。
| 权限 | 可访问 | 谁可以授予 |
|---|---|---|
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 替换为第 2 步中某个站点的 id。切勿发送价格:价格由服务器计算。
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 的摘要步骤都计算在内。
- MCP 服务器上每个密钥每分钟 300 个 HTTP 请求。每次调用的工具还会计入其权限的限额。
- 超出后:返回
429 rate_limited。等待秒数在 HTTP 中由Retry-After请求头给出,在 MCP 工具结果中由details.retry_after_seconds给出。 - 每页最多 100 条结果(
page_size)。 - 请求体:最大 1 MB。
错误代码
所有错误格式相同。请以 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。请用 POST 发送每条 JSON-RPC 消息。 |
organization_financial_hold | 409 | 您的组织已被暂停购买。请联系我们。未扣除任何费用。 |
page_already_sold | 409 | 购物车中的一个页面(链接插入)刚刚售出。请移除该条目,然后用新的 Idempotency-Key 重新下单。 |
cart_already_ordered | 409 | 购物车中的一个条目已被另一次购买下单(控制台或另一个 Idempotency-Key)。请先重新读取购物车,再用新的值下单。 |
idempotency_conflict | 409 | 此 Idempotency-Key 已用于另一次购买。新的购买请使用新的值。 |
not_ready | 409 | 审计尚未完成。请用 get_audit 等待状态变为 ready,然后再添加页面。 |
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 MB。 |
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 | 此密钥的请求过多。请等待 HTTP 中 Retry-After 请求头或 MCP 工具结果中 details.retry_after_seconds 指示的秒数。 |
audit_quota_exceeded | 429 | 此密钥在过去 24 小时内已启动 10 次审计。未启动任何审计:请稍后重试。 |
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 工具 | 这次审计尚未完成。请用 get_audit 等到状态变为 ready,再重新调用 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 服务器用同一个密钥,为您的 AI 代理提供与 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
两步购买
- 代理在不带
confirmation_token的情况下调用checkout或order_pack:不会扣款。它会收到摘要(条目、总额、扣款后余额、剩余上限)和一个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 中的可见度,以及链接能起作用的网站。需要几分钟。不会扣款;若组织有审计额度,报告将用该额度解锁。限额:每个密钥每 24 小时 10 次;一小时内再次请求同一域名,将返回已有的审计。get_audit返回状态和当前步骤,状态变为ready后,报告在summary中返回。每 30 到 60 秒调用一次。list_audits按从新到旧列出组织的审计。plan_links根据已完成的审计生成日程:月预算(欧元,不含增值税,至少 100 €)、2 到 12 个月,另可选开始日期和目标页面。与购买一样分两步。不带令牌时不会保存任何内容:代理会收到日程(链接、发送日期、总额)和有效期 10 分钟的confirmation_token。经您同意后,它用相同的字段和令牌再次调用该工具,计划随即保存。get_plan跟踪每条链接:目标页面、锚文本、价格和状态(已排期、已下单、已发布、已取消或失败;失败时附带原因,例如insufficient_credits)。cancel_planned_link取消一条通过 API 计划的链接,或取消某个域名下所有尚未下单的链接。由我们团队排期的链接会保留:单条链接返回team_planned,数量见skipped_team_planned。
保存计划时不会扣款。每条链接在发送当天,按当天重新读取的价格,在每日清晨的例行处理(约 UTC 06:20)中以积分扣除。若当天余额不足,该链接不会下单,并在 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 有疑问?给我们写信,团队成员会回复您。
