---
title: "LinkedIn proxy: upload a media file"
method: POST
path: "/api/linkedin/{account_id}/upload-media"
tags: ["LinkedIn – Publishing"]
---

# LinkedIn proxy: upload a media file

`POST /api/linkedin/{account_id}/upload-media`

## Request

- Base URL: `https://api.reachmcp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.reachmcp.com/api/linkedin/{account_id}/upload-media`
- Auth: API key in header `X-API-Key`

Uploads a media file (e.g. an image) to LinkedIn using the two-step upload flow:

1. Requests upload metadata from LinkedIn to obtain a signed upload URL and asset URN.
2. PUTs the raw file bytes to the signed URL.

Returns the ``digitalmediaAsset`` URN (e.g. ``urn:li:digitalmediaAsset:…``) which can be passed to post-creation endpoints to attach the image to a post.

``media_upload_type`` defaults to ``IMAGE_SHARING``.

## Path parameters

- `account_id` integer, required

## Query parameters

- `media_upload_type` string: LinkedIn media upload type.

## Response `200`

Successful Response

- LinkedInMediaUploadOut: Result of a media upload to LinkedIn.
  - `urn` string, required: digitalmediaAsset URN (e.g. urn:li:digitalmediaAsset:…). Use this when creating a post with an image.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/reachmcp/apis/mcp-reach.md) · [All operations](https://skmtc.dev/reachmcp/apis/mcp-reach/llms.txt) · [OpenAPI document](https://skmtc.dev/reachmcp/apis/mcp-reach/revisions/1a85fdaf3f7c?raw)
