CrustAPI
Obtén datos de LinkedIn y Google en segundos. Paga solo por los resultados.
Documentación
CrustAPI
Obtén datos de LinkedIn y Google en segundos. Paga solo por resultados
Encuentra negocios, investiga personas y empresas, o lleva resultados de búsqueda a tu aplicación, hoja de cálculo o agente de IA. Usa la API o el panel de control. Pruébalo gratis. No se requiere tarjeta de crédito. Sitio: https://crustapi.com · Documentación: https://crustapi.com/docs · Precios: https://crustapi.com/pricing
La promesa
Obtén los datos que necesitas a través de la API o el panel de control. Comienza con la asignación gratuita y luego agrega fondos cuando necesites más uso. El uso comprado nunca caduca. Consulta https://crustapi.com/pricing para la asignación gratuita y las tarifas de los endpoints.
El problema que resuelve
Obtener datos de Google generalmente falla por una de tres razones:
- Hacer scraping por tu cuenta significa proxies, CAPTCHAs y analizadores que se rompen silenciosamente cada vez que Google cambia su marcado. Los datos son gratuitos; tu tiempo de ingeniería no lo es.
- Las APIs oficiales son costosas, tienen límites de velocidad y cubren una fracción de lo que Google realmente muestra.
- Una canalización de datos necesita costos claros y respuestas útiles. CrustAPI no cobra por resultados vacíos, y el uso comprado nunca caduca.
CrustAPI es la versión aburrida que simplemente funciona: una API alojada con un endpoint para todo el menú de Google, facturada solo cuando tiene éxito. Cuando Google rompe algo, ese es nuestro problema, no el tuyo.
Para quién es
- Desarrolladores que necesitan datos en vivo de Google en una aplicación, una canalización o un producto, sin ejecutar infraestructura de scraping.
- Especialistas en marketing y equipos de generación de leads que quieren listas de negocios con números de teléfono, sitios web, calificaciones y conteos de reseñas, como tabla o CSV, sin necesidad de código.
- Agentes y asistentes de IA: un servidor MCP de primera clase, una CLI, una especificación OpenAPI y pagos x402 para que un agente pueda comprar sus propios créditos sin intervención humana.
La API
Un endpoint, un parámetro selecciona la superficie:
GET https://crustapi.com/v1/search?type=<surface>&q=<query>
Header: x-api-key: key_live_xxxx
Superficies (type=): web, maps, places, news, shopping, images, videos, scholar, patents, autocomplete, webpage, reviews, lens.
lens es búsqueda inversa de imágenes: pasa url=<image url> en lugar de q y obtén las páginas donde aparece esa imagen.
Parámetros comunes: q (consulta), gl (país, por ejemplo, us), hl (idioma, por ejemplo, en), location (para mapas/lugares, por ejemplo, "Miami, FL"), limit (solo mapas: negocios a devolver, predeterminado 20, máximo 100), num (solo reseñas: por página, máximo 50), page.
La forma JSON es estable y coincide con el formato que la mayoría de las integraciones SERP existentes ya analizan, por lo que cambiar generalmente es solo un cambio de URL base. Especificación legible por máquina: https://crustapi.com/v1/openapi.json
Datos públicos de LinkedIn
Un segundo endpoint devuelve datos públicos de LinkedIn, el tipo que cualquiera puede ver sin iniciar sesión, como JSON estructurado:
GET https://crustapi.com/v1/linkedin?type=<surface>&url=<profile-or-company-url>
Header: x-api-key: key_live_xxxx
Superficies (type=):
profile: un perfil público de persona por URL. Nombre, titular, ubicación, información y empleo, educación y habilidades disponibles públicamente. La cobertura de campos depende de lo que la persona haga público; no se garantiza un historial laboral completo. Los títulos y fechas no disponibles permanecen vacíos. Un título derivado de un titular público explícito con un empleador coincidente se identifica mediantetitleSource: "headline".websitesconserva enlaces públicos de{url, label}, junto con el campo existentewebsite.experienceAvailabilityusareturnedPositionspara el número de filas de empleo devueltas,positionsWithTitlepara títulos de origen,positionsWithDerivedTitlepor separado para títulos derivados del titular,positionsWithStartDateypositionsWithEndDatepara filas con años conocidos, ypositionsWithDescriptionpara descripciones. Estos conteos describen registros devueltos, no el historial laboral completo;experienceStatesigue disponible.refresh: una verificación rápida de frescura para un perfil por URL. Devuelve nombre,headlineyheadlineSourcepúblicos cuando están disponibles, uncurrentTitlecompatible contitleSource, empresa y escuela actuales (con identificadores numéricos), y si el perfil es accesible. Diseñado para mantener actualizada una base de datos de candidatos o contactos a escala, y no se factura cuando el perfil no es accesible.company: una página de empresa por URL. Nombre, industria, tamaño, conteo de empleados de LinkedIn, sede, sitio web, año de fundación, especialidades, todas las direcciones de oficinas visibles en la página obtenida, páginas similares y afiliadas con nombre de origen, y unemployeeSampleparcial con{name, profileUrl, source: "company_public_page"}. Los afiliados incluyen páginas de empresa y de exhibición conpageType; no son necesariamente subsidiarias.employees=trueaún agrega una muestra de búsqueda separada enemployees. Las secciones públicas de perfil como certificaciones, cursos, voluntariado, organizaciones, publicaciones, proyectos, recomendaciones, honores y sitios web también se conservan enschema=scrapin. Los campos compatibles existentes de empleo/educación siguen disponibles, con etiquetas de origen, descripciones de educación y logotipos cuando se proporcionan. Las secciones faltantes no implican que el historial esté completo.
El campo memorializado de un perfil es verdadero solo cuando la etiqueta y el banner públicos de recuerdo de LinkedIn identifican ese perfil. Nulo significa que esto no se estableció; no significa que la cuenta esté activa o que su propietario esté vivo. memorializedSource identifica la evidencia. Las verificaciones de actualización solo verifican una página de perfil ya obtenida para su trabajo existente, por lo que una respuesta solo con insignia mantiene estos campos nulos. No se realiza ninguna solicitud adicional para este marcador. La memorialización no cambia profileState y no distingue cuentas cerradas de cuentas hibernadas.
Los featuredProducts de la empresa contienen las tarjetas de producto mostradas en la página pública de esa empresa, con el enlace del producto publicado, categoría, descripción e imágenes cuando están presentes. Es una selección mostrada, no un catálogo completo ni evidencia de una suscripción Premium.
Los trabajos pueden nombrar un empleador sin vincular a una página de empresa de LinkedIn. En ese caso, se devuelve el nombre de la empresa y companyUrl permanece nulo. Cuando se publica un reclutador, jobPoster contiene nombre, titular y URL; los resultados indexados también conservan sus alias compactos. La página pública completa del trabajo puede proporcionar datePosted, validThrough, educationRequirements, experienceRequirements, jobLocation y sourceJobIdentifier. Estos campos opcionales se devuelven solo cuando la respuesta ya obtenida contiene metadatos JobPosting coincidentes, identificados por jobMetadataSource. No se realiza ninguna solicitud adicional para obtenerlos. El fragmento invitado más rápido y los resultados indexados pueden omitirlos. validThrough es la fecha de validez publicada por la fuente, no una fecha de cierre confirmada. sourceJobIdentifier se conserva por separado del jobPostingId de LinkedIn.
El publishedContacts de la empresa contiene detalles de contacto publicados actualmente, evidencia y URL de origen, no contactos primarios verificados. Las etiquetas de oficina addressLines, directionsUrl y explícitas isPrimary conservan la información de dirección publicada sin adivinar coordenadas. employeeCount es distinto de la banda companySize. employeeSearchCompanyIds describe el alcance organizacional del enlace de búsqueda de empleados de la página, no identidades alternativas para la empresa; jobSearchUrl es el enlace de trabajos publicado, no un conteo de trabajos.
profileState describe la legibilidad pública y el estado de la URL del perfil. accessible significa datos públicos devueltos; exists_not_public significa evidencia de perfil reconocida sin datos públicos; not_resolvable significa que esta URL no se resolvió; unknown significa evidencia insuficiente. La configuración exacta de la cuenta y la eliminación permanente no se pueden inferir. Conserva los registros existentes cuando el estado es desconocido y no trates un empleador faltante como prueba de un cambio de trabajo. La actualización member=true devuelve un ID de miembro numérico vinculado a la fuente cuando está disponible. El resolvedUrl opcional identifica un destino de redirección actual solo cuando la identidad del perfil devuelto coincide; los campos de URL solicitados permanecen sin cambios. La detección automática de URL de perfil renombradas no está incluida. Los resultados no disponibles de Profile/Refresh no se cobran.
posts: publicaciones públicas recientes para un perfil o empresa.jobs: una oferta de trabajo por URL, o una búsqueda de trabajos. Título, empresa, ubicación, salario cuando se muestra, fecha de publicación y si es de solicitud fácil.search(aliaspeople): búsqueda de personas. Pasakeywordscon un nombre (por ejemplo, "jane smith"), una profesióntitle=(por ejemplo,title=accountants), o cualquier combinación de filtros:location(cualquier ciudad, estado o país),company,school,industry,companySize,pastCompany, y rangos de seguidores/conexiones/conteo de experiencia (followersMin/followersMax,connectionsMin/connectionsMax,expCountMin/expCountMax), más exclusiones detitleExclude/companyExclude/locationExclude. Los resultados incluyen ubicación, empresa actual, conteos de seguidores y conexiones, educación y empresas anteriores. Agregaenrich=truepara devolver el perfil completo de cada persona en la misma llamada.
La facturación depende de la operación. Los resultados vacíos son gratuitos. Consulta https://crustapi.com/pricing y https://crustapi.com/docs para tarifas y facturación de solicitudes.
Ejemplo:
curl "https://crustapi.com/v1/linkedin?type=profile&url=https://www.linkedin.com/in/williamhgates" \
-H "x-api-key: key_live_xxxx"
Ejemplo:
curl "https://crustapi.com/v1/search?type=web&q=best coffee in austin" \
-H "x-api-key: key_live_xxxx"
Listas masivas y webhooks
Envía una lista completa de URLs de LinkedIn en una sola solicitud en lugar de una a la vez. El lote funciona para los tipos
refresh, person (también conocido como profile), company y posts — usa URLs /in/ para persona,
actualización y publicaciones, y URLs /company/ para empresa:
POST https://crustapi.com/v1/linkedin/batch
body: {"type": "company", "urls": ["...", "..."]}
Hasta 100 URLs se devuelven en un solo viaje de ida y vuelta, resultados en el mismo orden en que los enviaste. Cada fila lleva datos o su propio error, por lo que una fila muerta nunca falla el resto, y un bloqueo transitorio se reintenta automáticamente. Las filas que vuelven como no accesibles son gratuitas.
Para hasta 10,000 URLs, agrega una URL de "webhook" al cuerpo. La API responde inmediatamente con un jobId (HTTP 202), ejecuta el lote en segundo plano y envía por POST los resultados completos a tu webhook cuando termina (el encabezado X-Crustapi-Job lleva el jobId). Verifica el progreso en cualquier momento:
GET https://crustapi.com/v1/linkedin/batch?id=<jobId>
La llamada de estado devuelve solo conteos. Los resultados se entregan a tu webhook y no se conservan.
Precios y saldo
- Cada cuenta elegible recibe $6 de uso gratuito mensual. Los fondos pagados nunca caducan.
- Los depósitos comienzan en $10. Cada depósito califica por separado y mantiene sus tarifas hasta que se gasta.
- Los fondos gratuitos se gastan primero, luego los fondos pagados aplicables más baratos, los más antiguos primero en caso de empate.
- Precios de lista por 1,000 unidades de facturación: Búsqueda de Google $1.00; Google Maps $1.96; perfiles de LinkedIn $4.00 (búsqueda de correo electrónico laboral incluida); empresas $3.00; publicaciones $6.00; Personas, Trabajos y Actualización de LinkedIn $1.96.
- Maps factura por negocio, Actualización por perfil accesible, y Personas enriquecidas por perfil completo a la tarifa de lectura de LinkedIn. Otras llamadas facturan por solicitud exitosa. Las llamadas vacías y fallidas cuestan cero; el correo electrónico laboral está incluido.
- Tabla completa de depósitos: https://crustapi.com/pricing. El depósito de $149 da $0.76 de Búsqueda, $1.49 de Maps/Búsqueda/Actualización y $3.00 de perfiles, $2.50 de empresas y $4.50 de publicaciones por 1,000. El depósito más grande da $0.20, $0.40 y $1.50 respectivamente.
- Usa billing.chargedUsd y wallet.availableUsd para contabilidad en USD. Los campos numéricos de compatibilidad de créditos siguen siendo conteos.
- El uso comprado existente está protegido. Las cuentas que aún muestran créditos y la ruta separada de agente x402 conservan sus términos actuales hasta la conversión.
Servidor MCP (para asistentes de IA)
Dale a Claude Desktop, Cursor, Cline o cualquier cliente MCP datos en vivo de Google y LinkedIn público. Paquete: crustapi-mcp en npm.
{
"mcpServers": {
"crustapi": {
"command": "npx",
"args": ["-y", "crustapi-mcp"],
"env": { "CRUSTAPI_API_KEY": "key_live_xxxx" }
}
}
}
Cuatro herramientas: search (todas las superficies de Google detrás de una herramienta), scrape_webpage (cualquier URL como texto limpio para RAG), get_reviews (reseñas de Google para un negocio) y linkedin (perfiles públicos de LinkedIn, empresas, publicaciones, trabajos y búsqueda de personas detrás de una herramienta).
Integraciones
CrustAPI es un endpoint HTTP, por lo que se integra en cualquier herramienta que pueda llamar a una URL. La configuración para las comunes está en https://crustapi.com/docs#integrations.
- Clay: añade una columna de enriquecimiento de API HTTP que apunte a
/v1/searchcon tu clave enx-api-key, y luego mapea campos como website, phone y reviewsCount en tu tabla. - n8n, Make, Zapier, Retool: una solicitud GET a
/v1/searchdevuelve JSON limpio para mapear a campos; no se necesita SDK. - Frameworks de agentes de IA: usa la API HTTP, el paquete LangChain o el servidor MCP a través de un cliente compatible. Los requisitos de configuración dependen del framework.
CLI
npm install -g crustapi-cli
export CRUSTAPI_API_KEY=key_live_xxxx
crust "dentists in miami"
crust search coffee --type maps --location "Austin, TX" --limit 20
crust search plumbers --type maps --csv > leads.csv
crust linkedin https://www.linkedin.com/in/williamhgates
crust linkedin "head of growth fintech" --enrich
JSON a stdout (se canaliza limpiamente a jq), línea de estado a stderr, --csv para CSV.
Pagos de agentes (x402)
Un agente de IA puede comprar sus propios créditos sin registro, tarjeta o humano. CrustAPI implementa el protocolo x402 en Base (USDC, EIP-3009 sin gas):
- El agente llama a
POST https://crustapi.com/v1/x402/topup?pack=agentsin clave. - El servidor responde
402 Payment Requiredcon los requisitos de x402 v2 (red eip155:8453, USDC). - La billetera del agente firma una autorización USDC sin gas y reintenta.
- El servidor liquida en cadena y devuelve
{ apiKey, credits }, una clave real cargada con créditos. El paqueteagentcuesta $5 por 2,500 créditos.
Qué lo hace diferente
- Solo pagas por los resultados que regresan. Las búsquedas vacías son gratuitas, siempre.
- Los fondos pagados nunca expiran.
- Todo el menú de Google detrás de un solo endpoint y un solo esquema, no un producto separado por superficie.
- La búsqueda de imágenes puede devolver múltiples imágenes en una sola respuesta; la disponibilidad depende de la consulta.
- Diseñado para ambas mitades de un equipo: una API y CLI para desarrolladores, y un panel donde un no desarrollador puede escribir una consulta, obtener una tabla y descargar el CSV.
- Nativo para agentes desde el primer día: servidor MCP, especificación OpenAPI y x402 para que el software pueda descubrir, llamar y pagar por sí mismo.
Qué no es
- No es un proveedor de proxy ni un framework de scraping que alojes. No hay nada que ejecutar, parchear o mantener.
- No es una suscripción. No hay tarifa mensual; agregas fondos cuando los necesitas.
- La frescura depende de la operación. Las lecturas de perfil de LinkedIn y URL de empresa obtienen páginas fuente en vivo. Algunos metadatos de empresa se unen de registros observados previamente. La Búsqueda de Google puede reutilizar resultados idénticos hasta por 60 segundos;
fresh=1evita esa caché de búsqueda. Las búsquedas de Personas y Empleos pueden usar índices actualizados periódicamente. Una solicitud nueva no garantiza que una persona haya actualizado cada campo.
Soporte
Envía un correo a support@crustapi.com y un humano responde. Legal: https://crustapi.com/terms · https://crustapi.com/privacy