Instagram API
Instagram API를 사용하면 사용자 프로필 조회, 게시물, 릴스, 태그된 미디어 목록 확인, 스토리 읽기, 게시물 상세 정보 가져오기, 댓글 및 답글 읽기, 사용자 및 해시태그 검색, 소셜 그래프(팔로워/팔로잉) 탐색이 가능합니다. 12개의 엔드포인트가 있으며, 각 요청당 2크레딧이 소모됩니다.
엔드포인트
| 엔드포인트 | 설명 |
|---|---|
POST /api/v1/instagram/profile | 사용자명 또는 user_id로 사용자 프로필 가져오기 |
POST /api/v1/instagram/user/posts | 사용자의 게시물 목록 (페이지네이션) |
POST /api/v1/instagram/user/reels | 사용자의 릴스 목록 (페이지네이션) |
POST /api/v1/instagram/user/tagged | 사용자가 태그된 게시물 목록 (페이지네이션) |
POST /api/v1/instagram/user/stories | 사용자의 활성 스토리 가져오기 |
POST /api/v1/instagram/post | 단일 게시물의 전체 상세 정보 가져오기 |
POST /api/v1/instagram/post/comments | 게시물의 댓글 목록 |
POST /api/v1/instagram/post/comments/replies | 특정 댓글에 대한 답글 목록 |
POST /api/v1/instagram/search/users | 키워드로 Instagram 사용자 검색 |
POST /api/v1/instagram/search/hashtags | 키워드로 Instagram 해시태그 검색 |
POST /api/v1/instagram/user/followers | 사용자의 팔로워 목록 |
POST /api/v1/instagram/user/followings | 사용자가 팔로우하는 계정 목록 |
인증
| 헤더 | 값 | 필수 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | 예 |
Content-Type | application/json | 예 |
모든 성공적인 응답에는 크레딧 추적 필드가 포함됩니다: credits_used, credits_remaining 및 response_time (ms).
사용자 식별
사용자 엔드포인트는 둘 중 하나를 받습니다: username 또는 숫자 user_id. username을 전달하는 것이 가장 간단한 옵션입니다. 자동으로 user_id로 변환됩니다. 반복 호출의 경우 프로필 응답에서 data.user.id를 읽고 user_id로 전달하여 조회를 건너뛰세요.
사용자 프로필
POST https://api.scavio.dev/api/v1/instagram/profileInstagram 사용자 프로필을 가져옵니다. 둘 중 하나를 전달하세요: username 또는 user_id.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
username | string | -- | Instagram 핸들 (@ 없음). username 또는 user_id 중 하나가 필요합니다. |
user_id | string | -- | 숫자 사용자 ID. username 또는 user_id 중 하나가 필요합니다. |
예제
curl -X POST 'https://api.scavio.dev/api/v1/instagram/profile' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"username": "instagram"}'응답 필드 (data.user)
| 필드 | 타입 | 설명 |
|---|---|---|
id | string | 숫자 사용자 ID (user_id로 사용) |
username | string | 사용자명 (핸들) |
full_name | string | 표시 이름 |
biography | string | 소개 텍스트 |
external_url | string | 프로필 링크 |
profile_pic_url_hd | string | 고화질 아바타 URL |
is_verified | boolean | 인증 배지 |
is_private | boolean | 비공개 계정 |
edge_followed_by.count | number | 팔로워 수 |
edge_follow.count | number | 팔로잉 수 |
edge_owner_to_timeline_media.count | number | 게시물 총계 |
예제 응답
{
"data": {
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"biography": "Discover what's next on Instagram",
"is_verified": true,
"is_private": false,
"edge_followed_by": { "count": 672000000 },
"edge_follow": { "count": 250 },
"edge_owner_to_timeline_media": { "count": 7600 }
}
},
"response_time": 845,
"credits_used": 2,
"credits_remaining": 11750
}사용자 게시물
POST https://api.scavio.dev/api/v1/instagram/user/posts사용자의 게시물 (타임라인 미디어) 목록을 가져옵니다. username 또는 user_id를 전달하세요.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
username | string | -- | 핸들 (@ 없음). username 또는 user_id 중 하나가 필요합니다. |
user_id | string | -- | 숫자 사용자 ID. username 또는 user_id 중 하나가 필요합니다. |
count | number | 12 | 페이지당 결과 수 (1-50). |
cursor | string | -- | 페이지네이션 커서. 이전 응답의 data.page_info.end_cursor를 사용하세요. |
페이지네이션
다음 요청에서 data.page_info.end_cursor를 cursor로 사용하세요.data.page_info.has_next_page가 false이면 중단합니다.
사용자 릴스 (/api/v1/instagram/user/reels) 및 태그된 게시물 (/api/v1/instagram/user/tagged)은 사용자 게시물과 동일한 파라미터와 페이지네이션을 사용하며, 각각 릴스와 태그된 미디어를 반환합니다.
사용자 스토리
POST https://api.scavio.dev/api/v1/instagram/user/stories사용자의 현재 활성 스토리를 가져옵니다. username 또는 user_id를 전달하세요. 각 스토리의 미디어 URL, 유형 (이미지/비디오) 및 타임스탬프를 반환합니다.
게시물 상세 정보
POST https://api.scavio.dev/api/v1/instagram/post단일 게시물 또는 릴스의 전체 상세 정보를 가져옵니다. 다음 중 하나를 전달하세요: url, media_id 또는 shortcode.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
url | string | -- | 게시물 URL. /p/, /reel/, /reels/, /tv/ 경로를 지원합니다. |
media_id | string | -- | 숫자 미디어 ID. |
shortcode | string | -- | 게시물 단축 코드, 예: DUajw4YkorV. |
예제
curl -X POST 'https://api.scavio.dev/api/v1/instagram/post' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"shortcode": "DUajw4YkorV"}'게시물 댓글
POST https://api.scavio.dev/api/v1/instagram/post/comments게시물의 댓글을 가져옵니다. 둘 중 하나를 전달하세요: shortcode 또는 게시물 url.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
shortcode | string | -- | 게시물 단축 코드. shortcode 또는 url 중 하나가 필요합니다. |
url | string | -- | 게시물 URL. 단축 코드가 추출됩니다. |
cursor | string | -- | 페이지네이션 커서. 이전 응답의 data.next_min_id를 사용하세요. |
sort_order | string | "popular" | "popular" 또는 "newest". |
페이지네이션
다음 cursor로 data.next_min_id를 사용하세요. 없으면 중단합니다. 각 댓글은 pk 필드를 노출합니다. 답글 엔드포인트에서comment_id로 사용하세요.
댓글 답글
POST https://api.scavio.dev/api/v1/instagram/post/comments/replies특정 댓글에 대한 답글을 가져옵니다.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
media_id | string | -- | 필수. 게시물의 숫자 미디어 ID. |
comment_id | string | -- | 필수. 부모 댓글 ID (댓글 엔드포인트의 pk). |
cursor | string | -- | 페이지네이션 커서. 이전 응답의 data.next_min_child_cursor를 사용하세요. |
사용자 검색
POST https://api.scavio.dev/api/v1/instagram/search/users키워드로 Instagram 사용자를 검색합니다.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
keyword | string | -- | 필수. 검색어 (1~500자). |
cursor | string | -- | 페이지네이션을 위한 이전 응답의 순위 토큰. |
해시태그 검색 (/api/v1/instagram/search/hashtags)은 동일한 파라미터를 사용하며 미디어 수와 함께 일치하는 해시태그를 반환합니다.
사용자 팔로워
POST https://api.scavio.dev/api/v1/instagram/user/followers사용자의 팔로워 목록을 가져옵니다. username 또는 user_id를 전달하세요.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
username | string | -- | 핸들 (@ 없음). username 또는 user_id 중 하나가 필요합니다. |
user_id | string | -- | 숫자 사용자 ID. username 또는 user_id 중 하나가 필요합니다. |
count | number | 12 | 페이지당 결과 수 (1-100). |
cursor | string | -- | 페이지네이션 커서. 이전 응답의 data.next_max_id를 사용하세요. |
사용자 팔로잉
POST https://api.scavio.dev/api/v1/instagram/user/followings사용자가 팔로우하는 계정을 가져옵니다. 팔로워와 동일한 요청 형식과 파라미터를 사용합니다.
페이지네이션 참조
| 커서 필드 | 엔드포인트 | 중단 조건 |
|---|---|---|
data.page_info.end_cursor | user/posts, user/reels, user/tagged | has_next_page === false |
data.next_min_id | post/comments | 커서 없음 |
data.next_min_child_cursor | post/comments/replies | 커서 없음 |
data.next_max_id | user/followers, user/followings | 커서 없음 |
| 순위 토큰 | search/users, search/hashtags | 더 이상 결과 없음 |
참고 사항
- 모든 엔드포인트는 요청당 2크레딧이 소모됩니다.
- 사용자 엔드포인트는
username또는 숫자user_id를 받으며, 게시물 엔드포인트는url,media_id또는shortcode를 받습니다. - 팔로워 및 팔로잉 목록은 Instagram이 허용하는 계정에 대해서만 페이지네이션이 가능합니다. 대규모 또는 인증된 계정은
should_limit_list_of_followers: true,has_more: false를 반환하며next_max_id가 없습니다. 이는 Instagram의 제한 사항이지 오류가 아닙니다. 소규모의 인증되지 않은 계정으로 페이지네이션을 테스트하세요. 401,429및502처리에 대해서는 오류 문서를 참조하세요.