Documentação para desenvolvedores
API e servidor MCP da GetLinkFast
Pesquise sites, preencha seu carrinho e faça pedidos com créditos sem abrir o painel: a partir de um script, de um cenário Make ou n8n, ou de um agente de IA como Claude ou Cursor. A API e o servidor MCP usam a mesma chave e retornam o mesmo JSON.
Para que serve
- Agências e equipes de SEO: conecte suas ferramentas internas e seus painéis de acompanhamento à sua conta. Catálogo, carrinho, pedidos e status são lidos em JSON.
- Agentes de IA: peça ao Claude Code ou ao Cursor “encontre 5 sites de finanças com DR 40+ e faça o pedido”. O agente pesquisa, mostra o resumo e só faz o pedido depois da sua aprovação.
- Make, n8n, Zapier: um módulo HTTP e uma chave bastam.
A API vende o artigo convidado (guest_post), a inserção de link (link_insertion) e os pacotes SEO/GEO, somente com créditos. A compra de créditos e as outras ofertas continuam no painel.
Criar uma chave
- Abra Painel → Acesso à API.
- Dê um nome à chave (por exemplo “Agente Claude” ou “Relatórios Make”) e escolha suas permissões. Em uma chave que pode fazer pedidos, você pode definir um limite por pedido e um limite em 24 horas.
- Copie a chave. Ela começa com
glf_live_e é exibida uma única vez: guardamos apenas uma impressão dela. - Envie-a no cabeçalho de cada requisição:
Authorization: Bearer glf_live_…
No máximo 10 chaves ativas por organização. Uma chave revogada para de funcionar na hora, assim como as chaves de um membro que sai da organização. Mantenha a chave fora dos seus repositórios de código: quem a tem age em nome da sua organização.
As permissões de uma chave
Cada chave tem uma ou mais permissões. Uma requisição sem a permissão necessária recebe 403 insufficient_scope, e um agente de IA só vê as ferramentas permitidas.
| Permissão | Dá acesso a | Quem pode conceder |
|---|---|---|
read | Catálogo, categorias, conta e saldo, histórico de créditos, pedidos, orçamentos de pacotes. | Sempre incluída. |
cart | Adicionar, alterar e remover itens do carrinho. | Qualquer membro da organização. |
purchase | Fazer o pedido do carrinho ou de um pacote, com créditos. Inclui o carrinho. | Somente o proprietário da organização. |
Início rápido
Todas as rotas começam com https://www.getlinkfast.com/api/v1. Mantenha o www: o endereço sem www redireciona, e um cliente HTTP deixa de enviar o cabeçalho Authorization após um redirecionamento.
Os valores estão em euros sem IVA. As respostas são em JSON, com campos em 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"}'Substitua site_id pelo id de um site da etapa 2. Nunca envie um preço: o servidor o calcula.
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
-H "Authorization: Bearer glf_live_…" \
-H "Idempotency-Key: order-2026-10-14-001"A resposta traz o id do pedido, o valor debitado e seu saldo restante. Depois, acompanhe o andamento com GET /orders/{id}.
Fazer pedidos com créditos
A API faz pedidos somente com créditos e nunca inicia um pagamento com cartão. Os créditos são recarregados no painel.
Um pedido usa os itens guest_post e link_insertion do carrinho. Os outros itens, adicionados pelo painel, ficam no carrinho e são listados em skipped_items.
Nenhum limite por padrão: seu saldo é o único limite. Em uma chave que pode fazer pedidos, defina um limite por pedido e um limite em 24 horas corridas. Um pedido que os ultrapasse é recusado (403 spending_limit_exceeded, com o valor ainda disponível), sem débito.
Saldo insuficiente: 402 insufficient_credits, com o valor que falta e o link da página Créditos, para repassar a alguém da sua equipe. Nada é debitado.
Depois, tudo funciona como no painel: email de confirmação e acompanhamento na tela Pedidos, onde o pedido leva o nome da chave que o fez.
O cabeçalho Idempotency-Key
- Obrigatório em
POST /checkoutePOST /packs/orders: de 8 a 128 caracteres ASCII imprimíveis, sem espaços. Sem ele:400 idempotency_key_required. - Um valor equivale a uma intenção de compra. Reenviar o mesmo valor retorna o pedido original (
200,"replayed": true) sem segundo débito, mesmo que o carrinho tenha mudado desde então. - Após um tempo limite excedido ou uma queda de rede, repita com o mesmo valor: você não pagará duas vezes.
- Para uma nova compra, gere um novo valor, por exemplo um UUID.
- Tanto em
POST /checkoutquanto emPOST /packs/orders, um valor já usado em outra compra é recusado:409 idempotency_conflict, sem débito. Para um pacote, o mesmo valor enviado com outro conteúdo também é recusado. - No lado MCP, o token de confirmação cumpre esse papel: você não precisa gerar nada.
Limites
- 120 requisições por minuto e por chave para leitura, e outras tantas, separadamente, para o carrinho: uma não consome a outra.
- 10 chamadas por minuto e por chave às rotas ou ferramentas de compra — repetições, recusas e etapa de resumo MCP incluídas.
- 300 requisições HTTP por minuto e por chave no servidor MCP. Cada ferramenta chamada conta também no limite da sua permissão.
- Acima disso:
429 rate_limited. A espera, em segundos, é indicada pelo cabeçalhoRetry-Afterem HTTP, e pordetails.retry_after_secondsno resultado de uma ferramenta MCP. - No máximo 100 resultados por página (
page_size). - Corpo da requisição: no máximo 1 MB.
Códigos de erro
Todo erro tem a mesma forma. Teste code: ele é estável. message está em inglês e se dirige ao desenvolvedor; details indica o campo com erro ou os valores.
{
"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"
}
}
}| Código | HTTP | O que significa |
|---|---|---|
invalid_json | 400 | O corpo da requisição não é um JSON legível. Verifique a sintaxe e o cabeçalho Content-Type: application/json. |
idempotency_key_required | 400 | Cabeçalho Idempotency-Key ausente ou malformado em uma rota de compra. Envie um valor de 8 a 128 caracteres. |
invalid_api_key | 401 | Chave ausente, malformada, desconhecida ou revogada, ou criada por um membro que saiu da organização. Verifique o cabeçalho Authorization: Bearer glf_live_…. |
insufficient_credits | 402 | Saldo insuficiente. details.missing_amount dá o valor que falta, details.credits_url a página para recarregar. Nada foi debitado. |
insufficient_scope | 403 | A chave não tem a permissão exigida por esta rota ou ferramenta. Crie uma chave com essa permissão. |
spending_limit_exceeded | 403 | O pedido ultrapassa um limite da chave: por pedido (window: order) ou em 24 horas (window: 24h). details.remaining dá o que resta. Nada foi debitado. |
not_found | 404 | Recurso não encontrado, ou que não pertence à sua organização. |
method_not_allowed | 405 | Servidor MCP: GET e DELETE não são aceitos. Envie cada mensagem JSON-RPC via POST. |
organization_financial_hold | 409 | As compras estão bloqueadas na sua organização. Entre em contato conosco. Nada foi debitado. |
page_already_sold | 409 | Uma página do carrinho (inserção de link) acabou de ser vendida. Remova o item e faça o pedido de novo com uma nova Idempotency-Key. |
cart_already_ordered | 409 | Um item do carrinho já foi pedido em outra compra (painel ou outra Idempotency-Key). Leia o carrinho de novo antes de fazer o pedido com um novo valor. |
idempotency_conflict | 409 | Esta Idempotency-Key já foi usada em outra compra. Use um novo valor para uma nova compra. |
not_ready | 409 | A auditoria ainda não está pronta. Aguarde o estado ready com get_audit e depois adicione a página. |
full_pass_running | 409 | O relatório completo da auditoria ainda está em preparação. Tente novamente dentro de alguns minutos. Nada foi iniciado. |
limit_reached | 409 | A auditoria já tem 8 páginas adicionadas por si, incluindo análises em curso. Nada foi iniciado. |
already_present | 409 | Esta página já está na auditoria ou a sua análise está em curso. Nada foi iniciado. |
already_ordered | 409 | Este link planejado já foi pedido: não pode mais ser cancelado aqui. |
not_cancellable | 409 | Este link não pode ser cancelado agora. Leia-o de novo com get_plan. |
team_planned | 409 | Este link foi programado pela nossa equipa, não pela API: não pode ser cancelado aqui. Para o alterar, o titular da conta contacta o suporte. |
payload_too_large | 413 | Corpo da requisição acima de 1 MB. |
invalid_parameter | 422 | Parâmetro de consulta inválido, repetido ou desconhecido. details.fields indica cada parâmetro com erro e o motivo. |
invalid_arguments | 422 | Combinação de argumentos inválida, por exemplo nem domain nem audit_id, ou os dois. details.field indica o campo. Nada foi feito. |
invalid_domain | 422 | Domínio ou URL ilegível. Envie um nome de domínio, por exemplo example.com. |
own_network_domain | 422 | Este domínio faz parte da nossa rede de publicação: não pode ser auditado. Nada foi iniciado. |
invalid_body | 422 | Campo inválido ou desconhecido no corpo. details.fields indica cada campo com erro e o motivo. |
product_not_available_via_api | 422 | A API vende o artigo convidado e a inserção de link. Os outros produtos são pedidos pelo painel. |
image_not_uploaded | 422 | A imagem destacada precisa ter sido enviada à GetLinkFast pelo painel. |
cart_empty | 422 | Nenhum item do carrinho pode ser pedido pela API. Nada foi debitado. |
cart_invalid | 422 | Há itens incompletos ou que não estão mais disponíveis. details.items lista cada item e seus problemas. Nada foi debitado. |
invalid_pack_input | 422 | O pacote não respeita suas regras (details.reason). Nada foi debitado. |
site_unavailable | 422 | Este site não existe ou não está mais à venda. |
target_page_required | 422 | Uma inserção de link exige page_id: pegue-o na lista de páginas do site. |
target_page_not_found | 422 | Esta página não pertence a este site. |
target_page_sold | 422 | Esta página já foi vendida. |
target_page_withdrawn | 422 | Esta página não é mais oferecida. |
target_page_already_in_cart | 422 | Esta página já está no seu carrinho. |
product_unavailable | 422 | Este site não vende este produto. |
invalid_url | 422 | Endereço ilegível. Envie um endereço http(s) completo, sem credenciais nem porta. |
other_site | 422 | Esta página não está no domínio auditado. Envie uma página do mesmo site. |
invalid_keyword | 422 | Pesquisa visada demasiado longa: 120 caracteres no máximo. |
rate_limited | 429 | Requisições demais para esta chave. Aguarde o número de segundos indicado pelo cabeçalho Retry-After em HTTP, ou por details.retry_after_seconds no resultado de uma ferramenta MCP. |
audit_quota_exceeded | 429 | Esta chave já iniciou 10 auditorias nas últimas 24 horas. Nada foi iniciado: tente de novo mais tarde. |
internal_error | 500 | Erro do nosso lado, já informado à equipe. Tente de novo mais tarde: uma compra repetida com a mesma Idempotency-Key nunca é debitada duas vezes. |
engine_unavailable | 502 | O motor de auditoria está inacessível no momento. Nada foi iniciado: tente de novo mais tarde. |
packs_unavailable | 503 | Os pacotes SEO/GEO ainda não estão disponíveis. |
confirmation_expired | Ferramenta MCP | Token de confirmação expirado, ou carrinho, preços ou chave alterados desde o resumo. Nada foi debitado: chame a ferramenta de novo sem token para obter um novo resumo. |
purchase_unavailable | Ferramenta MCP | As compras pelo servidor MCP estão temporariamente indisponíveis. Nada foi debitado. Tente de novo mais tarde. |
unknown_tool | Ferramenta MCP | Ferramenta desconhecida, ou não permitida pelas permissões da chave. tools/list indica as ferramentas disponíveis. |
audit_failed | Ferramenta MCP | Esta auditoria falhou, então nenhum plano é possível. Inicie uma nova com run_audit. Nada foi feito. |
audit_not_ready | Ferramenta MCP | Esta auditoria ainda não terminou. Aguarde o estado ready com get_audit e chame plan_links de novo. Nada foi feito. |
budget_too_low | Ferramenta MCP | O orçamento mensal está abaixo do mínimo de 100 € por mês. Nada foi feito. |
start_date_too_far | Ferramenta MCP | A data de início está longe demais. A mensagem indica a última data permitida. Nada foi feito. |
too_many_pages | Ferramenta MCP | Um projeto acompanha um número limitado de páginas. Envie menos páginas novas em target_urls. Nada foi feito. |
plan_exists | Ferramenta MCP | Este domínio já tem links planejados ainda não pedidos. Os planos não se fundem: retire-os com cancel_planned_link e recomece. Nada foi feito. |
pending_proposals | Ferramenta MCP | A nossa equipa está a analisar links propostos para este domínio, por isso não é possível adicionar um plano por agora. details.count indica quantos são e details.retry_after a data a partir da qual tentar de novo (se não forem programados até lá, expiram). Caso contrário, peça ao titular da conta que contacte o suporte. Nada foi feito. |
no_links_found | Ferramenta MCP | Nenhum site do catálogo combina com estas páginas neste orçamento mensal. Tente outras páginas ou um orçamento maior. Nada foi feito. |
plan_in_progress | Ferramenta MCP | Este plano está sendo salvo agora. Chame plan_links de novo com o mesmo token em alguns segundos para ler o resultado. |
plan_outcome_unknown | Ferramenta MCP | O salvamento foi interrompido e o resultado é desconhecido. Não confirme de novo: leia o plano com get_plan. |
plan_conflict | Ferramenta MCP | O plano já não é válido tal como está: o projeto do domínio mudou, as suas datas já não caem nos meses do orçamento (que começam na confirmação) ou um dos seus sites já não está disponível para este domínio. details.reason indica qual. Nada foi escrito: chame plan_links novamente sem token para um novo resumo. |
plan_retry | Ferramenta MCP | Outra chamada com este token terminou sem salvar o plano. Chame plan_links de novo com o mesmo token para ler o resultado. |
Servidor MCP
O servidor MCP dá ao seu agente de IA as mesmas funções da API, com a mesma chave. O endereço dele: https://www.getlinkfast.com/api/mcp.
Claude Code
Um comando no seu terminal:
claude mcp add --transport http getlinkfast https://www.getlinkfast.com/api/mcp --header "Authorization: Bearer glf_live_…"Cursor
Em ~/.cursor/mcp.json. Evite o arquivo .cursor/mcp.json de um projeto: ele costuma ir parar no repositório, junto com a chave.
{
"mcpServers": {
"getlinkfast": {
"url": "https://www.getlinkfast.com/api/mcp",
"headers": {
"Authorization": "Bearer glf_live_…"
}
}
}
}Claude Desktop
O Claude Desktop não envia cabeçalhos personalizados a um servidor remoto, então não consegue transmitir sua chave. Ele vai se conectar de forma nativa com a conexão OAuth, prevista para uma próxima versão. Hoje, use o Claude Code ou o Cursor: eles enviam a chave no cabeçalho Authorization.
As ferramentas
O agente só vê as ferramentas permitidas pelas permissões da chave: uma chave sem permissão para fazer pedidos não tem nenhuma ferramenta de compra.
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
A compra em duas etapas
- O agente chama
checkoutouorder_packsemconfirmation_token: nada é debitado. Ele recebe o resumo (itens, total, saldo após o débito, limite restante) e umconfirmation_token. - Ele mostra esse resumo a você. Se você aceitar, ele chama a ferramenta de novo com o
confirmation_token: o pedido é feito e debitado. - O token vale 10 minutos. Se nesse meio-tempo o carrinho, um preço ou a chave mudar, ele é recusado (
confirmation_expired) e o agente refaz a etapa 1. Chamar de novo com o mesmo token após uma queda retorna o mesmo pedido, sem segundo débito.
Cliente escrito à mão
O servidor não tem sessão: cada mensagem JSON-RPC é enviada via POST e a resposta chega em JSON. Envie Accept: application/json, text/event-stream e Content-Type: application/json; caso contrário, o servidor responde 406. GET e DELETE respondem 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"}'Auditar e planejar
Um agente pode auditar um site e distribuir links ao longo de vários meses a partir do relatório. Quatro etapas, com as ferramentas do servidor MCP.
run_auditinicia a auditoria completa de um domínio: verificações técnicas, visibilidade no ChatGPT e sites onde um link ajudaria. Conte alguns minutos. Nada é debitado, e o relatório é liberado com a cota de auditorias da organização, quando ela tem uma. Limite: 10 auditorias por chave a cada 24 horas; pedir o mesmo domínio de novo dentro de uma hora devolve a auditoria existente.get_auditdevolve o estado e a etapa atual, depois o relatório emsummaryquando o estado passa aready. Chame-o a cada 30 a 60 segundos.list_auditslista as auditorias da organização, da mais recente para a mais antiga.plan_linksmonta um calendário a partir de uma auditoria pronta: um orçamento mensal em euros sem IVA (pelo menos 100 €), de 2 a 12 meses e, opcionalmente, uma data de início e as páginas de destino. Como numa compra, são duas etapas. Sem token nada é salvo: o agente recebe o calendário (links, datas de envio, total) e umconfirmation_tokenválido por 10 minutos. Com a sua aprovação, ele chama a ferramenta de novo com os mesmos campos e o token, e o plano é salvo.get_planacompanha cada link: página de destino, âncora, preço e estado (programado, pedido, publicado, cancelado ou com falha, com a causa da falha, por exemploinsufficient_credits).cancel_planned_linkcancela um link planeado pela API ou todos os de um domínio ainda não pedidos. Os links programados pela nossa equipa mantêm-se:team_plannedpara um link,skipped_team_plannedpara o seu número.
Nada é debitado ao salvar o plano. Cada link é debitado em créditos no dia do seu envio, ao preço relido nesse dia, na passagem diária da manhã (por volta das 06:20 UTC). Se faltar saldo nesse dia, o link não é pedido e aparece como falha em get_plan. Um link já pedido não pode mais ser cancelado.
Permissões: run_audit e cancel_planned_link exigem cart, plan_links exige purchase, e get_audit, list_audits e get_plan exigem read. Os limites de gasto da chave valem também para os links planejados.
No painel, a página Delegação mostra esses links no bloco «Links programados». O proprietário da organização pode retirar ali os links planejados pela API. Os que a nossa equipe planejou são somente leitura.
Referência
Cada rota com sua permissão e a ferramenta MCP correspondente. Parâmetros, esquemas de resposta e erros rota a rota: a descrição OpenAPI 3.1.
| Rota | Permissão | Ferramenta MCP | Função |
|---|---|---|---|
GET /sites | read | search_sites | Pesquisar no catálogo: métricas, preço, categoria, idioma, produto; ordenação e paginação. |
GET /sites/{id} | read | get_site | Um site: métricas, preços e regras de publicação. |
GET /sites/{id}/pages | read | list_site_pages | As páginas de um site abertas à inserção de link, com preço e tráfego do Google. |
GET /categories | read | list_categories | As categorias e seus ids, para o filtro category. |
GET /account | read | get_account | Organização, saldo de créditos, permissões e limites da chave, gasto em 24 horas. |
GET /credits/transactions | read | nenhuma | Histórico de créditos. |
GET /orders | read | list_orders | Seus pedidos, filtráveis por status e por data. |
GET /orders/{id} | read | get_order | Um pedido e seus itens, com o status de cada um. |
GET /cart/items | cart | get_cart | O carrinho: itens, preços atualizados e problemas que bloqueiam. |
POST /cart/items | cart | add_to_cart | Adicionar um artigo convidado ou uma inserção de link. |
PATCH /cart/items/{id} | cart | update_cart_item | Completar ou alterar o briefing de um item. |
DELETE /cart/items/{id} | cart | remove_cart_item | Remover um item. |
GET /audits/{id} | read | get_audit | Ler uma auditoria: estado, etapa atual e depois o relatório. |
POST /audits/{id}/pages | cart | add_audit_page | Adiciona uma página a impulsionar a uma auditoria pronta (8 no máximo). A análise demora de 1 a 4 minutos: acompanhe-a com get_audit. Nada é cobrado. |
POST /checkout | purchase | checkout | Fazer o pedido do carrinho com créditos. |
POST /packs/quote | read | quote_pack | Orçar um pacote SEO/GEO, sem débito. |
POST /packs/orders | purchase | order_pack | Pedir um pacote SEO/GEO com créditos. |
| Somente servidor MCP | cart | run_audit | Iniciar a auditoria completa de um domínio. Nada é debitado. |
| Somente servidor MCP | read | list_audits | Listar as auditorias da organização, da mais recente para a mais antiga. |
| Somente servidor MCP | purchase | plan_links | Planejar links de 2 a 12 meses a partir de uma auditoria, em duas etapas. Nada é debitado ao salvar. |
| Somente servidor MCP | read | get_plan | Ler os links planejados de um domínio: data de envio e estado de cada um. |
| Somente servidor MCP | cart | cancel_planned_link | Cancelar um link planejado ou todos os de um domínio ainda não pedidos. |
Uma dúvida sobre a API? Escreva para nós, uma pessoa da equipe responde.
