Instagram 공개 API의 연결 요건·발행 예제·제한.
연결 요건
정상적으로 연결되고 발행 권한이 있는 Instagram 프로페셔널 계정을 사용하세요. GET /accounts는 accountType(business·creator·unknown)과 현재 capability를 제공합니다. 요청마다 계정 하나와 같은 워크스페이스의 확인된 미디어를 사용합니다.
지원 형식
instagram 객체를 사용하고 posts·video·youtube·facebook은 생략하세요. FEED는 JPEG 하나 또는 JPEG/영상 2–10개 캐러셀, REELS는 영상 하나, STORIES는 JPEG 또는 영상 하나를 받으며 caption을 거부합니다.
미디어가 필요한 형식은 업로드 가이드의 예약 → PUT → confirm을 먼저 마치세요. 완료 확인된 mediaId만 발행할 수 있습니다. 카드뉴스 만들기로 만든 장의 mediaId는 업로드 없이 바로 쓸 수 있습니다.
최소 발행 요청
계정·미디어 UUID는 합성 예시이므로 실제 값으로 바꾸세요. API 키는 POSTEADY_API_KEY 환경 변수로 설정합니다.
curl --request POST "https://www.posteady.com/api/v1/posts" \
--header "Authorization: Bearer $POSTEADY_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"accountIds": [
"11111111-1111-4111-8111-111111111111"
],
"instagram": {
"requestId": "33333333-3333-4333-8333-333333333333",
"contentType": "FEED",
"caption": "Our latest release",
"items": [
{
"mediaId": "22222222-2222-4222-8222-222222222222",
"altText": "Our new product on a desk"
}
]
}
}'다음 JSON은 각각 독립적인 전체 요청 본문입니다. 형식에 맞는 실제 미디어 ID를 넣고, 서로 다른 작업에는 새 requestId를 생성하세요. 같은 작업을 재시도할 때만 이전 ID를 유지합니다.
캐러셀
{
"accountIds": [
"11111111-1111-4111-8111-111111111111"
],
"instagram": {
"requestId": "33333333-3333-4333-8333-333333333333",
"contentType": "FEED",
"items": [
{
"mediaId": "22222222-2222-4222-8222-222222222222"
},
{
"mediaId": "66666666-6666-4666-8666-666666666666"
}
]
}
}릴스
{
"accountIds": [
"11111111-1111-4111-8111-111111111111"
],
"instagram": {
"requestId": "33333333-3333-4333-8333-333333333333",
"contentType": "REELS",
"items": [
{
"mediaId": "22222222-2222-4222-8222-222222222222"
}
],
"shareToFeed": true
}
}스토리
{
"accountIds": [
"11111111-1111-4111-8111-111111111111"
],
"instagram": {
"requestId": "33333333-3333-4333-8333-333333333333",
"contentType": "STORIES",
"items": [
{
"mediaId": "22222222-2222-4222-8222-222222222222"
}
]
}
}성공 확인
HTTP 202는 작업 접수입니다. results[0].jobId를 저장하고 아래 요청으로 조회하여 status: published를 확인하세요. 예시 ID는 실제 반환값으로 바꿔야 합니다.
curl --request GET "https://www.posteady.com/api/v1/publish-jobs/44444444-4444-4444-8444-444444444444" \
--header "Authorization: Bearer $POSTEADY_API_KEY"예약·조회·관련 작업
예약은 같은 플랫폼 입력에 미래 scheduledAt과 선택 timezone을 추가하여 /scheduled-posts로 보내세요. 비동기 플랫폼은 UUID requestId를 새 작업마다 생성하고 재시도 때 유지합니다.
예약과 취소 · 게시물·지표 조회 · 재시도 · MCP 도구
제한과 오류
JPEG는 최대 8 MiB입니다. Instagram 영상은 최대 1 GiB·3초–15분이며 Story 영상은 최대 60초입니다. 단일 FEED 영상은 거부되므로 REELS 또는 캐러셀을 사용하세요. 캡션은 유니코드 문자 2,200개, altText는 1,000개까지이며 대체 텍스트는 FEED 이미지에만 허용합니다. shareToFeed는 REELS 전용입니다. Meta가 처리 중 코덱·프레임 레이트·비트레이트·화면비를 검증하며 플랫폼 발행 한도 초과는 비동기 작업 실패로 나타날 수 있습니다.