Hướng dẫn

How to Post to LinkedIn via API (Videos, Images and Text)

LinkedIn\'s official API is notoriously complex. You need a LinkedIn Developer app, approval through their Community Management API review process, 3-legged OAuth, the UGC Post API, and ongoing token refresh. Upload-Post wraps all of that into one API key and one endpoint. Post videos, images, and text to personal profiles and company pages without touching LinkedIn\'s API directly.

Đăng video lên LinkedIn

The /api/upload endpoint handles video uploads. Pass a video file, set the platform to linkedin, and include your commentary text in linkedin_description. The visibility parameter controls who can see the post.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Ủy quyền: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Product Demo Q3" \
  -F "linkedin_description=We just shipped a major update to our analytics dashboard. Here\'s a quick walkthrough of the new features." \
  -F "visibility=PUBLIC" \
  -F "platform[]=linkedin"

The API responds with a job ID and status:

{
  "success": true,
  "job_id": "job_linkedin_abc123",
  "platform": "linkedin",
  "status": "processing"
}

Upload-Post handles the entire upload flow: encoding, chunked upload to LinkedIn\'s servers, and publishing. You get a webhook or can poll the status endpoint when the post is live.

Đăng nội dung văn bản lên LinkedIn

For text-only posts (no media), use the /api/upload_text endpoint. This is useful for thought leadership content, company announcements, or link shares.

curl -X POST https://api.upload-post.com/api/upload_text \
  -H "Ủy quyền: Apikey your-api-key-here" \
  -F "user=mybrand" \
  -F "linkedin_title=Hiring Senior Engineers" \
  -F "linkedin_description=We\'re growing the team. Looking for backend engineers with experience in distributed systems. Remote-friendly, competitive comp. DM me or check the link in comments." \
  -F "visibility=PUBLIC" \
  -F "platform[]=linkedin"

A note on linkedin_titleso vớilinkedin_description: the title is a platform-specific headline, while the description is the commentary text that appears on the post. If you only set linkedin_title, it will also be used as the description. For most LinkedIn posts, you want to set linkedin_description with the full post text.

Đăng hình ảnh lên LinkedIn

Use the /api/upload_photos endpoint to publish image posts. You can attach one or multiple images.

curl -X POST https://api.upload-post.com/api/upload_photos \
  -H "Ủy quyền: Apikey your-api-key-here" \
  -F "user=mybrand" \
  -F "[email protected]" \
  -F "title=Our 2025 industry report is out" \
  -F "linkedin_description=Key findings from our annual survey of 500+ companies. Swipe through the highlights or grab the full PDF in the comments." \
  -F "visibility=PUBLIC" \
  -F "platform[]=linkedin"

Upload-Post handles image format conversion and sizing automatically. You can also check our social media posting API docs for details on supported formats.

Đăng lên trang công ty LinkedIn

By default, posts go to the personal profile of the connected LinkedIn account. To post to a company page instead, add the target_linkedin_page_id parameter with your organization\'s numeric ID.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Ủy quyền: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Company Update" \
  -F "linkedin_description=Excited to announce our Series B funding. Thanks to everyone who made this possible." \
  -F "visibility=PUBLIC" \
  -F "target_linkedin_page_id=12345678" \
  -F "platform[]=linkedin"

You can find your company page ID in the URL when you visit your company page on LinkedIn (it\'s the numeric part), or through the Upload-Post dashboard after connecting your page. The connected LinkedIn account must be an admin of the company page for this to work.

For more details, see the Trang nền tảng LinkedIn.

Cài đặt hiển thị LinkedIn

The visibility parameter controls who can see your LinkedIn post. Three options are available:

Giá trị Ai sẽ thấy điều này Khi nào sử dụng
CÔNG KHAIBất kỳ ai trên LinkedInMặc định. Tốt nhất cho phạm vi tiếp cận và tương tác.
ĐÃ ĐĂNG NHẬPChỉ dành cho thành viên LinkedInNội dung không nên xuất hiện trên các công cụ tìm kiếm.
CHỈ KẾT NỐICác kết nối cấp 1 của bạnCập nhật nội bộ, thông báo cá nhân.

If you don\'t set visibility, it defaults to CÔNG KHAI. For company pages, CHỈ KẾT NỐI is equivalent to followers only.

Lên lịch bài đăng LinkedIn

Add scheduled_date to any LinkedIn upload request to publish at a future time. The date format is ISO-8601, and you can include a timezone parameter (IANA format) so you don\'t have to convert to UTC yourself.

curl -X POST https://api.upload-post.com/api/upload_text \
  -H "Ủy quyền: Apikey your-api-key-here" \
  -F "user=mybrand" \
  -F "linkedin_description=Monday motivation: the best time to start is now. The second best time is also now." \
  -F "visibility=PUBLIC" \
  -F "platform[]=linkedin" \
  -F "scheduled_date=2025-09-22T09:00:00Z" \
  -F "timezone=America/New_York"

You can also use the queue system by setting add_to_queue=true instead of a specific date. Upload-Post will assign the post to the next available time slot based on your configured schedule. This is ideal when you batch content and want consistent daily posting without picking exact times.

For a deep dive on scheduling, queue configuration, and managing scheduled posts, read the full scheduling guide.

Đăng chéo: LinkedIn + các nền tảng khác.

This is where the social media posting API really shines. You can publish to LinkedIn and multiple other platforms in a single API call. Just add more values to the platform[] array.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Ủy quyền: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=How we reduced API latency by 40%" \
  -F "linkedin_description=Deep dive into our recent infrastructure overhaul. We cut p99 latency from 800ms to 480ms. Here\'s what worked and what didn\'t." \
  -F "visibility=PUBLIC" \
  -F "platform[]=linkedin" \
  -F "platform[]=x" \
  -F "platform[]=threads"

One request, three professional networks. Upload-Post automatically adapts the content to each platform\'s requirements (aspect ratio, caption length, format). You can also set platform-specific descriptions so each post feels native to its platform. See post to multiple platforms at once for the full walkthrough.

Tự động hóa với Python

The Upload-Post Python SDK makes it straightforward to integrate LinkedIn posting into scripts, cron jobs, or backend services. Install with pip install upload-post.

from upload_post import UploadPostClient
from datetime import datetime, timedelta

client = UploadPostClient(api_key="your-api-key-here")

# Post a video to LinkedIn immediately
response = client.upload_video(
    video_path="/path/to/video.mp4",
    title="Bài đăng LinkedIn được hỗ trợ bởi API.",
    linkedin_description="Đã đăng qua Upload-Post Python SDK. Không cần lo lắng về OAuth.",
    user="mybrand",
    platforms=["linkedin"],
    visibility="CÔNG KHAI"
)
print(f"Video đã được đăng: {response['job_id']}")

# Post a text update to a company page
response = client.upload_text(
    linkedin_title="We\'re hiring",
    linkedin_description="Looking for senior engineers to join our platform team. Remote OK.",
    user="mybrand",
    platforms=["linkedin"],
    visibility="CÔNG KHAI",
    target_linkedin_page_id="12345678"
)
print(f"Văn bản đã đăng: {response['job_id']}")

# Schedule posts for the week
base_date = datetime.now() + timedelta(days=1)
posts = [
    "Thứ Hai: Chia sẻ bài viết blog kỹ thuật của chúng tôi về chiến lược bộ nhớ đệm.",
    "Thứ Tư: Mẹo nhanh để viết bài LinkedIn tốt hơn.",
    "Thứ Sáu: Điểm nổi bật của đội ngũ và danh sách đọc cuối tuần.",
]
days_offset = [0, 2, 4]

for text, offset in zip(posts, days_offset):
    publish_date = (base_date + timedelta(days=offset)).replace(
        hour=9, minute=0, second=0
    )
    response = client.upload_text(
        linkedin_description=text,
        user="mybrand",
        platforms=["linkedin"],
        visibility="CÔNG KHAI",
        scheduled_date=publish_date.isoformat(),
        timezone="America/New_York"
    )
    print(f"Scheduled for {publish_date.date()}: {response['job_id']}")

For a complete Python automation setup including error handling and batch processing, check out the Hướng dẫn tự động hóa Python.

Không cần mã với n8n và Make.com

If you prefer visual workflows over code, Upload-Post integrates with the major automation platforms. You can build LinkedIn posting workflows without writing a single line of code.

  • n8n: Use the HTTP Request node to call the Upload-Post API. We have ready-made n8n templates for common LinkedIn workflows.
  • Make.com: Build scenarios that trigger LinkedIn posts from Google Sheets, RSS feeds, or CRM events.
  • Zapier: Connect Upload-Post to 5,000+ apps for automated LinkedIn posting.
  • Airtable: Use Airtable as a content calendar and auto-publish to LinkedIn on schedule.

You can also post from Google Sheets for a spreadsheet-based workflow that many teams find intuitive. And our social media holiday calendar can help you plan timely LinkedIn content throughout the year.

Câu hỏi thường gặp

Tôi có thể đăng lên các trang công ty trên LinkedIn không?

Yes. Add the target_linkedin_page_id parameter to your request with the numeric ID of the company page. The connected LinkedIn account must be an admin of that page.

Tôi có cần một ứng dụng nhà phát triển LinkedIn không?

No. Upload-Post handles all the OAuth complexity, token management, and API integration behind the scenes. You just connect your LinkedIn account through the dashboard and use your Upload-Post API key for all requests.

Tôi có thể bao gồm liên kết trong các bài đăng trên LinkedIn không?

Yes. Include URLs directly in the linkedin_description text. LinkedIn will generate a link preview card automatically for the first URL it detects.

Giới hạn kích thước video cho LinkedIn là bao nhiêu?

LinkedIn accepts videos up to 5 GB and 10 minutes long. Upload-Post handles chunked uploading, so large files work reliably even on slower connections. If your video exceeds LinkedIn\'s limits, Upload-Post will return a clear error before processing.

Giới hạn tải lên hàng ngày cho LinkedIn là bao nhiêu?

LinkedIn allows up to 150 uploads per 24-hour rolling window per connected account. This applies across all content types (video, image, text). If you are looking for an alternative to tools like Hootsuite, Upload-Post is a strong Lựa chọn thay thế Hootsuite with higher limits and API-first design.

Bắt đầu đăng lên LinkedIn qua API

Skip the OAuth setup, token management, and LinkedIn API complexity. One API key, one endpoint, and your content is live on LinkedIn in seconds.

Không cần thẻ tín dụng. Bao gồm 10 lượt tải lên miễn phí.