채널

Instagram

에이전트가 업리카로 인스타그램에 올리는 방법. 피드·릴스·스토리가 각각 무엇을 받고, API 가 못 하는 것은 무엇인지.

한눈에

이름타입설명
characterstext2,200
imagesmediaup to 10 per post; more than that and the first 10 go out with a warning
carouselmedia2-10 items, images and video can be mixed
videomedia1 per post
text alonemediamedia required
posts / 24hlimit100
deletes / 24hlimitInstagram only on accounts connected via Facebook, with no documented daily cap
statusstatelive

이 숫자는 서버가 검증에 쓰는 파일에서 그대로 옵니다. 인스타그램은 글만으로는 안 올라갑니다. 모든 글에 이미지나 영상이 하나는 있어야 하고, 이미지는 JPEG 만 받아서 다른 형식은 발행 전에 변환합니다. 원본은 그대로 둡니다. 피드 이미지는 4:5 에서 1.91:1 사이여야 합니다. 폰으로 찍은 3:4 사진처럼 그 밖의 비율은 사본을 가까운 쪽 경계로 가운데 기준으로 잘라 보내고, 몇 장을 잘랐는지 그 글의 경고에 남깁니다.

연결 경로는 둘, 채널은 하나

인스타그램 계정은 직접(Instagram 로그인) 붙거나 연결된 Facebook 페이지를 거쳐(Facebook 로그인) 붙습니다. 발행은 같습니다. 차이는 그 밖의 권한에서 납니다. 업리카로 글을 지우는 것은 Facebook 경유 계정에서만 됩니다. 직접 로그인에는 삭제 권한이 없습니다. 글과 댓글의 좋아요도 Facebook 경유 계정에만 있습니다. Meta 가 그 권한을 승인한 2026년 10월 전에 Facebook 경유로 연결한 계정은 한 번 다시 연결하면 받습니다.

피드, 릴스, 스토리?

options.instagram.contentType 이 고릅니다. 안 주면 영상 하나는 릴스, 나머지는 피드입니다. 스토리는 이미지나 영상 정확히 하나이고 캡션도 첫 댓글도 없습니다. 캐러셀은 피드 글 하나에 2~10개입니다.

릴스 음원

options.instagram.audio 로 릴스에 음악이나 다른 릴스의 원본 소리를 붙입니다. 올릴 계정으로 search_instagram_audio (MCP) 나 GET /v1/channels/instagram/audio 를 불러 id 를 찾고 { "id": "...", "volume": 20, "videoVolume": 100 } 으로 넘깁니다. volume 은 붙인 음원, videoVolume 은 영상 원래 소리이고 둘 다 0에서 100 사이의 정수입니다. 인스타그램 기본값이 둘 다 100이라 나레이션이 묻힐 수 있습니다. 음원은 릴스에만, Facebook 경유로 연결한 계정에만 붙습니다. 검색어 없이 찾으면 그 계정의 인기 목록이 나오고, 검색어를 넣으면 음악은 메타의 로열티 프리 음악(Sound Collection)에서만 찾습니다. 인스타그램은 음원을 붙인 릴스를 올리기 전에 미리 보여 주지 않습니다. 음원은 처음부터 한 번만 나오고(API 로는 시작 지점을 고를 수 없습니다) 되풀이되지 않으니, 릴스보다 긴 음원을 고르세요.

첫 글은 어떻게 올리나요?

이미지를 올리고 그 미디어 id 로 publish 를 부릅니다. contentType 은 선택입니다.

curl -X POST https://api.uplika.com/v1/posts \
  -H "Authorization: Bearer $UPLIKA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Caption under the photo",
    "accountIds": ["conn_..."],
    "mediaIds": ["med_..."],
    "options": { "instagram": { "contentType": "feed", "firstComment": "#hashtags #here" } }
  }'

options.instagram 이 받는 것

이름타입설명
contentTypefeed | story | reelWhat kind of post. Defaults to reel for a single video and feed otherwise. Stories show no caption and take one image or video.
shareToFeedbooleanReels only. false keeps the reel out of the main feed.
coverMediaIdstringMedia id of a JPEG, PNG or WebP image up to 8MB to use as the reel cover; Uplika sends it to Instagram as a JPEG. Reels only.
thumbOffsetMsnumberReel cover frame in milliseconds. Ignored when coverMediaId is set.
audioobjectMusic or a sound from search_instagram_audio to put on a reel. Reels only, and only on Instagram accounts connected via Facebook. Instagram defaults both volumes to 100, which can drown a voice-over; for narration try volume 20 and videoVolume 100. Instagram cannot preview the mix before it is published. The audio plays once from its beginning (you cannot choose the start) and is not repeated, so pick one at least as long as the reel. (API only; the dashboard does not draw it.)
collaboratorsstring[]Up to 3 public professional accounts to invite as collaborators. They appear only after accepting. Not on stories.
userTagsobject[]Tag accounts on the media. Photos need x and y between 0 and 1; videos take the username alone. mediaIndex picks the carousel slide. (API only; the dashboard does not draw it.)
isAiGeneratedbooleanSet true to label the media as AI-generated on Instagram. An attached media marked aiGenerated turns this on automatically unless you set it to false.
firstCommentstringA comment we post right after publishing, often used for hashtags. Not on stories. If it fails the post still goes up, with a warning.
contentstringText for this channel only. When set it replaces the shared content for this channel, and the length and media checks use it. Leave it out to use the shared content.

서버가 검증에 쓰는 스키마에서 그대로 생성했습니다. GET /v1/platforms 도 같은 것을 줍니다.

안 되는 것은?

올라간 글 수정(인스타그램에 수정 API 가 없습니다), DM, 그리고 Instagram 로그인으로 붙은 계정의 삭제. 지표는 피드와 릴스에서 get_insights 로 옵니다. 스토리는 24시간 뒤 사라지고 아무것도 보고하지 않습니다.

자주 묻는 것

PNG 가 왜 변환됐나요?

인스타그램은 JPEG 만 받습니다. 다른 이미지는 발행 전에 JPEG 로 바꾸고 올린 원본 파일은 그대로 둡니다.

스토리에 캡션이 왜 없나요?

스토리는 캡션을 아예 안 보여 줍니다. 보낸 글은 잃어버린 게 아니라 스토리에 자리가 없는 것입니다. 피드 글에 넣으세요.

글을 지울 수 있나요?

Facebook 을 거쳐 붙은 계정에서만. Instagram 로그인에는 삭제 권한이 없어서 그 계정은 인스타그램 앱에서 지웁니다.