GetLinkFastGetLinkFast

Documentación para desarrolladores

API y servidor MCP de GetLinkFast

Busque sitios, llene su carrito y haga pedidos con créditos sin abrir el panel: desde un script, un escenario de Make o n8n, o un agente de IA como Claude o Cursor. La API y el servidor MCP usan la misma clave y devuelven el mismo JSON.

Para qué sirve

  • Agencias y equipos SEO: conecte sus herramientas internas y sus tableros de seguimiento a su cuenta. Catálogo, carrito, pedidos y estados se leen en JSON.
  • Agentes de IA: pida a Claude Code o Cursor «encuéntrame 5 sitios de finanzas con DR 40+ y haz el pedido». El agente busca, le muestra el resumen y solo hace el pedido con su aprobación.
  • Make, n8n, Zapier: basta con un módulo HTTP y una clave.

La API vende el artículo de invitado (guest_post), la inserción de enlace (link_insertion) y los packs SEO/GEO, solo con créditos. La compra de créditos y las demás ofertas siguen en el panel.

Crear una clave

  1. Abra Panel → Acceso API.
  2. Asigne un nombre a la clave (por ejemplo «Agente Claude» o «Informes Make») y elija sus permisos. En una clave que puede hacer pedidos, puede fijar un tope por pedido y un tope en 24 horas.
  3. Copie la clave. Empieza por glf_live_ y solo se muestra una vez: solo guardamos una huella de ella.
  4. Envíela en la cabecera de cada solicitud: Authorization: Bearer glf_live_…

Como máximo 10 claves activas por organización. Una clave revocada deja de funcionar de inmediato, al igual que las claves de un miembro que abandona la organización. Mantenga la clave fuera de sus repositorios de código: quien la tenga actúa en nombre de su organización.

Los permisos de una clave

Cada clave lleva uno o varios permisos. Una solicitud sin el permiso necesario recibe 403 insufficient_scope, y un agente de IA solo ve las herramientas permitidas.

PermisoDa acceso aQuién puede concederlo
readCatálogo, categorías, cuenta y saldo, historial de créditos, pedidos, presupuestos de packs.Siempre incluido.
cartAñadir, modificar y quitar líneas del carrito.Cualquier miembro de la organización.
purchasePedir el carrito o un pack, con créditos. Incluye el carrito.Solo el propietario de la organización.

Inicio rápido

Todas las rutas empiezan por https://www.getlinkfast.com/api/v1. Mantenga el www: la dirección sin www redirige, y un cliente HTTP deja de enviar la cabecera Authorization tras una redirección.

Los importes están en euros sin IVA. Las respuestas son JSON, con campos en snake_case.

1. Leer su cuenta y su saldo
curl https://www.getlinkfast.com/api/v1/account \
  -H "Authorization: Bearer glf_live_…"
2. Buscar sitios: DR 40 o más, en francés, artículo de invitado
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. Añadir un artículo de invitado al carrito
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"}'

Sustituya site_id por el id de un sitio del paso 2. No envíe nunca un precio: lo calcula el servidor.

4. Pedir el carrito con créditos
curl -X POST https://www.getlinkfast.com/api/v1/checkout \
  -H "Authorization: Bearer glf_live_…" \
  -H "Idempotency-Key: order-2026-10-14-001"

La respuesta da el id del pedido, el importe cargado y su saldo restante. Después, siga su avance con GET /orders/{id}.

Pedir con créditos

La API pide solo con créditos y nunca inicia un pago con tarjeta. Los créditos se recargan en el panel.

Un pedido toma las líneas guest_post y link_insertion del carrito. Las demás líneas, añadidas desde el panel, se quedan en el carrito y se listan en skipped_items.

Sin tope por defecto: su saldo es el único límite. En una clave que puede hacer pedidos, fije un tope por pedido y un tope en 24 horas móviles. Un pedido que los supere se rechaza (403 spending_limit_exceeded, con lo que queda disponible), sin cargo.

Saldo insuficiente: 402 insufficient_credits, con el importe que falta y el enlace a la página Créditos, para transmitirlo a alguien de su equipo. No se carga nada.

Después, todo funciona como desde el panel: email de confirmación y seguimiento en la pantalla Pedidos, donde el pedido lleva el nombre de la clave que lo hizo.

La cabecera Idempotency-Key

  • Obligatoria en POST /checkout y POST /packs/orders: de 8 a 128 caracteres ASCII imprimibles, sin espacios. Sin ella: 400 idempotency_key_required.
  • Un valor equivale a una intención de compra. Reenviar el mismo valor devuelve el pedido original (200, "replayed": true) sin un segundo cargo, aunque el carrito haya cambiado desde entonces.
  • Tras un tiempo de espera agotado o un corte de red, reintente con el mismo valor: no pagará dos veces.
  • Para una nueva compra, genere un nuevo valor, por ejemplo un UUID.
  • Tanto en POST /checkout como en POST /packs/orders, un valor que ya sirvió para otra compra se rechaza: 409 idempotency_conflict, sin cargo. Para un pack, el mismo valor enviado con otro contenido también se rechaza.
  • En el lado MCP, el token de confirmación cumple esta función: no tiene nada que generar.

Límites

  • 120 solicitudes por minuto y por clave para la lectura, y otras tantas, por separado, para el carrito: una no consume de la otra.
  • 10 llamadas por minuto y por clave a las rutas o herramientas de compra — reintentos, rechazos y paso de resumen MCP incluidos.
  • 300 solicitudes HTTP por minuto y por clave en el servidor MCP. Cada herramienta llamada cuenta además en el límite de su permiso.
  • Por encima: 429 rate_limited. La espera, en segundos, la indica la cabecera Retry-After en HTTP, y details.retry_after_seconds en el resultado de una herramienta MCP.
  • Como máximo 100 resultados por página (page_size).
  • Cuerpo de la solicitud: 1 MB como máximo.

Códigos de error

Todos los errores tienen la misma forma. Compruebe code: es estable. message está en inglés y se dirige al desarrollador; details indica el campo erróneo o los importes.

Ejemplo: saldo insuficiente
{
  "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ódigoHTTPQué significa
invalid_json400El cuerpo de la solicitud no es un JSON legible. Revise la sintaxis y la cabecera Content-Type: application/json.
idempotency_key_required400Cabecera Idempotency-Key ausente o mal formada en una ruta de compra. Envíe un valor de 8 a 128 caracteres.
invalid_api_key401Clave ausente, mal formada, desconocida o revocada, o creada por un miembro que abandonó la organización. Revise la cabecera Authorization: Bearer glf_live_….
insufficient_credits402Saldo insuficiente. details.missing_amount da el importe que falta, details.credits_url la página donde recargar. No se ha cargado nada.
insufficient_scope403La clave no tiene el permiso que exige esta ruta o herramienta. Cree una clave con ese permiso.
spending_limit_exceeded403El pedido supera un tope de la clave: por pedido (window: order) o en 24 horas (window: 24h). details.remaining da lo que queda. No se ha cargado nada.
not_found404Recurso no encontrado, o que no pertenece a su organización.
method_not_allowed405Servidor MCP: GET y DELETE no se aceptan. Envíe cada mensaje JSON-RPC como POST.
organization_financial_hold409Las compras están bloqueadas en su organización. Contáctenos. No se ha cargado nada.
page_already_sold409Una página del carrito (inserción de enlace) acaba de venderse. Quite la línea y vuelva a pedir con una nueva Idempotency-Key.
cart_already_ordered409Una línea del carrito ya se pidió en otra compra (panel u otra Idempotency-Key). Vuelva a leer el carrito antes de pedir con un nuevo valor.
idempotency_conflict409Esta Idempotency-Key ya se usó para otra compra. Use un nuevo valor para una nueva compra.
not_ready409La auditoría aún no está lista. Espere al estado ready con get_audit y después añada la página.
full_pass_running409El informe completo de la auditoría aún se está preparando. Vuelva a intentarlo en unos minutos. No se ha iniciado nada.
limit_reached409La auditoría ya tiene 8 páginas añadidas por usted, incluidos los análisis en curso. No se ha iniciado nada.
already_present409Esta página ya está en la auditoría o su análisis está en curso. No se ha iniciado nada.
already_ordered409Este enlace planificado ya está pedido: ya no se puede cancelar aquí.
not_cancellable409Este enlace no se puede cancelar por ahora. Vuelva a leerlo con get_plan.
team_planned409Este enlace lo programó nuestro equipo, no la API: no se puede cancelar aquí. Para cambiarlo, el propietario de la cuenta contacta con soporte.
payload_too_large413Cuerpo de la solicitud de más de 1 MB.
invalid_parameter422Parámetro de consulta inválido, repetido o desconocido. details.fields nombra cada parámetro erróneo y el motivo.
invalid_arguments422Combinación de argumentos no válida, por ejemplo ni domain ni audit_id, o los dos. details.field nombra el campo. No se ha hecho nada.
invalid_domain422Dominio o URL ilegible. Envíe un nombre de dominio, por ejemplo example.com.
own_network_domain422Este dominio forma parte de nuestra red de publicación: no se puede auditar. No se ha iniciado nada.
invalid_body422Campo inválido o desconocido en el cuerpo. details.fields nombra cada campo erróneo y el motivo.
product_not_available_via_api422La API vende el artículo de invitado y la inserción de enlace. Los demás productos se piden desde el panel.
image_not_uploaded422La imagen destacada debe haberse subido a GetLinkFast desde el panel.
cart_empty422Ninguna línea del carrito se puede pedir por la API. No se ha cargado nada.
cart_invalid422Algunas líneas están incompletas o ya no están disponibles. details.items lista cada línea y sus problemas. No se ha cargado nada.
invalid_pack_input422El pack no cumple sus reglas (details.reason). No se ha cargado nada.
site_unavailable422Este sitio no existe o ya no está a la venta.
target_page_required422Una inserción de enlace requiere page_id: tómelo de la lista de páginas del sitio.
target_page_not_found422Esta página no pertenece a este sitio.
target_page_sold422Esta página ya se ha vendido.
target_page_withdrawn422Esta página ya no se ofrece.
target_page_already_in_cart422Esta página ya está en su carrito.
product_unavailable422Este sitio no vende este producto.
invalid_url422Dirección ilegible. Envíe una dirección http(s) completa, sin credenciales ni puerto.
other_site422Esta página no está en el dominio auditado. Envíe una página del mismo sitio.
invalid_keyword422Búsqueda objetivo demasiado larga: 120 caracteres como máximo.
rate_limited429Demasiadas solicitudes para esta clave. Espere el número de segundos que indica la cabecera Retry-After en HTTP, o details.retry_after_seconds en el resultado de una herramienta MCP.
audit_quota_exceeded429Esta clave ya ha lanzado 10 auditorías en las últimas 24 horas. No se ha lanzado nada: vuelva a intentarlo más tarde.
internal_error500Error de nuestra parte, ya notificado al equipo. Vuelva a intentarlo más tarde: una compra reintentada con la misma Idempotency-Key nunca se carga dos veces.
engine_unavailable502El motor de auditoría no responde por el momento. No se ha lanzado nada: vuelva a intentarlo más tarde.
packs_unavailable503Los packs SEO/GEO aún no están disponibles.
confirmation_expiredHerramienta MCPToken de confirmación caducado, o carrito, precios o clave modificados desde el resumen. No se ha cargado nada: vuelva a llamar a la herramienta sin token para obtener un nuevo resumen.
purchase_unavailableHerramienta MCPLas compras por el servidor MCP no están disponibles por el momento. No se ha cargado nada. Vuelva a intentarlo más tarde.
unknown_toolHerramienta MCPHerramienta desconocida, o no permitida por los permisos de la clave. tools/list da las herramientas disponibles.
audit_failedHerramienta MCPEsta auditoría ha fallado, así que no es posible ningún plan. Lance una nueva con run_audit. No se ha hecho nada.
audit_not_readyHerramienta MCPEsta auditoría no ha terminado. Espere al estado ready con get_audit y vuelva a llamar a plan_links. No se ha hecho nada.
budget_too_lowHerramienta MCPEl presupuesto mensual está por debajo del mínimo de 100 € al mes. No se ha hecho nada.
start_date_too_farHerramienta MCPLa fecha de inicio es demasiado lejana. El mensaje indica la última fecha permitida. No se ha hecho nada.
too_many_pagesHerramienta MCPUn proyecto sigue un número limitado de páginas. Envíe menos páginas nuevas en target_urls. No se ha hecho nada.
plan_existsHerramienta MCPEste dominio ya tiene enlaces planificados que aún no se han pedido. Los planes no se fusionan: retírelos con cancel_planned_link y empiece de nuevo. No se ha hecho nada.
pending_proposalsHerramienta MCPNuestro equipo está revisando enlaces propuestos para este dominio, así que por ahora no se puede añadir ningún plan. details.count indica cuántos son y details.retry_after la fecha a partir de la cual volver a intentarlo (si no se programan antes, caducan). Si no, pida al propietario de la cuenta que contacte con soporte. No se ha hecho nada.
no_links_foundHerramienta MCPNingún sitio del catálogo encaja con estas páginas con este presupuesto mensual. Pruebe con otras páginas o un presupuesto mayor. No se ha hecho nada.
plan_in_progressHerramienta MCPEste plan se está guardando ahora mismo. Vuelva a llamar a plan_links con el mismo token en unos segundos para leer el resultado.
plan_outcome_unknownHerramienta MCPEl guardado se interrumpió y se desconoce su resultado. No confirme de nuevo: lea el plan con get_plan.
plan_conflictHerramienta MCPEl plan ya no es válido tal cual: el proyecto del dominio cambió, sus fechas ya no caen dentro de los meses del presupuesto (que empiezan con la confirmación) o uno de sus sitios ya no está disponible para este dominio. details.reason indica cuál. No se escribió nada: vuelva a llamar a plan_links sin token para obtener un nuevo resumen.
plan_retryHerramienta MCPOtra llamada con este token terminó sin guardar el plan. Vuelva a llamar a plan_links con el mismo token para leer el resultado.

Servidor MCP

El servidor MCP da a su agente de IA las mismas funciones que la API, con la misma clave. Su dirección: https://www.getlinkfast.com/api/mcp.

Claude Code

Un comando en su terminal:

Terminal — Claude Code
claude mcp add --transport http getlinkfast https://www.getlinkfast.com/api/mcp --header "Authorization: Bearer glf_live_…"

Cursor

En ~/.cursor/mcp.json. Evite el archivo .cursor/mcp.json de un proyecto: a menudo acaba en el repositorio, con la clave.

~/.cursor/mcp.json
{
  "mcpServers": {
    "getlinkfast": {
      "url": "https://www.getlinkfast.com/api/mcp",
      "headers": {
        "Authorization": "Bearer glf_live_…"
      }
    }
  }
}

Claude Desktop

Claude Desktop no envía cabeceras personalizadas a un servidor remoto, así que no puede transmitir su clave. Se conectará de forma nativa con la conexión OAuth, prevista en una próxima versión. Hoy, use Claude Code o Cursor: envían la clave en la cabecera Authorization.

Las herramientas

El agente solo ve las herramientas permitidas por los permisos de la clave: una clave sin permiso para pedir no tiene ninguna herramienta de compra.

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

La compra en dos pasos

  1. El agente llama a checkout o order_pack sin confirmation_token: no se carga nada. Recibe el resumen (líneas, total, saldo tras el cargo, tope restante) y un confirmation_token.
  2. Le muestra ese resumen. Si usted acepta, vuelve a llamar a la herramienta con el confirmation_token: el pedido se realiza y se carga.
  3. El token vale 10 minutos. Si mientras tanto cambia el carrito, un precio o la clave, se rechaza (confirmation_expired) y el agente repite el paso 1. Volver a llamar con el mismo token tras un corte devuelve el mismo pedido, sin segundo cargo.

Cliente escrito a mano

El servidor no tiene sesión: cada mensaje JSON-RPC se envía como POST y la respuesta llega en JSON. Envíe Accept: application/json, text/event-stream y Content-Type: application/json; si no, el servidor responde 406. GET y DELETE responden 405.

Listar las herramientas de su clave
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 y planificar

Un agente puede auditar un sitio y repartir enlaces a lo largo de varios meses a partir del informe. Cuatro pasos, con las herramientas del servidor MCP.

  1. run_audit lanza la auditoría completa de un dominio: controles técnicos, visibilidad en ChatGPT y sitios donde un enlace ayudaría. Cuente unos minutos. No se carga nada, y el informe se desbloquea con la cuota de auditorías de la organización si la tiene. Límite: 10 auditorías por clave y por 24 horas; si se pide el mismo dominio otra vez en la hora siguiente, se devuelve la auditoría existente.
  2. get_audit devuelve el estado y el paso en curso, y después el informe en summary cuando el estado pasa a ready. Llámela cada 30 a 60 segundos. list_audits lista las auditorías de la organización, de la más reciente a la más antigua.
  3. plan_links prepara un calendario a partir de una auditoría lista: un presupuesto mensual en euros sin IVA (al menos 100 €), de 2 a 12 meses y, opcionalmente, una fecha de inicio y las páginas objetivo. Como en una compra, hay dos pasos. Sin token no se guarda nada: el agente recibe el calendario (enlaces, fechas de envío, total) y un confirmation_token válido 10 minutos. Con su aprobación, vuelve a llamar a la herramienta con los mismos campos y el token, y el plan se guarda.
  4. get_plan sigue cada enlace: página de destino, ancla, precio y estado (programado, pedido, publicado, cancelado o fallido, con la causa del fallo, por ejemplo insufficient_credits). cancel_planned_link cancela un enlace planificado por la API o todos los de un dominio que aún no se han pedido. Los enlaces programados por nuestro equipo se mantienen: team_planned para un enlace, skipped_team_planned para su número.

Al guardar el plan no se carga nada. Cada enlace se carga en créditos el día de su envío, al precio releído ese día, en el pase diario de la mañana (hacia las 06:20 UTC). Si falta saldo ese día, el enlace no se pide y aparece como fallido en get_plan. Un enlace ya pedido no se puede cancelar.

Permisos: run_audit y cancel_planned_link necesitan cart, plan_links necesita purchase, y get_audit, list_audits y get_plan necesitan read. Los topes de gasto de la clave se aplican a los enlaces planificados.

En el panel, la página Delegación muestra estos enlaces en el bloque «Enlaces programados». El propietario de la organización puede retirar ahí los enlaces planificados por la API. Los que planifica nuestro equipo son solo de lectura.

Referencia

Cada ruta con su permiso y la herramienta MCP que le corresponde. Parámetros, esquemas de respuesta y errores ruta por ruta: la descripción OpenAPI 3.1.

RutaPermisoHerramienta MCPFunción
GET /sitesreadsearch_sitesBuscar en el catálogo: métricas, precio, categoría, idioma, producto; orden y paginación.
GET /sites/{id}readget_siteUn sitio: métricas, precios y reglas de publicación.
GET /sites/{id}/pagesreadlist_site_pagesLas páginas de un sitio abiertas a la inserción de enlace, con su precio y su tráfico de Google.
GET /categoriesreadlist_categoriesLas categorías y sus id, para el filtro category.
GET /accountreadget_accountOrganización, saldo de créditos, permisos y topes de la clave, gasto en 24 horas.
GET /credits/transactionsreadningunaHistorial de créditos.
GET /ordersreadlist_ordersSus pedidos, filtrables por estado y por fecha.
GET /orders/{id}readget_orderUn pedido y sus líneas, con su estado.
GET /cart/itemscartget_cartEl carrito: líneas, precios actualizados y problemas que bloquean.
POST /cart/itemscartadd_to_cartAñadir un artículo de invitado o una inserción de enlace.
PATCH /cart/items/{id}cartupdate_cart_itemCompletar o modificar el brief de una línea.
DELETE /cart/items/{id}cartremove_cart_itemQuitar una línea.
GET /audits/{id}readget_auditLeer una auditoría: estado, paso en curso y después el informe.
POST /audits/{id}/pagescartadd_audit_pageAñade una página a impulsar a una auditoría lista (8 como máximo). El análisis tarda de 1 a 4 minutos: siga su estado con get_audit. No se cobra nada.
POST /checkoutpurchasecheckoutPedir el carrito con créditos.
POST /packs/quotereadquote_packPresupuestar un pack SEO/GEO, sin cargo.
POST /packs/orderspurchaseorder_packPedir un pack SEO/GEO con créditos.
Solo servidor MCPcartrun_auditLanzar la auditoría completa de un dominio. No se carga nada.
Solo servidor MCPreadlist_auditsListar las auditorías de la organización, de la más reciente a la más antigua.
Solo servidor MCPpurchaseplan_linksPlanificar enlaces de 2 a 12 meses a partir de una auditoría, en dos pasos. Al guardar no se carga nada.
Solo servidor MCPreadget_planLeer los enlaces planificados de un dominio: fecha de envío y estado de cada uno.
Solo servidor MCPcartcancel_planned_linkCancelar un enlace planificado o todos los de un dominio que aún no se han pedido.

¿Una pregunta sobre la API? Escríbanos, una persona del equipo le responde.