Publicar en LinkedIn es una llamada POST https://api.linkedin.com/rest/posts que devuelve el URN de la publicación creada en la cabecera de respuesta x-restli-id en lugar de en el cuerpo. El contenido multimedia funciona registrando primero una subida, subiendo los bytes y luego referenciando el URN devuelto. Las complicaciones son el modelo de permisos y el versionado mensual de la API de LinkedIn.
¿Qué puede publicar la API de Posts, y qué no puede publicar?
Para publicaciones orgánicas (no patrocinadas), la tabla de tipos de contenido de LinkedIn es explícita.
| Tipo de contenido | Compatible orgánicamente |
|---|---|
| Solo texto | Sí |
| Imágenes | Sí |
| Vídeos | Sí |
| Documentos (PDF, DOC, DOCX, PPT, PPTX) | Sí |
| Artículo | Sí |
| MultiImage | Sí |
| Encuesta | Sí |
| Carrusel | No, solo patrocinado |
Las publicaciones de documentos son la sorpresa agradable: los carruseles en PDF, el formato que funciona bien en LinkedIn, son totalmente compatibles a través de la API de Documents. Los límites son un archivo de no más de 100 MB y no más de 300 páginas. Las publicaciones de carrusel orgánicas, en el sentido publicitario que le da LinkedIn a la palabra, no son compatibles; el equivalente orgánico es MultiImage. Las publicaciones de tipo artículo no extraen la URL por ti, así que debes aportar tú mismo el título, la descripción y el URN de una imagen de miniatura.
La brecha estructural es la división de permisos. Publicar como persona necesita w_member_social. Publicar como página de empresa necesita w_organization_social, con r_organization_social para leer de vuelta, y el miembro autenticado debe tener un rol de ADMINISTRATOR, CONTENT_ADMIN o DIRECT_SPONSORED_CONTENT_POSTER en esa página. En la práctica, son productos de API distintos con solicitudes de acceso independientes, por lo que una herramienta que publica tanto en un perfil como en una página acaba manteniendo dos apps de LinkedIn separadas. Nuestra propia integración hace exactamente eso.
Nota: las cifras aquí se verificaron con la documentación de la API de Posts, la API de Images y la API de Documents de LinkedIn en Microsoft Learn a fecha de septiembre de 2026. Las plataformas cambian esto sin previo aviso.
¿Cómo funciona la autenticación, y cuánto dura la revisión de acceso?
OAuth de tres pasos para obtener un token de miembro, y después cada solicitud lleva tres cabeceras: Authorization: Bearer, X-Restli-Protocol-Version: 2.0.0 y LinkedIn-Version en formato AAAAMM. Esta última no es opcional y no es permanente. LinkedIn publica versiones mensuales y retira las antiguas, con un aviso de baja actualmente en la página que indica que la Marketing Version 202508 se retirará el 17 de agosto de 2026. Una versión que fijaste el año pasado se convierte en una caída del servicio.
El acceso a los productos de gestión de comunidad se concede por solicitud. LinkedIn no publica un plazo de revisión en esta documentación para desarrolladores, así que trata la duración como desconocida. Ten en cuenta también que r_member_social es un permiso restringido “disponible solo para usuarios aprobados”, así que leer las propias publicaciones de un miembro es una petición aparte de escribirlas.
No pudimos verificar la duración de los tokens de acceso de LinkedIn en las páginas de las API de Posts, Images o Documents, que no la indican. Consulta la cifra actual en la propia documentación de autenticación de LinkedIn en lugar de un número en un artículo de blog, incluido este.
¿Cuál es la secuencia de llamadas para publicar?
Para una publicación de texto es una sola llamada. Para contenido multimedia son tres:
POST /rest/images?action=initializeUpload(o/rest/documents?action=initializeUpload) coninitializeUploadRequest.ownerfijado al URN de la persona o la organización.- Lee
uploadUrly el URN del recurso (imageodocument) del objetovaluede la respuesta. - Sube los bytes a
uploadUrl. Una subida de documento exitosa devuelve 201. POST /rest/postsconauthor,commentary,visibility,distribution,lifecycleState: "PUBLISHED", ycontent.media.idfijado al URN del recurso.- Lee el URN de la publicación creada en la cabecera de respuesta
x-restli-iddel 201. No está en el cuerpo.
# 1. register the upload
curl -X POST 'https://api.linkedin.com/rest/documents?action=initializeUpload' \
-H "Authorization: Bearer $TOKEN" \
-H 'X-Restli-Protocol-Version: 2.0.0' -H 'LinkedIn-Version: 202608' \
-d '{"initializeUploadRequest":{"owner":"urn:li:organization:5515715"}}'
# -> value.uploadUrl, value.document = urn:li:document:...
# 2. upload the bytes
curl -i --upload-file ./deck.pdf -H "Authorization: Bearer $TOKEN" "$UPLOAD_URL"
# 3. create the post, then read x-restli-id from the 201
curl -i -X POST 'https://api.linkedin.com/rest/posts' \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-H 'X-Restli-Protocol-Version: 2.0.0' -H 'LinkedIn-Version: 202608' \
-d '{
"author": "urn:li:organization:5515715",
"commentary": "Our Q3 teardown, 12 pages.",
"visibility": "PUBLIC",
"distribution": {"feedDistribution":"MAIN_FEED","targetEntities":[],
"thirdPartyDistributionChannels":[]},
"content": {"media": {"title":"deck.pdf","id":"urn:li:document:..."}},
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false
}'
Los recursos tienen su propio campo de estado: WAITING_UPLOAD, PROCESSING, PROCESSING_FAILED o AVAILABLE. Referenciar uno que no haya llegado a AVAILABLE es una causa habitual de que una publicación salga sin su contenido multimedia.
¿Cuáles son los límites de velocidad?
La tabla de errores de la API de Posts de LinkedIn documenta 429 TOO_MANY_REQUESTS con la indicación de reducir la frecuencia de solicitudes y reintentar tras una espera, pero la página no indica cifras concretas de solicitudes por app o por miembro. No pudimos verificar cifras de límite concretas en las páginas de las API de Posts, Images o Documents. LinkedIn publica límites diarios a nivel de aplicación y de miembro en el portal para desarrolladores de tu propia app, que es la única fuente exacta para tu cuota, así que consúltalos ahí en lugar de asumir un número compartido.
Dos límites sí están indicados en concreto y merece la pena diseñar en torno a ellos: los documentos están limitados a 100 MB y 300 páginas, y las imágenes deben estar por debajo de 36.152.320 píxeles, en JPG, GIF o PNG, con los GIF limitados a 250 fotogramas.
Nota: las cifras aquí se verificaron con la documentación de la API de Posts, la API de Images y la API de Documents de LinkedIn en Microsoft Learn a fecha de septiembre de 2026. Las plataformas cambian esto sin previo aviso.
¿Qué te va a costar de verdad tres semanas?
Dos apps, dos revisiones. Publicar en el perfil personal y publicar en la página de empresa son productos separados con aprobaciones separadas. Si tu producto promete ambas cosas, estás gestionando dos flujos de OAuth, dos conjuntos de credenciales y dos procesos de revisión, y uno puede aprobarse mientras el otro no.
Versionado mensual. LinkedIn-Version necesita un plan: una actualización programada, una prueba que ejercite la versión actual y alguien que lea los avisos de baja. Este es el coste de mantenimiento que la gente olvida al calcular el desarrollo.
Pipeline de contenido multimedia. Subida en dos pasos para imágenes, documentos y vídeo, cada uno con su propio endpoint y su propio estado de recurso que esperar, más validación de formato y tamaño antes de desperdiciar una subida.
Asincronía y fallo parcial. Un 201 de /rest/posts es la confirmación más fuerte que te da cualquiera de las grandes plataformas, pero el paso del recurso previo es asíncrono, y lifecycleState puede volver como PUBLISH_FAILED, lo que requiere una edición para reintentar. Modela un estado processing, como se explica en nuestra guía completa de la API de programación de redes sociales, y nunca informes de éxito basándote solo en la llamada de subida.
Si también estás redactando el texto, el contador de caracteres de LinkedIn muestra dónde cae el corte de “ver más”.
La versión corta
- Una sola llamada
POST /rest/posts; el URN de la publicación vuelve enx-restli-id, no en el cuerpo. - El contenido multimedia necesita
initializeUpload, una subida y luego el URN del recurso encontent.media.id. - Los documentos (PDF y archivos de Office) son compatibles orgánicamente, hasta 100 MB y 300 páginas.
- Los perfiles personales y las páginas de empresa usan permisos distintos y, en la práctica, dos apps.
LinkedIn-Versiones obligatoria y las versiones se retiran. Programa las actualizaciones.
Hacer esto una vez en lugar de una vez por plataforma
Si LinkedIn es una de varias redes que necesitas, el trabajo por plataforma se multiplica en lugar de sumarse. BulkPublish publica en 15 plataformas mediante una sola API REST, incluidos los perfiles personales y las páginas de empresa de LinkedIn (ambas apps, ambas revisiones, ya resueltas) y las publicaciones de documentos de LinkedIn. Las cabeceras de versión, el sondeo de recursos y la renovación de tokens quedan de nuestro lado, y una publicación dirigida a varias redes informa partial cuando una de ellas falla en lugar de fingir que funcionó. La referencia de la API está en /developers/ y la visión general de la integración REST en /integrations/rest-api/.