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

# LinkedIn proxy: upload a media file from a URL

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

## 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-url`
- Auth: API key in header `X-API-Key`

Fetches an image from a publicly accessible URL and uploads it to LinkedIn.

This is the agent-friendly alternative to ``/upload-media`` (which requires a binary file upload). Pass any public image URL; the backend will download it and execute the two-step LinkedIn upload flow.

Returns the ``digitalmediaAsset`` URN (e.g. ``urn:li:digitalmediaAsset:…``) which can be passed to ``/create-post`` or ``/create-multi-photo``.

## Path parameters

- `account_id` integer, required

## Request body

- LinkedInMediaUploadFromUrlIn: Request body for uploading a media file to LinkedIn from a public URL.
  - `image_url` string, required: Publicly accessible URL of the image to upload (JPEG, PNG, GIF…).
  - `media_upload_type` string: LinkedIn media upload type (default: IMAGE_SHARING).

## 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)
