Vì sao nên tự động đăng bài Instagram bằng API
Nếu từng đăng bài thủ công trên ứng dụng Instagram, bạn biết quy trình này: mở app, chọn tệp, viết caption, thêm hashtag, gắn thẻ người khác, chọn ảnh bìa rồi mới bấm đăng. Giờ nhân lên năm bài mỗi ngày cho nhiều tài khoản khách hàng.
Trang nền tảng Instagram liệt kê chi tiết những gì Upload-Post hỗ trợ cho Instagram. Nói ngắn gọn: bạn có thể đăng Reels, ảnh đơn, carousel (bài nhiều ảnh) và Stories qua một endpoint duy nhất của API mạng xã hội. Không cần Facebook duyệt ứng dụng, không phải làm mới token, không phải vật lộn với Graph API.
Upload-Post cho phép tối đa 50 bài Instagram cho mỗi tài khoản trong 24 giờ liên tục, dư dùng cho hầu hết nhu cầu. Nếu cần đăng cùng lúc lên các nền tảng khác, xem cách đăng lên tất cả nền tảng cùng lúc.
Đăng Instagram Reel bằng API
Reels là định dạng nội dung chính trên Instagram. Để đăng video dưới dạng Reel, gửi yêu cầu POST tới endpoint upload với media_type là REELS. Bạn cũng có thể chọn cách Reel xuất hiện trên feed bằng share_mode.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Hậu trường buổi ra mắt sản phẩm mới" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "share_mode=FEED_AND_REELS" \
-F "audio_name=Original Audio" \
-F "cover_url=https://example.com/cover.jpg" Tác dụng của từng tham số dành riêng cho Instagram:
media_type=REELSbáo cho Instagram coi đây là Reel chứ không phải video feed thông thường.share_mode=FEED_AND_REELSđăng lên cả tab Reels lẫn feed chính. DùngREELS_ONLYnếu không muốn Reel hiện trong lưới feed.audio_nameđặt tên cho bản âm thanh đi kèm mà người xem thấy trên Reel.cover_urldùng ảnh bìa tùy chỉnh. Nếu không có, Instagram tự chọn một khung hình trong video.
Khi tải lên thành công, API trả về ID công việc và trạng thái theo từng nền tảng:
{
"success": true,
"job_id": "job_reel_abc123",
"platforms": {
"instagram": {
"status": "processing",
"user": "mybrand"
}
}
}
Thay cho share_mode, bạn cũng có thể đặt share_to_feed=true hoặc share_to_feed=false, kết quả như nhau. Dùng thumb_offset để chọn một khung hình cụ thể trong video làm ảnh thumbnail (giá trị tính bằng mili giây).
Đăng ảnh và carousel
Với ảnh đơn hoặc bài carousel (nhiều ảnh), dùng endpoint /api/upload_photos. Tải nhiều tệp qua tham số photos[] là tự động thành carousel.
curl -X POST https://api.upload-post.com/api/upload_photos \
-H "Authorization: Apikey your-api-key-here" \
-F "photos[][email protected]" \
-F "photos[][email protected]" \
-F "photos[][email protected]" \
-F "user=mybrand" \
-F "title=3 sản phẩm nổi bật tháng này" \
-F "platform[]=instagram" \
-F "instagram_first_comment=#sanphammoi #xuhuong #muasam"
Khi bạn gửi nhiều hơn một tệp trong photos[], Instagram tạo bài carousel. Người xem vuốt qua các ảnh theo đúng thứ tự bạn tải lên. Một tệp duy nhất sẽ thành bài ảnh thông thường. Instagram cho tối đa 10 ảnh mỗi carousel.
Dùng instagram_title để đặt caption riêng cho Instagram khi đăng cùng một nội dung lên nhiều nền tảng. Cách này hữu ích khi caption Instagram cần hashtag hoặc lượt nhắc tên khác với các nền tảng còn lại.
Tự động đăng bình luận đầu tiên
Tham số instagram_first_comment tự thêm một bình luận vào bài ngay sau khi bài được đăng. Đây là mẹo rất phổ biến trên Instagram: giữ caption gọn gàng và dồn toàn bộ hashtag xuống bình luận đầu tiên.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Hướng dẫn nhanh: cách dùng ứng dụng của chúng tôi" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "instagram_first_comment=#huongdan #meohay #congnghe #tech #productdemo" Vì sao để hashtag ở bình luận đầu tiên thay vì trong caption? Thuật toán của Instagram xử lý hashtag ở bình luận đầu tiên giống như hashtag trong caption khi phân phối bài, nhưng caption của bạn trông sạch hơn. Nhiều thương hiệu và nhà sáng tạo chọn cách này để người xem tập trung vào thông điệp thay vì một mảng hashtag dài.
Dùng cộng tác viên (Collab) và gắn thẻ người dùng
Bài Collab trên Instagram cho phép hai tài khoản cùng đứng tên một nội dung. Bài hiện trên cả hai trang cá nhân, và lượt tương tác (thích, bình luận, chia sẻ) được tính chung. Dùng tham số collaborators để mời cộng tác.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Rất vui được công bố hợp tác với @partneraccount" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "collaborators=partneraccount,otheraccount" \
-F "user_tags=partneraccount,photographer_jane" \
-F "location_id=123456789" collaboratorsnhận danh sách tên người dùng Instagram, cách nhau bằng dấu phẩy. Người được mời sẽ nhận thông báo để chấp nhận cộng tác.user_tagsgắn thẻ người dùng ngay trong bài, giống như gắn thẻ người trong ảnh trên app.location_idgắn vị trí cho bài. Bạn có thể tìm ID vị trí qua tính năng tìm kiếm vị trí của Instagram hoặc Facebook Places API.
Lên lịch đăng bài Instagram
Thêm scheduled_date vào bất kỳ yêu cầu upload nào để đăng vào một thời điểm trong tương lai. Ngày phải theo định dạng ISO-8601, và bạn có thể chỉ định thêm timezone (múi giờ).
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Chào buổi sáng! Hôm nay có nội dung mới." \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "scheduled_date=2025-09-15T09:00:00Z" \
-F "timezone=America/New_York"
Bạn cũng có thể dùng add_to_queue=true thay vì chọn ngày cụ thể. Hệ thống hàng đợi sẽ chọn khung giờ trống tiếp theo theo lịch bạn đã cấu hình, rất tiện khi tải nội dung hàng loạt mà không muốn chọn giờ thủ công. Xem hướng dẫn lên lịch đầy đủ để biết cách cài đặt hàng đợi, sửa bài đã lên lịch và quản lý lịch nội dung.
Tự động hóa với Python
SDK Python chính thức giúp việc viết script tự động hóa rất đơn giản. Cài bằng pip install upload-post rồi dùng UploadPostClient để làm việc với API. Hướng dẫn chi tiết có trong bài tự động hóa bằng Python.
Dưới đây là một script hoàn chỉnh: đăng một Reel, tải lên một carousel ảnh và lên lịch nội dung cho cả tuần:
from upload_post import UploadPostClient
from datetime import datetime, timedelta
client = UploadPostClient(api_key="your-api-key-here")
# 1. Đăng Reel ngay
reel_response = client.upload_video(
video_path="/path/to/reel.mp4",
title="Giới thiệu nhanh sản phẩm mới",
user="mybrand",
platforms=["instagram"],
media_type="REELS",
share_mode="FEED_AND_REELS",
instagram_first_comment="#sanphammoi #review #tech"
)
print(f"Đã tải Reel lên: {reel_response['job_id']}")
# 2. Đăng carousel ảnh
carousel_response = client.upload_photos(
photo_paths=[
"/path/to/photo1.jpg",
"/path/to/photo2.jpg",
"/path/to/photo3.jpg"
],
title="Ba góc nhìn, một sản phẩm.",
user="mybrand",
platforms=["instagram"],
collaborators="partneraccount"
)
print(f"Đã tải carousel lên: {carousel_response['job_id']}")
# 3. Lên lịch Reels cho 7 ngày tới
videos = [
"monday.mp4", "tuesday.mp4", "wednesday.mp4",
"thursday.mp4", "friday.mp4", "saturday.mp4", "sunday.mp4"
]
for i, video in enumerate(videos):
publish_date = (datetime.now() + timedelta(days=i + 1)).replace(
hour=10, minute=0, second=0, microsecond=0
)
response = client.upload_video(
video_path=f"/path/to/{video}",
title=f"Ngày {i + 1} của tuần lễ ra mắt",
user="mybrand",
platforms=["instagram"],
media_type="REELS",
scheduled_date=publish_date.isoformat(),
timezone="Europe/Madrid"
)
print(f"Đã lên lịch {video} lúc {publish_date}: {response['job_id']}")
Script này lên lịch mỗi ngày một Reel lúc 10:00 sáng giờ Madrid trong suốt một tuần. Hãy chỉnh hour, timezone và đường dẫn tệp cho khớp với quy trình của bạn (ví dụ Asia/Ho_Chi_Minh nếu bạn đăng theo giờ Việt Nam). Khi cần tải lên hàng loạt, bạn có thể đọc danh sách video từ một thư mục hoặc tệp CSV và lặp qua theo cách tương tự.
Tự động hóa không cần code: n8n và Make.com
Nếu bạn thích quy trình kéo thả hơn viết code, cả n8n lẫn Make.com đều dùng được với Upload-Post ngay.
n8n
n8n là công cụ tự động hóa quy trình mã nguồn mở. Bạn có thể dùng node HTTP Request để gọi API của Upload-Post. Chúng tôi có sẵn mẫu n8n cho Instagram Reels: đọc video từ Google Drive, lấy caption từ Google Sheet và tự đăng thành Reels. Xem thêm các cấu hình khác trong thư viện mẫu n8n.
Make.com
Make.com (trước đây là Integromat) hoạt động theo kịch bản (scenario). Thêm một module HTTP, cấu hình endpoint của Upload-Post cùng API key, rồi nối với bất kỳ trigger nào: dòng mới trong Google Sheets, tệp mới trong Dropbox, bộ hẹn giờ, v.v. Kết quả giống như viết code, nhưng bằng giao diện kéo thả.
Cả hai công cụ đều hỗ trợ tham số lên lịch (scheduled_date, add_to_queue), nên bạn có thể dựng trọn một lịch nội dung Instagram mà không cần mở terminal.
Yêu cầu nội dung của Instagram
Upload-Post tự điều chỉnh nội dung khi có thể (nhờ FFmpeg API tích hợp sẵn), nhưng nắm rõ yêu cầu của Instagram sẽ giúp bạn tối ưu chất lượng.
| Định dạng | Thông số | Chi tiết |
|---|---|---|
| Video (Reels) | Dung lượng tệp tối đa | 1 GB |
| Định dạng tệp | MP4, MOV | |
| Tỷ lệ khung hình | Nên dùng 9:16, hỗ trợ 1:1 và 4:5 | |
| Thời lượng | Từ 3 giây đến 15 phút | |
| Độ phân giải | Nên dùng 1080x1920 | |
| Ảnh | Dung lượng tệp tối đa | 8 MB |
| Định dạng tệp | JPEG, PNG | |
| Tỷ lệ khung hình | 1:1, 4:5, 1.91:1 | |
| Kích thước tối đa | 1440x1440 (vuông), 1080x1350 (dọc) | |
| Carousel | Số ảnh tối đa | 10 mỗi bài |
| Kết hợp ảnh và video | Có thể trộn ảnh và video trong cùng một bài |
Câu hỏi thường gặp
Làm sao để tự động đăng bài Instagram?
Kết nối tài khoản Instagram doanh nghiệp (Business) hoặc nhà sáng tạo (Creator) với Upload-Post, rồi gửi yêu cầu POST tới endpoint /api/upload với platform[]=instagram. Bạn có thể đăng Reels (media_type=REELS), carousel và ảnh đơn, lên lịch bằng scheduled_date, đăng Stories (media_type=STORIES) và tự thêm bình luận đầu tiên, tất cả trong một lệnh gọi API, không cần Meta duyệt ứng dụng hay cấu hình Graph API. Các ví dụ cURL và Python ở trên cho thấy cách làm cụ thể.
Có API nào để tự động đăng Reels và ảnh lên Instagram không?
Có. Upload-Post đưa Content Publishing API chính thức của Instagram vào một endpoint đơn giản. Gửi platform[]=instagram kèm video hoặc ảnh, API sẽ lo phần tạo container, kiểm tra trạng thái và đăng bài cho Reels, carousel và ảnh trên feed. Đây là cùng API chính thức mà các công cụ lên lịch được cấp phép khác đang dùng, không phải bot hay tự động hóa trình duyệt.
Tài khoản Instagram cá nhân có dùng được không?
Không. API của Instagram chỉ hỗ trợ tài khoản doanh nghiệp (Business) và nhà sáng tạo (Creator). Không API chính thức nào truy cập được tài khoản cá nhân. Tin vui là chuyển sang tài khoản Business hoặc Creator hoàn toàn miễn phí và chỉ mất khoảng 30 giây trong phần cài đặt của ứng dụng Instagram. Upload-Post kết nối qua Instagram Login nên bạn không cần liên kết Trang Facebook.
Có đăng Instagram Stories bằng API được không?
Được. Gửi media_type=STORIES cùng platform[]=instagram tới endpoint video (/api/upload) hoặc endpoint ảnh (/api/upload_photos). Stories không hiển thị caption và không gắn được vị trí, nên dùng ảnh hoặc video dọc 9:16 để hiển thị đẹp nhất.
Đăng bài tự động có làm tài khoản bị shadowban không?
Upload-Post đăng bài qua Content Publishing API chính thức của Instagram, cùng con đường mà các công cụ lên lịch được cấp phép khác sử dụng, nên bài của bạn không bị gắn cờ là tự động hóa như khi dùng bot trình duyệt. Việc Instagram hiển thị bài cho bao nhiêu người vẫn phụ thuộc vào chính nội dung. Upload-Post cũng giới hạn mỗi tài khoản 50 bài trong 24 giờ liên tục để luôn nằm trong giới hạn đăng bài của Instagram. Nếu bạn đang dùng công cụ như Hootsuite hoặc Later, Upload-Post là lựa chọn thay thế thân thiện với lập trình viên, dùng cùng quyền truy cập chính thức.
Có gói miễn phí không?
Có. Mỗi tài khoản Upload-Post có 10 lượt tải lên miễn phí mỗi tháng, không cần thẻ tín dụng. Như vậy đủ để thử API, kiểm tra quy trình và chắc chắn mọi thứ chạy ổn trước khi chọn gói trả phí. Xem lịch ngày lễ cho mạng xã hội để lên kế hoạch cho những bài đầu tiên theo các dịp sắp tới, hoặc cắt một ảnh banner thành nhiều ô bằng công cụ cắt ảnh lưới Instagram rồi lên lịch đăng theo đúng thứ tự.