Un GET devuelve un perfil, una empresa, posts o empleos en JSON.
Todo vive en GET /v1/linkedin. Elige una superficie con type, pasa una URL o unas palabras clave, y el resultado vuelve bajo una clave con el nombre del tipo.
La mayoría de herramientas de este ámbito venden una API de perfiles de LinkedIn, una API de empresas y una API de empleos como productos separados con precios separados. Aquí es una sola API de datos de LinkedIn con una única regla de facturación: una llamada con resultado es un crédito, y un resultado vacío o inaccesible es gratis.
| type | Qué devuelve | Entrada |
|---|---|---|
| profile | El perfil público completo: nombre, titular, historial laboral, formación, número de seguidores y más. El tipo por defecto. | url (una URL linkedin.com/in/...) |
| refresh | La empresa y el centro de estudios actuales con sus ids numéricos de LinkedIn, más companyState. La llamada ligera y de baja latencia pensada para mantener una base de datos al día. | url |
| company | La página pública de la empresa. Añade employees=true para la lista de empleados. | url (una URL linkedin.com/company/...) |
| posts | Publicaciones públicas, hasta 100 por llamada. Añade comments=true para los comentarios de cada publicación. | url (perfil o empresa) |
| jobs | Ofertas de empleo públicas, hasta 50 por llamada, con paginación mediante start. | keywords más location opcional, o una url de empleo |
| search (beta) | Búsqueda de personas. Añade enrich=true para obtener el perfil completo de cada persona en la misma llamada. | keywords |
Ten en cuenta la regla de entrada: profile, company y posts reciben url, nunca una consulta de búsqueda. Si solo tienes un nombre, localiza primero a la persona con type=search (beta) y luego pasa la URL del perfil que te devuelve.
Este es el JSON exacto que devolvió el curl de arriba, recortado por espacio. Llegó en 800 ms y costó 1 crédito.
Dos campos que merece la pena mirar. accessible te dice si el perfil tiene una página pública siquiera. Cuando es false, profile es null, una note explica el motivo y la llamada no se cobra.
memberIdentifier es el id numérico permanente de miembro de LinkedIn. Se mantiene aunque cambien el nombre y la URL personalizada, así que es la clave de unión correcta para una base de datos.
Todo el registro público, estructurado. La misma forma en cada llamada, así que tu parser se escribe una sola vez.
El campo de correo es opcional: añade email=true a una llamada de perfil y la respuesta añade workEmail y emailStatus. El estado es verified, pattern-likely o unknown, de modo que puedes filtrar a las direcciones confirmadas.
El correo viaja como un campo de la llamada de perfil, no es un producto aparte.
Los campos que solo existen tras un inicio de sesión se quedan fuera, a propósito. Las listas de contactos, los contactos en común y quién ha visto un perfil nunca aparecen en la página sin sesión, así que no están en la respuesta. Ese límite es lo que permite que la API funcione sin cuentas y sin poner nada tuyo en riesgo.
Un puñado de opciones en lenguaje sencillo. Todo lo demás tiene un valor por defecto razonable.
| Parámetro | Se aplica a | Qué hace |
|---|---|---|
| url | profile, refresh, company, posts, jobs | Una URL de linkedin.com. Obligatoria para profile, company y posts. jobs acepta una URL de empleo en lugar de keywords. |
| keywords | search (beta), jobs | Qué buscar. Obligatorio para search; obligatorio para jobs salvo que pases una URL de empleo. |
| location | jobs | Filtro de ciudad o región para la búsqueda de empleo. |
| limit | jobs, posts, search (beta) | Cuántos resultados. jobs: por defecto 25, máx. 50. posts: por defecto 50, máx. 100. search: por defecto 10, máx. 15. |
| start | jobs | Desplazamiento de resultados para la paginación. |
| profile | Añade workEmail y emailStatus (verified, pattern-likely o unknown) al perfil. | |
| domain | profile | Se usa con email=true. Pasa el dominio del empleador (como stripe.com) y el buscador lo utiliza directamente en lugar de deducirlo del perfil. Es más rápido, y funciona incluso cuando un perfil está restringido a solo el nombre. |
| enrich | search (beta) | Devuelve el perfil completo de cada persona en la misma llamada. Cobra 1 crédito por cada perfil completo devuelto en vez de 1 por llamada. |
| employees | company | Incluye la lista de empleados en la página de la empresa. |
| comments | posts | Incluye los comentarios de cada publicación. |
| member | refresh | Devuelve también memberIdentifier. Es opcional porque su lectura es más lenta; el id nunca cambia, así que obténlo una vez y guárdalo. |
| headline | profile | Para perfiles cuyo companyState es restricted, intenta recuperar el titular público del propio miembro. Es un intento sin garantías, aproximadamente uno de cada veinte. |
Mantener una base de datos al día no debería costar una ida y vuelta HTTP por fila. Envía hasta 100 URLs de perfil en un solo POST y recibe los resultados en el orden de entrada.
Las reglas están pensadas para grandes volúmenes: los resultados vuelven en el mismo orden en que los enviaste, una fila con error nunca hace fallar el lote, y una URL mal formada vuelve como un error por fila en vez de un cobro. La facturación es igual que en el endpoint individual: un crédito por fila con resultado y las filas no accesibles gratis.
type puede ser refresh (el valor por defecto, empresa y centro de estudios actuales con ids numéricos) o profile (el registro completo). member: true añade memberIdentifier en las filas de refresh.
De cero a tu primer JSON de perfil en cosa de un minuto:
Crea una cuenta gratis. Recibes 3.000 créditos al mes, sin tarjeta.
Copia tu clave desde el panel. Está en la primera pantalla al iniciar sesión.
Ejecuta el curl de arriba con cualquier URL de perfil. El perfil público vuelve como JSON.
Cada llamada con resultado es un crédito, sea cual sea el tipo. Un perfil privado o inaccesible devuelve null con una nota y no se cobra, y un resultado de búsqueda vacío es gratis.
| Paquete | Créditos | Pagas |
|---|---|---|
| Plan gratuito | 3.000 al mes | 0 $, sin tarjeta |
| 25.000 llamadas | 25.000 | 49 $ (1,96 $ por cada 1.000) |
| 100.000 llamadas | 100.000 | 149 $ (1,49 $ por cada 1.000) |
| 500.000 llamadas | 500.000 | 549 $ (1,10 $ por cada 1.000) |
| 2,5 millones de llamadas | 2.500.000 | 1.999 $ (0,80 $ por cada 1.000) |
Los paquetes continúan hasta 250 millones de créditos por 100.000 $, lo que sale a 0,40 $ por cada 1.000. Precios sin impuestos.
Los créditos son de prepago y nunca caducan. Una excepción a la regla: la búsqueda de personas (beta) con enrich=true cobra un crédito por cada perfil completo que devuelve.
Relacionado: Extraer LinkedIn sin iniciar sesión · Extractor de perfiles de LinkedIn · Alternativa a Bright Data para LinkedIn · Alternativa a Proxycurl
Un solo endpoint, GET /v1/linkedin, que devuelve datos públicos de LinkedIn en JSON limpio. Pon type en profile, refresh, company, posts, jobs o search (beta). Perfiles, empresas y publicaciones reciben una URL de linkedin.com; los empleos y la búsqueda de personas reciben keywords. Cada llamada con resultado es 1 crédito.
No. Solo lee la versión pública y sin sesión de cada página, así que no hay ninguna cookie que pegar, ninguna sesión que entregar ni ninguna cuenta tuya de por medio. Los campos que solo existen tras un inicio de sesión, como las listas de contactos, quedan fuera del producto a propósito.
Un crédito por cada llamada con resultado, para todos los tipos. La excepción es la búsqueda de personas (beta) con enrich=true, que cobra 1 crédito por cada perfil completo devuelto. Un perfil privado o inaccesible devuelve null con una nota y no se cobra, y los resultados vacíos son gratis. El plan gratuito son 3.000 créditos al mes sin tarjeta.
Nombre, titular, ubicación, about, número de seguidores, el historial de experiencia completo con enlaces de empresa y fechas, formación, la foto e identificadores estables, incluido memberIdentifier, el id numérico permanente de miembro de LinkedIn. Añade email=true para incorporar workEmail con un emailStatus de verified, pattern-likely o unknown.
Usa type=refresh, que devuelve la empresa y el centro de estudios actuales con sus ids numéricos a baja latencia, y envía los perfiles mediante POST /v1/linkedin/batch, hasta 100 URLs por petición con los resultados en el orden de entrada. Las filas con error nunca hacen fallar el lote y las filas no accesibles son gratis.
La recopilación pública y sin sesión ha superado repetidamente demandas por fraude informático e incumplimiento de contrato. Nosotros nos encargamos de la recopilación, y lo que obtienes son datos públicos que cualquiera puede ver. No usamos cuentas falsas ni inicios de sesión.
Empieza con los 3.000 créditos gratis al mes, sin necesidad de tarjeta. Un solo GET devuelve el perfil público en JSON limpio, y un perfil que no es accesible no te cuesta nada. Ninguna cuenta tuya forma parte jamás de la petición.
Consigue 3.000 créditos gratis