ugwanggi Partner API

소셜미디어(YouTube · Instagram) 마케팅 데이터를 제공하는 파트너용 REST API입니다. 크리에이터 · 콘텐츠 · 트렌드 데이터를 조회할 수 있습니다.

Base URL https://partner-api.ugwanggi.com

모든 응답은 application/json (UTF-8)이며, 인증은 API 키(Bearer)로 이루어집니다. 아래 Quickstart로 1분 안에 첫 요청을 보낼 수 있습니다.

Quickstart

발급받은 API 키(ug_live_로 시작)를 Authorization 헤더에 담아 요청합니다.

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/creators?sort=subscriber_growth&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/creators",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={"sort": "subscriber_growth", "limit": 10},
)
print(resp.json())
const params = new URLSearchParams({ sort: "subscriber_growth", limit: 10 });

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/creators?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Authentication

모든 요청에 API 키를 Bearer 토큰으로 포함해야 합니다. 키는 발급 시 1회만 전달되며 안전하게 보관하세요. 노출이 의심되면 재발급(로테이션)을 요청하면 됩니다.

Authorization: Bearer ug_live_xxxxxxxxxxxxxxxxxxxxxxxx
headers = {"Authorization": "Bearer ug_live_xxxxxxxxxxxx"}
const headers = { Authorization: "Bearer ug_live_xxxxxxxxxxxx" };
키가 없거나 유효하지 않으면 401 Unauthorized를 반환합니다.

Errors

코드의미
401API 키 누락 · 유효하지 않음 · 만료
404요청한 리소스를 찾을 수 없음 (존재하지 않는 channel_id 등)
422파라미터 형식 오류 (범위 초과 등)
429요청 속도 제한 초과 — 잠시 후 재시도
5xx서버 오류 — 지속되면 문의

크리에이터 목록 조회

조건에 맞는 YouTube 크리에이터를 정렬·필터하여 반환합니다.

GET /v1/youtube/creators

Query parameters

이름타입설명
sort optionalenum정렬 기준 (아래 값 참고). 기본 subscribers
order optionalasc · desc정렬 방향. 기본 desc
limit optionalinteger (1–100)가져올 개수. 기본 20
offset optionalinteger (≥0)페이지네이션 시작 위치
category optionalstring카테고리. 예: 뷰티, 패션, 푸드, 여행, 육아, 운동
channel_keyword optionalstring (1–50자)채널 키워드 검색어. 부분일치이며 대소문자를 구분하지 않습니다. 예: 다이어트다이어트식단·다이어트레시피도 매칭
format optionalenum영상 유형. 아래 format 값 23종 중 하나와 정확히 일치해야 하며, 목록에 없는 값은 422
min_subscribers optionalinteger최소 구독자 수
max_subscribers optionalinteger최대 구독자 수 (숨은 라이징 탐색 등)
has_ad optionalboolean광고 이력 보유 여부
country optionalstring국가 코드. 예: KR
q optionalstring채널명 검색어

sort

subscribers 구독자 수 subscriber_growth 최근 성장률 avg_views 평균 조회수 avg_views_short 숏폼 평균 조회수 view_efficiency 구독자 대비 조회효율 ad_views 광고 평균 조회수 engagement 참여율 recent_ad 최근 광고 활동 trend 트렌드 편입

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/creators?sort=subscriber_growth&order=desc&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/creators",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "sort": "subscriber_growth",
        "order": "desc",
        "limit": 10,
        # "category": "뷰티",
        # "channel_keyword": "다이어트",   # 부분일치
        # "format": "먹방",                # 23종 중 하나
        # "max_subscribers": 100000,
    },
)
print(resp.json())
const params = new URLSearchParams({
  sort: "subscriber_growth",
  order: "desc",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/creators?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "total": 12345,
  "limit": 10,
  "offset": 0,
  "sort": "subscriber_growth",
  "order": "desc",
  "data": [
    {
      "channel_id": "UCxxxxxxxx",
      "title": "채널명",
      "thumbnail": "https://...",
      "email": "contact@example.com",
      "countryCode": "KR",
      "topic": ["뷰티 & 메이크업", "일상 & 라이프스타일"],
      "format": ["리뷰 & 언박싱", "브이로그"],
      "channel_keywords": ["뷰티", "메이크업", "코스메틱"],
      "subscribers": 523000,
      "totalViews": 87000000,
      "total_videos": 412,
      "average_views": 95000,
      "average_views_short": 210000,
      "average_views_subs": 0.18,
      "engagement_rate": 0.042,
      "short_ratio": 0.63,
      "subs_growth_3_months": 0.12,
      "subs_growth_3_months_amount": 56000,
      "has_ad": true,
      "average_views_ads": 88000,
      "last_ppl_diff": 5,
      "top_industries": [
        { "industry": "IT & 전자기기", "percentage": 25.0 },
        { "industry": "뷰티 & 메이크업", "percentage": 25.0 }
      ],
      "top_brands": [
        { "brand": "브랜드1", "brand_logo": "https://...", "sponsored_videos": 3 },
        { "brand": "브랜드2", "brand_logo": "https://...", "sponsored_videos": 1 }
      ],
      "demographics": {
        "top_demographic": "F25_34",
        "top_demographic_value": 32,
        "breakdown": {
          "F13_17": 2, "F18_24": 15, "F25_34": 32, "F35_44": 20,
          "F45_54": 8, "F55_64": 3, "F65": 1,
          "M13_17": 1, "M18_24": 9, "M25_34": 5, "M35_44": 3,
          "M45_54": 1, "M55_64": 0, "M65": 0
        }
      },
      "registerYouTubeDate": "2019-03-01",
      "last_update": "2026-06-30"
    }
  ]
}

응답 필드

필드타입설명
channel_idstringYouTube 채널 고유 ID
custom_channel_idstring커스텀 채널 핸들(@handle). 없을 수 있음
titlestring채널명
thumbnailstring (URL)채널 썸네일 이미지 URL
emailstring공개 비즈니스 이메일. 없을 수 있음
countryCodestring국가 코드. 예: KR
topicarray<enum>채널 주제 카테고리 (복수). 아래 topic 값 참고
formatarray<string>채널이 주로 만드는 영상 유형 (복수). 아래 format 값 23종이 대표값이며, 그 밖의 값도 나올 수 있습니다
channel_keywordsarray<string>채널 키워드 (대표 키워드 목록)
subscribersinteger구독자 수
totalViewsinteger누적 총 조회수
total_videosinteger총 영상 수
average_viewsinteger평균 조회수
average_views_shortinteger숏폼 평균 조회수
average_views_subsfloat구독자 대비 평균 조회수 (도달 효율)
engagement_ratefloat참여율
short_ratiofloat전체 영상 중 숏폼 비율
subs_growth_3_monthsfloat최근 3개월 구독자 성장률
subs_growth_3_months_amountinteger최근 3개월 구독자 증가 수
has_adboolean광고/협찬 이력 보유 여부
average_views_adsinteger광고 콘텐츠 평균 조회수
last_ppl_diffinteger마지막 광고(PPL) 이후 경과일
top_industriesarray<object>광고한 산업군 비중 상위 3개 (아래 top_industries 참고). 광고 이력이 없으면 []
top_brandsarray<object>광고한 브랜드 상위 5개 (아래 top_brands 참고). 광고 이력이 없으면 []
demographicsobject시청자 인구통계 (아래 demographics 참고)
registerYouTubeDatedate채널 개설일. YYYY-MM-DD
last_updatedate데이터 최종 갱신일. YYYY-MM-DD

top_industries 객체

해당 크리에이터가 광고한 브랜드들의 산업군 분포입니다. 비중이 높은 순으로 최대 3개이며, 광고 이력이 없으면 빈 배열입니다.

필드타입설명
industrystring산업군 이름. 예: IT & 전자기기
percentagefloat전체 광고 영상 중 해당 산업군이 차지하는 비율(%). 상위 3개만 반환하므로 합이 100이 되지는 않습니다

top_brands 객체

해당 크리에이터가 광고한 브랜드입니다. 협찬 영상 수가 많은 순으로 최대 5개이며, 광고 이력이 없으면 빈 배열입니다.

필드타입설명
brandstring브랜드명
brand_logostring (URL)브랜드 로고 이미지 URL. 없을 수 있음(null)
sponsored_videosinteger해당 브랜드의 협찬 영상 수

demographics 객체

시청자의 성별·연령 분포를 담은 객체입니다.

필드타입설명
top_demographicstringbreakdown 중 비율이 가장 높은 세그먼트. {성별}{연령대} 형식. 예: F25_34
top_demographic_valueintegerbreakdown 중 가장 높은 비율(%). 즉 top_demographic 세그먼트의 시청자 비율
breakdownobject성별×연령대별 시청자 비율(%). 키는 F(여성)·M(남성) + 연령대(13_17, 18_24, 25_34, 35_44, 45_54, 55_64, 65)

topic

뷰티 & 메이크업 피트니스 & 다이어트 패션 & 의류 음식 & 음료 일상 & 라이프스타일 리빙 & 인테리어 부동산 연애 & 결혼 육아 게임 IT & 전자기기 레저 & 스포츠 의료 & 건강 엔터테인먼트 주식 & 투자 금융 & 보험 경제 & 경영 수학 & 과학 종교 교육 & 커리어 동물 (펫) 사회 & 이슈 취미 & 공예 & 디자인 자동차 여행 & 캠핑 기타 뉴스 & 정치 음악 코미디

format

아래 23종이 format 쿼리 파라미터에 넣을 수 있는 값의 전부입니다. 그 밖의 값을 보내면 422를 반환합니다.

토크쇼 브이로그 리뷰 & 언박싱 꿀팁 튜토리얼 ASMR 토크 커버영상 강의 클립 먹방 챌린지 예능형 콘텐츠 하울 몰래카메라 리액션 인터뷰 다큐멘터리 예고편 라이브 영상 뮤직비디오 코미디 음악

활용 예시

목적파라미터
급상승 크리에이터 TOP 10?sort=subscriber_growth&order=desc&limit=10
카테고리별 라이징 (예: 뷰티)?category=뷰티&sort=subscriber_growth&limit=10
광고 반응이 좋은 크리에이터?has_ad=true&sort=ad_views&limit=10
숏폼 도달력이 높은 크리에이터?sort=avg_views_short&limit=10
최근 협찬/광고가 활발한 크리에이터?has_ad=true&sort=recent_ad&order=asc&limit=10
숨은 라이징 크리에이터?max_subscribers=100000&sort=view_efficiency&limit=10
특정 키워드를 다루는 크리에이터?channel_keyword=다이어트&sort=subscribers&limit=10
영상 유형으로 좁히기 (예: 먹방)?format=먹방&sort=avg_views&limit=10
키워드 + 유형 + 광고 이력 조합?channel_keyword=다이어트&format=먹방&has_ad=true&limit=10

크리에이터 단건 조회

channel_id로 특정 YouTube 크리에이터의 상세 정보를 반환합니다.

GET /v1/youtube/creators/{channel_id}

Path parameters

이름타입설명
channel_id requiredstringYouTube 채널 ID. 예: UCxxxxxxxx

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/creators/UCxxxxxxxx"
import requests

channel_id = "UCxxxxxxxx"
resp = requests.get(
    f"https://partner-api.ugwanggi.com/v1/youtube/creators/{channel_id}",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
)
print(resp.json())
const channelId = "UCxxxxxxxx";

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/creators/${channelId}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "data": {
    "channel_id": "UCxxxxxxxx",
    "title": "채널명",
    "thumbnail": "https://...",
    "email": "contact@example.com",
    "countryCode": "KR",
    "topic": ["뷰티 & 메이크업", "일상 & 라이프스타일"],
    "format": ["리뷰 & 언박싱", "브이로그"],
    "channel_keywords": ["뷰티", "메이크업", "코스메틱"],
    "subscribers": 523000,
    "totalViews": 87000000,
    "total_videos": 412,
    "average_views": 95000,
    "average_views_short": 210000,
    "average_views_subs": 0.18,
    "engagement_rate": 0.042,
    "short_ratio": 0.63,
    "subs_growth_3_months": 0.12,
    "subs_growth_3_months_amount": 56000,
    "has_ad": true,
    "average_views_ads": 88000,
    "last_ppl_diff": 5,
    "top_industries": [
      { "industry": "IT & 전자기기", "percentage": 25.0 },
      { "industry": "뷰티 & 메이크업", "percentage": 25.0 }
    ],
    "top_brands": [
      { "brand": "말해보카", "brand_logo": "https://...", "sponsored_videos": 3 }
    ],
    "demographics": {
      "top_demographic": "F25_34",
      "top_demographic_value": 32,
      "breakdown": {
        "F13_17": 2, "F18_24": 15, "F25_34": 32, "F35_44": 20,
        "F45_54": 8, "F55_64": 3, "F65": 1,
        "M13_17": 1, "M18_24": 9, "M25_34": 5, "M35_44": 3,
        "M45_54": 1, "M55_64": 0, "M65": 0
      }
    },
    "registerYouTubeDate": "2019-03-01",
    "last_update": "2026-06-30"
  }
}
응답의 각 필드 설명은 크리에이터 목록 조회응답 필드와 동일합니다. 존재하지 않는 channel_id404 Not Found를 반환합니다.

크리에이터 벌크 조회

여러 channel_id(최대 50개)를 한 번에 조회합니다. 존재하는 것은 요청 순서대로 data에, 없는 것은 not_found에 담아 반환합니다.

POST /v1/youtube/creators/batch

Body parameters

이름타입설명
channel_ids requiredstring[]조회할 YouTube 채널 ID 배열. 1~50개. 중복은 자동 제거됩니다.

Request

curl -X POST -H "Authorization: Bearer ug_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"channel_ids": ["UCaaaaaaaa", "UCbbbbbbbb", "UCcccccccc"]}' \
  "https://partner-api.ugwanggi.com/v1/youtube/creators/batch"
import requests

resp = requests.post(
    "https://partner-api.ugwanggi.com/v1/youtube/creators/batch",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    json={"channel_ids": ["UCaaaaaaaa", "UCbbbbbbbb", "UCcccccccc"]},
)
print(resp.json())
const resp = await fetch(
  "https://partner-api.ugwanggi.com/v1/youtube/creators/batch",
  {
    method: "POST",
    headers: {
      Authorization: "Bearer ug_live_xxxxx",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      channel_ids: ["UCaaaaaaaa", "UCbbbbbbbb", "UCcccccccc"],
    }),
  },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "requested": 3,
  "found": 2,
  "data": [
    { "channel_id": "UCaaaaaaaa", "title": "채널 A", "subscribers": 523000, ... },
    { "channel_id": "UCbbbbbbbb", "title": "채널 B", "subscribers": 128000, ... }
  ],
  "not_found": ["UCcccccccc"]
}
각 크리에이터 객체의 필드는 단건 조회 응답의 data와 동일합니다.

요즘 뜨는 크리에이터 (Rising)

최근 기간 동안 구독자를 크게 모은 YouTube 크리에이터를 기간·티어별로 훑어봅니다. 깊이 있는 마케팅 분석용 데이터라기보단, 지금 트렌드상 갑자기 인기를 끌거나 핫해진 인플루언서를 가볍게 찾아보는 재미 위주의 데이터입니다. "이번 주에 확 뜬 채널 누구야?" 같은 질문에 어울립니다.

GET /v1/youtube/rising
기간(period)×티어(tier)별 성장 TOP 50 스냅샷에서 조회합니다. 매일 새로 갈아엎는 최신 스냅샷만 보관하므로 과거 시점 조회는 불가하며, 데이터 기준일은 응답의 calculated_at으로 확인할 수 있습니다.

Query parameters

이름타입설명
period optionalenum성장을 재는 기간창. 7d · 30d · 60d. 기본 7d
tier optionalenum구독자 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
sort optionalenum정렬 기준. growth(성장량) · growth_pct(성장률%). 기본 growth
limit optionalinteger (1–50)가져올 개수. 기본 20

tier 값 (현재 구독자 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 10만 미만 Mid-tier 10만 이상 ~ 50만 미만 Macro 50만 이상 ~ 100만 미만 Mega 100만 이상

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/rising?period=7d&tier=Micro&sort=growth&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/rising",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "7d",
        "tier": "Micro",   # 생략하면 전 티어 대상
        "sort": "growth",  # "growth_pct"면 성장률 순
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "7d",
  tier: "Micro",
  sort: "growth",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/rising?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "period": "7d",
  "tier": "Micro",
  "sort": "growth",
  "calculated_at": "2026-07-06",
  "count": 10,
  "data": [
    {
      "rank": 1,
      "channel_id": "UCxxxxxxxx",
      "title": "채널명",
      "tier": "Micro",
      "current_subs": 82000,
      "base_subs": 61000,
      "growth": 21000,
      "growth_pct": 34.43
    }
  ]
}

응답 필드

필드타입설명
calculated_atdate이 데이터의 기준일 (스냅샷 집계일). YYYY-MM-DD
countinteger반환된 항목 수
data[].rankinteger정렬 기준상 순위 (1부터)
data[].channel_idstringYouTube 채널 고유 ID
data[].titlestring채널명
data[].tierenum구독자 규모 티어
data[].current_subsinteger현재 구독자 수
data[].base_subsinteger기준 시점(N일 전) 구독자 수
data[].growthinteger성장량 (현재 − 기준)
data[].growth_pctfloat성장률 %. 기준이 0이면 null
성장 지표 계산 방식
· current_subs — 현재 기준 구독자 수
· base_subs — 비교 기준이 되는 과거 구독자 수. 예: period=7d이면 약 7일 전 구독자 수
· growth = current_subs − base_subs
· growth_pct = growth ÷ base_subs × 100

광고 반응 TOP 크리에이터 (Ad Top · YouTube)

협찬·PPL 영상으로 실제 반응(조회수)을 잘 뽑아내는 YouTube 크리에이터를 기간·티어별로 훑어봅니다. Rising이 구독자 성장세를 본다면, 이 데이터는 광고 콘텐츠의 반응을 기준으로 한 TOP 50입니다. 어떤 크리에이터에게 협찬을 맡겼을 때 조회수가 잘 나오는지 가볍게 살펴보는 용도입니다.

GET /v1/youtube/ad-top
기간(period)×티어(tier)별 광고 반응 TOP 50 스냅샷에서 조회합니다. 매일 새로 갈아엎는 최신 스냅샷만 보관하므로 과거 시점 조회는 불가하며, 데이터 기준일은 응답의 calculated_at으로 확인할 수 있습니다.

Query parameters

이름타입설명
period optionalenum집계 기간창. 7d · 30d · 60d. 기본 7d
tier optionalenum구독자 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
sort optionalenum정렬 기준. total_views(광고 영상 조회수 합) · ad_post_count(광고 영상 수). 기본 total_views
limit optionalinteger (1–50)가져올 개수. 기본 20

tier 값 (현재 구독자 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 10만 미만 Mid-tier 10만 이상 ~ 50만 미만 Macro 50만 이상 ~ 100만 미만 Mega 100만 이상

YouTube Rising과 동일한 5개 티어 체계입니다.

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/ad-top?period=7d&tier=Micro&sort=total_views&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/ad-top",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "7d",
        "tier": "Micro",        # 생략하면 전 티어 대상
        "sort": "total_views",  # "ad_post_count"면 광고 영상 수 순
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "7d",
  tier: "Micro",
  sort: "total_views",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/ad-top?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "period": "7d",
  "tier": "Micro",
  "sort": "total_views",
  "calculated_at": "2026-07-06",
  "count": 10,
  "data": [
    {
      "rank": 1,
      "channel_id": "UCxxxxxxxxxxxxxxxxxxxxxx",
      "title": "크리에이터 채널명",
      "tier": "Micro",
      "subscribers": 52000,
      "ad_post_count": 8,
      "total_views": 1240000
    }
  ]
}

응답 필드

필드타입설명
calculated_atdate이 데이터의 기준일 (스냅샷 집계일). YYYY-MM-DD
countinteger반환된 항목 수
data[].rankinteger정렬 기준상 순위 (1부터)
data[].channel_idstringYouTube 채널 고유 ID (조인 키)
data[].titlestring채널명
data[].tierenum구독자 규모 티어
data[].subscribersinteger집계 시점 구독자 수
data[].ad_post_countinteger해당 기간 광고(협찬/PPL) 영상 수
data[].total_viewsinteger해당 기간 광고 영상 조회수 합산

카테고리별 숏폼 반응 TOP 크리에이터 (Category Top · YouTube)

특정 카테고리·체급에서 숏폼(Shorts)으로 실제 반응(조회수)을 잘 뽑아내는 YouTube 크리에이터를 훑어봅니다. Ad Top이 광고 영상만 보는 반면, 이 데이터는 전체 숏폼을 대상으로 기간×카테고리×티어별 TOP을 담고 있습니다. "게임 마이크로 크리에이터 중 요즘 숏폼 조회수가 잘 나오는 사람"처럼 카테고리를 좁혀 살펴보는 용도입니다.

GET /v1/youtube/category-top
기간(period)×카테고리(category)×티어(tier)별 숏폼 반응 TOP 스냅샷에서 조회합니다. 매일 새로 갈아엎는 최신 스냅샷만 보관하므로 과거 시점 조회는 불가하며, 데이터 기준일은 응답의 calculated_at으로 확인할 수 있습니다.

Query parameters

이름타입설명
period optionalenum집계 기간창. 7d · 30d · 60d. 기본 7d
category optionalenum콘텐츠 카테고리 (아래 category 값 참고). 생략 시 전 카테고리 대상
tier optionalenum구독자 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
sort optionalenum정렬 기준. total_views(숏폼 조회수 합) · video_count(숏폼 영상 편수). 기본 total_views
limit optionalinteger (1–50)가져올 개수. 기본 10

category

뷰티 & 메이크업 피트니스 & 다이어트 패션 & 의류 음식 & 음료 일상 & 라이프스타일 리빙 & 인테리어 부동산 연애 & 결혼 육아 게임 IT & 전자기기 레저 & 스포츠 의료 & 건강 엔터테인먼트 주식 & 투자 금융 & 보험 경제 & 경영 수학 & 과학 종교 교육 & 커리어 동물 (펫) 사회 & 이슈 취미 & 공예 & 디자인 자동차 여행 & 캠핑 기타 뉴스 & 정치 음악 코미디

Instagram과는 다른 YouTube 고유 분류 체계입니다(총 29개).

tier 값 (현재 구독자 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 10만 미만 Mid-tier 10만 이상 ~ 50만 미만 Macro 50만 이상 ~ 100만 미만 Mega 100만 이상

YouTube Rising · Ad Top과 동일한 5개 티어 체계입니다.

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/category-top?period=7d&category=게임&tier=Micro&sort=total_views&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/category-top",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "7d",
        "category": "게임",      # 생략하면 전 카테고리 대상
        "tier": "Micro",         # 생략하면 전 티어 대상
        "sort": "total_views",   # "video_count"면 숏폼 영상 편수 순
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "7d",
  category: "게임",
  tier: "Micro",
  sort: "total_views",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/category-top?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "period": "7d",
  "category": "게임",
  "tier": "Micro",
  "sort": "total_views",
  "calculated_at": "2026-07-06",
  "count": 10,
  "data": [
    {
      "rank": 1,
      "channel_id": "UCxxxxxxxxxxxxxxxxxxxxxx",
      "title": "채널명",
      "category": "게임",
      "tier": "Micro",
      "subscribers": 52000,
      "video_count": 8,
      "total_views": 1240000
    }
  ]
}

응답 필드

필드타입설명
calculated_atdate이 데이터의 기준일 (스냅샷 집계일). YYYY-MM-DD
countinteger반환된 항목 수
data[].rankinteger정렬 기준상 순위 (1부터)
data[].channel_idstringYouTube 채널 고유 ID (조인 키)
data[].titlestring채널명
data[].categoryenum콘텐츠 카테고리
data[].tierenum구독자 규모 티어
data[].subscribersinteger집계 시점 구독자 수
data[].video_countinteger해당 기간 숏폼 영상 편수
data[].total_viewsinteger해당 기간 숏폼 영상 조회수 합산

광고 콘텐츠 목록 (Ad Content · YouTube)

브랜드 협찬·PPL이 붙은 YouTube 광고 영상 하나하나를 기간·브랜드 카테고리·구독자 규모(tier)로 필터해 지표(조회수·좋아요·댓글) 순으로 반환합니다.

GET /v1/youtube/ad-content/list

Query parameters

이름타입설명
period optionalenum업로드 기간창. 최근 7d · 30d · 60d 이내 업로드분만 조회. 기본 7d
sort optionalenum정렬 기준(내림차순). views · likes · comments · subscribers. 기본 views
category optionalenum브랜드 카테고리 (아래 category 값 참고). 생략 시 전 카테고리 대상
tier optionalenum구독자 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
limit optionalinteger (1–50)가져올 개수. 기본 20

category

뷰티 & 메이크업 피트니스 & 다이어트 패션 & 의류 음식 & 음료 리빙 & 인테리어 정부기관 결혼 & 육아 게임 IT & 전자기기 레저 & 스포츠 의료 & 건강 엔터테인먼트 주식 & 투자 경제 & 경영 교육 & 커리어 동물 (펫) 취미 & 공예 & 디자인 자동차 여행

tier 값 (현재 구독자 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 10만 미만 Mid-tier 10만 이상 ~ 50만 미만 Macro 50만 이상 ~ 100만 미만 Mega 100만 이상

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/ad-content/list?period=30d&category=%EB%B7%B0%ED%8B%B0%20%26%20%EB%A9%94%EC%9D%B4%ED%81%AC%EC%97%85&sort=views&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/ad-content/list",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "30d",
        "sort": "views",       # views / likes / comments / subscribers
        "category": "뷰티 & 메이크업",  # 생략하면 전 카테고리 대상
        "tier": "Micro",       # 생략하면 전 티어 대상
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "30d",
  sort: "views",
  category: "뷰티 & 메이크업",
  tier: "Micro",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/ad-content/list?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "count": 10,
  "data": [
    {
      "video_id": "abcd1234",
      "video_url": "https://www.youtube.com/watch?v=abcd1234",
      "video_thumbnails_url": "https://i.ytimg.com/vi/abcd1234/hqdefault.jpg",
      "video_type": 0,
      "channel_id": "UCxxxxxxxx",
      "channel_title": "채널명",
      "title": "신제품 협찬 리뷰",
      "video_description": "이 영상은 유료 광고를 포함하고 있습니다 ...",
      "views": 421000,
      "likes": 12800,
      "comments": 640,
      "subscribers": 52000,
      "duration_seconds": 492,
      "ads_yn": 1,
      "brand1": "브랜드A",
      "brand2": null,
      "brand3": null,
      "publishDate": "2026-07-02T09:00:00",
      "last_update": "2026-07-15T04:00:00"
    }
  ]
}

응답 필드

필드타입설명
countinteger반환된 항목 수
data[].video_idstringYouTube 영상 고유 ID
data[].video_urlstring (URL)영상 URL
data[].video_thumbnails_urlstring (URL)영상 썸네일 URL
data[].video_typeinteger영상 유형 코드 (롱폼/숏폼 등)
data[].channel_idstring업로드 채널 ID
data[].channel_titlestring채널명
data[].titlestring영상 제목
data[].video_descriptionstring영상 설명(본문)
data[].viewsinteger조회수
data[].likesinteger좋아요 수
data[].commentsinteger댓글 수
data[].subscribersinteger업로드 채널의 구독자 수
data[].duration_secondsinteger영상 길이(초)
data[].ads_yninteger광고 여부 (0/1)
data[].brand1 · brand2 · brand3string영상에 언급된 브랜드(최대 3개). 없으면 null
data[].publishDatedatetime업로드 일시
data[].last_updatedatetime데이터 최종 갱신 일시

광고 콘텐츠 지표 집계 (Ad Content Stats · YouTube)

광고 콘텐츠 목록동일한 필터(기간·브랜드 카테고리·구독자 규모)로 거른 광고 영상들의 조회수·좋아요·댓글에 대한 합계·영상당 평균·중앙값과 영상 수를 한 건으로 집계해 반환합니다. Category Top이 '크리에이터' 집계라면 이 API는 '콘텐츠 지표' 집계입니다. "이번 달 뷰티 광고 영상의 평균 조회수는?" 같은 질문에 어울립니다.

GET /v1/youtube/ad-content/stats

Query parameters

이름타입설명
period optionalenum업로드 기간창. 7d · 30d · 60d. 기본 7d
category optionalenum브랜드 카테고리 (목록 API의 category 값과 동일). 생략 시 전 카테고리 합산
tier optionalenum구독자 규모 티어 (목록 API의 tier 값과 동일). 생략 시 전 티어

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/ad-content/stats?period=30d&category=%EB%B7%B0%ED%8B%B0%20%26%20%EB%A9%94%EC%9D%B4%ED%81%AC%EC%97%85&tier=Micro"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/ad-content/stats",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "30d",
        "category": "뷰티 & 메이크업",  # 생략하면 전 카테고리 합산
        "tier": "Micro",       # 생략하면 전 티어
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "30d",
  category: "뷰티 & 메이크업",
  tier: "Micro",
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/ad-content/stats?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "period": "30d",
  "category": "뷰티 & 메이크업",
  "tier": "Micro",
  "video_count": 128,
  "total_views": 45200000,
  "total_likes": 1320000,
  "total_comments": 88000,
  "avg_views": 353125.0,
  "avg_likes": 10312.5,
  "avg_comments": 687.5,
  "median_views": 210000.0,
  "median_likes": 6400.0,
  "median_comments": 410.0
}

응답 필드

필드타입설명
periodenum요청한 기간창
categoryenum · null요청한 브랜드 카테고리 (미지정 시 null = 전 카테고리 합산)
tierenum · null요청한 구독자 규모 티어 (미지정 시 null)
video_countinteger집계 대상 광고 영상 수
total_views · total_likes · total_commentsinteger조회수·좋아요·댓글 합계
avg_views · avg_likes · avg_commentsfloat영상당 평균 (소수 첫째 자리 반올림)
median_views · median_likes · median_commentsfloat중앙값 (percentiles 50th 근사값)

키워드 영상 검색 (Video Search · YouTube)

검색 키워드로 YouTube 영상 제목(title)을 매칭해, 최근 60일 이내 업로드된 영상을 조회수 내림차순으로 반환합니다.

GET /v1/youtube/search/video_list

Query parameters

이름타입설명
keyword requiredstring (1자 이상)검색 키워드. 영상 제목에서 매칭
limit optionalinteger (1–20)가져올 개수. 기본 20

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/youtube/search/video_list?keyword=%EC%BA%A0%ED%95%91&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/youtube/search/video_list",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "keyword": "캠핑",
        "limit": 10,       # 1~20, 기본 20
    },
)
print(resp.json())
const params = new URLSearchParams({
  keyword: "캠핑",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/youtube/search/video_list?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "youtube",
  "keyword": "캠핑",
  "count": 10,
  "videos": [
    {
      "video_id": "abcd1234",
      "duration_seconds": 612,
      "publishDate": "2026-07-02T09:00:00",
      "title": "가을 캠핑 필수템 정리",
      "video_description": "이번 영상에서는 가을 캠핑에 꼭 필요한 ...",
      "ads_yn": 0,
      "video_thumbnails_url": "https://i.ytimg.com/vi/abcd1234/hqdefault.jpg",
      "views": 421000
    }
  ]
}

응답 필드

필드타입설명
platformstring항상 "youtube"
keywordstring요청한 검색 키워드
countinteger반환된 항목 수 (최대 limit)
videos[].video_idstringYouTube 영상 고유 ID (영상 URL은 https://www.youtube.com/watch?v={video_id})
videos[].duration_secondsinteger영상 길이(초)
videos[].publishDatedatetime업로드 일시 (최근 60일 이내)
videos[].titlestring영상 제목
videos[].video_descriptionstring영상 설명(본문)
videos[].ads_yninteger광고 여부 (0/1)
videos[].video_thumbnails_urlstring (URL)영상 썸네일 URL
videos[].viewsinteger조회수 (정렬 기준, 내림차순)

크리에이터 목록 조회

조건에 맞는 Instagram 크리에이터를 정렬·필터하여 반환합니다. 각 크리에이터 객체는 Instagram 지표 체계(followers · feed · reel · ad)를 사용하며, 단건 조회 응답의 data와 완전히 같은 형태입니다.

GET /v1/instagram/creators

Query parameters

이름타입설명
sort optionalenum정렬 기준 (아래 값 참고). 기본 followers
order optionalasc · desc정렬 방향. 기본 desc
limit optionalinteger (1–100)가져올 개수. 기본 20
offset optionalinteger (≥0)페이지네이션 시작 위치. offset + limit10,000을 초과하면 422
q optionalstring (1–50자)이름 검색어. 부분일치이며 대소문자를 구분하지 않습니다. 표시명(username)과 핸들(user_id)을 모두 검색합니다
category optionalenum주제 카테고리. 아래 topic 값 20종 중 하나와 정확히 일치해야 하며, 목록에 없는 값은 422. 대표 주제 하나가 아니라 보유한 주제 배열 전체를 대상으로 매칭합니다
keyword optionalstring (1–50자)콘텐츠 키워드 검색어. 예: 다이어트. 형태소·동의어 기반 매칭이라 YouTube의 channel_keyword(단순 부분일치)와 동작이 다릅니다
user_type optionalenum계정 성격. 아래 user_type 값 6종 중 하나
mood optionalenum콘텐츠 톤&무드. 아래 mood 값 11종 중 하나. 크리에이터는 무드를 여러 개 가지며 하나라도 일치하면 매칭됩니다
min_followers optionalinteger최소 팔로워 수
max_followers optionalinteger최대 팔로워 수 (숨은 라이징 탐색 등)
has_ad optionalboolean광고 이력 보유 여부

sort

sort 키는 짧은 별칭이고, 실제 정렬은 아래 대응 응답 필드 값으로 이뤄집니다. 예를 들어 sort=avg_viewsreel.avg_views_last_10_org_reel 기준 정렬입니다.

sort대응 응답 필드설명
followersfollowers팔로워 수 (기본값)
avg_viewsreel.avg_views_last_10_org_reel릴스 평균 조회수 (일반)
ad_viewsreel.avg_views_last_10_ad_reel릴스 평균 조회수 (광고)
engagement_reelreel.engagement_pct_last_10_org_reel릴스 참여율
engagement_feedfeed.engagement_pct_last_10_org_feed피드 참여율
reach_efficiencyreel.reels_followers_per_view팔로워 대비 조회 효율
recent_postlatest_post_publish_date최근 게시 순
Instagram은 참여 지표가 피드/릴스로 나뉘어 있어 engagement도 두 가지입니다. reach_efficiency는 값이 클수록 팔로워 대비 도달이 좋다는 뜻이며, 팔로워가 극히 적은 계정이 상위를 차지하기 쉬우므로 min_followers와 함께 쓰는 것을 권합니다.
참여율 값의 단위engagement : (Σlikes + Σcomments) × 100 ÷ Σviews
최근 10개의 게시물을 대상으로 팔로워 대비 얼마나 활발하게 반응하는지 계산된 지표입니다.

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/instagram/creators?category=뷰티&user_type=휴먼 인플루언서&sort=followers&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/instagram/creators",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "category": "뷰티",
        "user_type": "휴먼 인플루언서",   # 브랜드 계정·커머스 셀러 제외
        "sort": "followers",
        "order": "desc",
        "limit": 10,
        # "keyword": "다이어트",         # 동의어 확장 검색
        # "mood": "감성적",
        # "min_followers": 10000,
        # "has_ad": True,
    },
)
print(resp.json())
const params = new URLSearchParams({
  category: "뷰티",
  user_type: "휴먼 인플루언서",
  sort: "followers",
  order: "desc",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/instagram/creators?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "total": 33359,
  "limit": 10,
  "offset": 0,
  "sort": "followers",
  "order": "desc",
  "data": [
    {
      "user_id": "example.beauty",
      "username": "이그잼플뷰티 | Example Beauty",
      "profile_picture_url": "https://...",
      "user_type": "휴먼 인플루언서",
      "content_function": ["리뷰", "꿀팁/하우투"],
      "topic": ["뷰티", "패션"],
      "mood": ["러블리/귀여운", "밝은"],
      "persona": "얼굴 중심",
      "keywords": ["뷰티", "메이크업", "스킨케어"],
      "target_countries": ["KR", "JP"],
      "followers": 146266,
      "following": 412,
      "follower_following_ratio": 355.01,
      "posts": 1627,
      "has_ad": true,
      "latest_post_publish_date": "2026-07-31T08:15:34",
      "demographics": { "primary_age": "25-34세", "primary_gender": "F", "primary_audience_ratio": 31.2 },
      "feed": { "...": "피드 성과 지표" },
      "reel": { "...": "릴스 성과 지표" },
      "ad": { "...": "광고 산업 정보" }
    }
  ]
}
각 크리에이터 객체의 필드 설명은 단건 조회응답 필드와 동일합니다(feed · reel · ad · demographics 객체 포함). 조건에 맞는 크리에이터가 없어도 200 OK(빈 data, total: 0)입니다.

활용 예시

목적파라미터
브랜드 계정을 제외한 뷰티 인플루언서?category=뷰티&user_type=휴먼 인플루언서&limit=10
광고 반응이 좋은 크리에이터?has_ad=true&sort=ad_views&limit=10
릴스 참여율이 높은 크리에이터?sort=engagement_reel&min_followers=10000&limit=10
숨은 라이징 (도달 효율 기준)?max_followers=50000&min_followers=5000&sort=reach_efficiency&limit=10
특정 키워드를 다루는 크리에이터?keyword=다이어트&sort=followers&limit=10
무드로 톤 맞추기?mood=감성적&sort=engagement_feed&limit=10
이름으로 찾기?q=뷰티&limit=10

크리에이터 단건 조회

user_id로 특정 Instagram 크리에이터의 상세 정보를 반환합니다.

GET /v1/instagram/creators/{user_id}

Path parameters

이름타입설명
user_id requiredstringInstagram 사용자 핸들(고유 ID). 예: example.motors

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/instagram/creators/example.motors"
import requests

user_id = "example.motors"
resp = requests.get(
    f"https://partner-api.ugwanggi.com/v1/instagram/creators/{user_id}",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
)
print(resp.json())
const userId = "example.motors";

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/instagram/creators/${userId}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "data": {
    "user_id": "example.motors",
    "username": "이그잼플모터스 | Example Motors",
    "profile_picture_url": "https://...",
    "user_type": "공식/브랜드 계정",
    "content_function": ["프로모션/광고", "큐레이션/에디토리얼"],
    "topic": ["자동차"],
    "mood": ["럭셔리", "미니멀", "시크"],
    "persona": "제품 중심",
    "keywords": ["ExampleMotors", "이그잼플모터스", "전기차", "SUV", "디자인"],
    "target_countries": ["KR"],
    "followers": 146266,
    "following": 28,
    "follower_following_ratio": 5223.79,
    "posts": 1627,
    "has_ad": true,
    "latest_post_publish_date": "2026-07-03T17:35:33",
    "demographics": {
      "primary_age": "35-44세",
      "primary_gender": "M",
      "primary_audience_ratio": 22.75
    },
    "feed": {
      "feed_share_pct": 65.88,
      "avg_likes_last_10_org_feed": 311.7,
      "avg_likes_last_10_ad_feed": 1399.0,
      "avg_comments_last_10_org_feed": 2.0,
      "avg_comments_last_10_ad_feed": 40.0,
      "engagement_pct_last_10_org_feed": 2.14,
      "engagement_pct_last_10_ad_feed": 0.98
    },
    "reel": {
      "reel_share_pct": 34.12,
      "avg_views_last_10_org_reel": 18328.2,
      "avg_views_last_10_ad_reel": null,
      "engagement_pct_last_10_org_reel": 2.06,
      "engagement_pct_last_10_ad_reel": null,
      "reels_followers_per_view": 12.53,
      "reels_engagement_ratio": 0.01
    },
    "ad": {
      "primary_ad_industry": "자동차",
      "primary_ad_industry_ratio": 100.0,
      "ad_industries": ["자동차"]
    }
  }
}

응답 필드

필드타입설명
user_idstringInstagram 사용자 핸들(고유 ID)
usernamestring표시 이름. 없을 수 있음(null)
profile_picture_urlstring (URL)프로필 이미지 URL
user_typeenum계정 유형. 고정값 (아래 user_type 값 참고)
content_functionenum[]콘텐츠 기능/역할 태그(복수). 고정값 (아래 content_function 값 참고)
topicenum[]분야/주제 태그(복수). 고정값 (아래 topic 값 참고)
moodenum[]무드/톤 태그(복수). 고정값 (아래 mood 값 참고)
personaenum페르소나(연출 방식). 고정값 (아래 persona 값 참고)
keywordsstring[]관련 키워드 목록
target_countriesstring[]주요 타겟 국가 코드. 예: KR
followersinteger팔로워 수. 없을 수 있음(null)
followinginteger팔로잉 수
follower_following_ratiofloat팔로워/팔로잉 비율. 없을 수 있음(null)
postsinteger총 게시물 수
has_adboolean광고/협찬 이력 보유 여부
latest_post_publish_datedatetime최근 게시물 발행 시각 (ISO 8601)
demographicsobject주요 오디언스 요약 (아래 demographics 참고)
feedobject피드 성과 지표 (아래 feed 참고)
reelobject릴스 성과 지표 (아래 reel 참고)
adobject광고 산업 정보 (아래 ad 참고)
광고 이력이 없는 계정은 *_ad_* 지표가, 반대로 일반 게시물이 없으면 *_org_* 지표가 null로 반환됩니다.

demographics 객체

주요 오디언스(대표 세그먼트)를 요약한 객체입니다.

필드타입설명
primary_agestring주요 오디언스 연령대. 예: 25-34세
primary_genderstring주요 오디언스 성별. F(여성) · M(남성)
primary_audience_ratiofloat주요 오디언스 비율(%)

feed 객체

피드(일반 게시물) 성과 지표입니다. org는 일반, ad는 광고 게시물 기준이며 모두 최근 10개 평균입니다.

필드타입설명
feed_share_pctfloat전체 게시물 중 피드 비율(%)
avg_likes_last_10_org_feedfloat일반 피드 평균 좋아요
avg_likes_last_10_ad_feedfloat광고 피드 평균 좋아요
avg_comments_last_10_org_feedfloat일반 피드 평균 댓글
avg_comments_last_10_ad_feedfloat광고 피드 평균 댓글
engagement_pct_last_10_org_feedfloat일반 피드 참여율(%)
engagement_pct_last_10_ad_feedfloat광고 피드 참여율(%)

reel 객체

릴스 성과 지표입니다. org는 일반, ad는 광고 릴스 기준이며 모두 최근 10개 평균입니다.

필드타입설명
reel_share_pctfloat전체 게시물 중 릴스 비율(%)
avg_views_last_10_org_reelfloat일반 릴스 평균 조회수
avg_views_last_10_ad_reelfloat광고 릴스 평균 조회수
engagement_pct_last_10_org_reelfloat일반 릴스 참여율(%)
engagement_pct_last_10_ad_reelfloat광고 릴스 참여율(%)
reels_followers_per_viewfloat팔로워 대비 조회 비율
reels_engagement_ratiofloat조회 대비 참여 비율

ad 객체

광고 진행 이력이 있는 산업 정보입니다.

필드타입설명
primary_ad_industryenum주요 광고 산업. 고정값 (아래 ad_industries 값 참고). 없을 수 있음(null)
primary_ad_industry_ratiofloat주요 광고 산업 비율(%)
ad_industriesenum[]광고 이력이 있는 산업 목록. 고정값 (아래 ad_industries 값 참고)

ad_industries

ad_industriesprimary_ad_industry에 공통으로 쓰이는 고정값입니다.

IT & 전자기기 음식 & 음료 엔터테인먼트 쇼핑 & 유통 패션 & 의류 뷰티 & 메이크업 리빙 & 인테리어 자동차 게임 의료 & 건강 금융 & 보험 여행 취미 & 공예 & 디자인 교육 & 커리어 결혼 & 육아 정부기관 피트니스 & 다이어트 기타산업 주식 & 투자 레저 & 스포츠 에너지 & 환경 부동산 & 건설 동물 (펫) 국제 & 비영리 단체 경제 & 경영 수학 & 과학 사회 & 이슈

user_type

휴먼 인플루언서 공식/브랜드 계정 미디어/파워페이지 커머스 셀러 커뮤니티/테마 페이지 일러스트/웹툰

content_function

리뷰 꿀팁/하우투 일상/공감 엔터테인먼트 루틴 프로모션/광고 큐레이션/에디토리얼

topic

뷰티 패션 푸드 여행 육아 반려동물 인테리어/리빙 관능/섹시 아트/문화 엔터테인먼트 테크/디지털 스포츠/피트니스 자동차 게임 교육/커리어 연애/결혼 의료/건강 취미/레저 종교/신앙 사회/정치/경제

mood

밝은 자연스러운 다크/무디 럭셔리 미니멀 관능/섹시 스트릿 러블리/귀여운 시크 유머러스 감성적

persona

얼굴 중심 목소리/자막 중심 제품 중심 가족 중심 반려동물 중심 인물 미등장/편집형 일러스트/웹툰

크리에이터 벌크 조회

여러 user_id(최대 50개)를 한 번에 조회합니다. 존재하는 것은 요청 순서대로 data에, 없는 것은 not_found에 담아 반환합니다.

POST /v1/instagram/creators/batch

Body parameters

이름타입설명
user_ids requiredstring[]조회할 Instagram 핸들 배열. 1~50개. 중복은 자동 제거됩니다.

Request

curl -X POST -H "Authorization: Bearer ug_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"user_ids": ["example.beauty", "example.motors", "no.such.handle"]}' \
  "https://partner-api.ugwanggi.com/v1/instagram/creators/batch"
import requests

resp = requests.post(
    "https://partner-api.ugwanggi.com/v1/instagram/creators/batch",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    json={"user_ids": ["example.beauty", "example.motors", "no.such.handle"]},
)
print(resp.json())
const resp = await fetch(
  "https://partner-api.ugwanggi.com/v1/instagram/creators/batch",
  {
    method: "POST",
    headers: {
      Authorization: "Bearer ug_live_xxxxx",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      user_ids: ["example.beauty", "example.motors", "no.such.handle"],
    }),
  },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "requested": 3,
  "found": 2,
  "data": [
    { "user_id": "example.beauty", "username": "이그잼플뷰티", "followers": 146266, ... },
    { "user_id": "example.motors", "username": "이그잼플모터스", "followers": 98120, ... }
  ],
  "not_found": ["no.such.handle"]
}
각 크리에이터 객체의 필드는 단건 조회 응답의 data와 동일합니다.

요즘 뜨는 크리에이터 (Rising · Instagram)

최근 기간 동안 팔로워를 크게 모은 Instagram 크리에이터를 기간·티어별로 훑어봅니다. YouTube Rising과 동일한 성격의 데이터로, 깊이 있는 마케팅 분석용이라기보단 지금 트렌드상 갑자기 인기를 끌거나 핫해진 인플루언서를 가볍게 찾아보는 재미 위주의 데이터입니다.

GET /v1/instagram/rising
기간(period)×티어(tier)별 성장 TOP 50 스냅샷에서 조회합니다. 매일 새로 갈아엎는 최신 스냅샷만 보관하므로 과거 시점 조회는 불가하며, 데이터 기준일은 응답의 calculated_at으로 확인할 수 있습니다.

Query parameters

이름타입설명
period optionalenum성장을 재는 기간창. 7d · 30d · 60d. 기본 7d
tier optionalenum팔로워 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
sort optionalenum정렬 기준. growth(성장량) · growth_pct(성장률%). 기본 growth
limit optionalinteger (1–50)가져올 개수. 기본 20

tier 값 (현재 팔로워 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 5만 미만 Mid-tier 5만 이상 ~ 10만 미만 High-tier 10만 이상 ~ 20만 미만 Macro 20만 이상 ~ 50만 미만 Mega 50만 이상 ~ 100만 미만 Celeb 100만 이상

팔로워 규모가 커지는 순서(Nano → Celeb)로 세분화된 7개 티어입니다. YouTube Rising(5티어)보다 High-tier·Celeb이 더 있고, 팔로워 경계값도 다릅니다.

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/instagram/rising?period=7d&tier=Micro&sort=growth&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/instagram/rising",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "7d",
        "tier": "Micro",   # 생략하면 전 티어 대상
        "sort": "growth",  # "growth_pct"면 성장률 순
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "7d",
  tier: "Micro",
  sort: "growth",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/instagram/rising?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "period": "7d",
  "tier": "Micro",
  "sort": "growth",
  "calculated_at": "2026-07-06",
  "count": 10,
  "data": [
    {
      "rank": 1,
      "user_id": "17841400000000000",
      "username": "creator_handle",
      "tier": "Micro",
      "current_followers": 82000,
      "base_followers": 61000,
      "growth": 21000,
      "growth_pct": 34.43
    }
  ]
}

응답 필드

필드타입설명
calculated_atdate이 데이터의 기준일 (스냅샷 집계일). YYYY-MM-DD
countinteger반환된 항목 수
data[].rankinteger정렬 기준상 순위 (1부터)
data[].user_idstringInstagram 유저 고유 ID (조인 키)
data[].usernamestring유저명(핸들)
data[].tierenum팔로워 규모 티어
data[].current_followersinteger현재 팔로워 수
data[].base_followersinteger기준 시점(N일 전) 팔로워 수
data[].growthinteger성장량 (현재 − 기준)
data[].growth_pctfloat성장률 %. 기준이 0이면 null
성장 지표 계산 방식
· current_followers — 현재 기준 팔로워 수
· base_followers — 비교 기준이 되는 과거 팔로워 수. 예: period=7d이면 약 7일 전 팔로워 수
· growth = current_followers − base_followers
· growth_pct = growth ÷ base_followers × 100

광고 반응 TOP 크리에이터 (Ad Top · Instagram)

협찬·PPL 릴스로 실제 반응(조회수)을 잘 뽑아내는 Instagram 크리에이터를 기간·티어별로 훑어봅니다. Rising이 팔로워 성장세를 본다면, 이 데이터는 광고 콘텐츠의 반응을 기준으로 한 TOP 50입니다. 어떤 크리에이터에게 협찬을 맡겼을 때 조회수가 잘 나오는지 가볍게 살펴보는 용도입니다.

GET /v1/instagram/ad-top
기간(period)×티어(tier)별 광고 반응 TOP 50 스냅샷에서 조회합니다. 매일 새로 갈아엎는 최신 스냅샷만 보관하므로 과거 시점 조회는 불가하며, 데이터 기준일은 응답의 calculated_at으로 확인할 수 있습니다.

Query parameters

이름타입설명
period optionalenum집계 기간창. 7d · 30d · 60d. 기본 7d
tier optionalenum팔로워 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
sort optionalenum정렬 기준. total_views(광고 릴스 조회수 합) · ad_post_count(광고 게시물 수). 기본 total_views
limit optionalinteger (1–50)가져올 개수. 기본 20

tier 값 (현재 팔로워 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 5만 미만 Mid-tier 5만 이상 ~ 10만 미만 High-tier 10만 이상 ~ 20만 미만 Macro 20만 이상 ~ 50만 미만 Mega 50만 이상 ~ 100만 미만 Celeb 100만 이상

Instagram Rising과 동일한 7개 티어 체계입니다.

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/instagram/ad-top?period=7d&tier=Micro&sort=total_views&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/instagram/ad-top",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "7d",
        "tier": "Micro",        # 생략하면 전 티어 대상
        "sort": "total_views",  # "ad_post_count"면 광고 게시물 수 순
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "7d",
  tier: "Micro",
  sort: "total_views",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/instagram/ad-top?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "period": "7d",
  "tier": "Micro",
  "sort": "total_views",
  "calculated_at": "2026-07-06",
  "count": 10,
  "data": [
    {
      "rank": 1,
      "user_id": "17841400000000000",
      "username": "creator_handle",
      "tier": "Micro",
      "followers": 52000,
      "ad_post_count": 8,
      "total_views": 1240000
    }
  ]
}

응답 필드

필드타입설명
calculated_atdate이 데이터의 기준일 (스냅샷 집계일). YYYY-MM-DD
countinteger반환된 항목 수
data[].rankinteger정렬 기준상 순위 (1부터)
data[].user_idstringInstagram 유저 고유 ID (조인 키)
data[].usernamestring유저명(핸들)
data[].tierenum팔로워 규모 티어
data[].followersinteger집계 시점 팔로워 수
data[].ad_post_countinteger해당 기간 광고(협찬/PPL) 릴스 게시물 수
data[].total_viewsinteger해당 기간 광고 릴스 조회수 합산

카테고리별 릴스 반응 TOP 크리에이터 (Category Top · Instagram)

특정 카테고리·체급에서 릴스로 실제 반응(조회수)을 잘 뽑아내는 Instagram 크리에이터를 훑어봅니다. Ad Top이 광고 릴스만 보는 반면, 이 데이터는 전체 릴스를 대상으로 기간×카테고리×티어별 TOP 10을 담고 있습니다. "뷰티 마이크로 크리에이터 중 요즘 조회수가 잘 나오는 사람"처럼 카테고리를 좁혀 살펴보는 용도입니다.

GET /v1/instagram/category-top
기간(period)×카테고리(category)×티어(tier)별 릴스 반응 TOP 10 스냅샷에서 조회합니다. 매일 새로 갈아엎는 최신 스냅샷만 보관하므로 과거 시점 조회는 불가하며, 데이터 기준일은 응답의 calculated_at으로 확인할 수 있습니다.

Query parameters

이름타입설명
period optionalenum집계 기간창. 7d · 30d · 60d. 기본 7d
category optionalenum콘텐츠 카테고리 (아래 category 값 참고). 생략 시 전 카테고리 대상
tier optionalenum팔로워 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
sort optionalenum정렬 기준. total_views(릴스 조회수 합) · reel_count(릴스 게시물 수). 기본 total_views
limit optionalinteger (1–50)가져올 개수. 그룹당 10개까지 집계되며 기본 10

category

뷰티 패션 푸드 여행 육아 반려동물 인테리어/리빙 관능/섹시 아트/문화 엔터테인먼트 테크/디지털 스포츠/피트니스 자동차 게임 교육/커리어 연애/결혼 의료/건강 취미/레저 종교/신앙 사회/정치/경제

tier 값 (현재 팔로워 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 5만 미만 Mid-tier 5만 이상 ~ 10만 미만 High-tier 10만 이상 ~ 20만 미만 Macro 20만 이상 ~ 50만 미만 Mega 50만 이상 ~ 100만 미만 Celeb 100만 이상

Instagram Rising · Ad Top과 동일한 7개 티어 체계입니다.

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/instagram/category-top?period=7d&category=뷰티&tier=Micro&sort=total_views&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/instagram/category-top",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "7d",
        "category": "뷰티",     # 생략하면 전 카테고리 대상
        "tier": "Micro",        # 생략하면 전 티어 대상
        "sort": "total_views",  # "reel_count"면 릴스 게시물 수 순
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "7d",
  category: "뷰티",
  tier: "Micro",
  sort: "total_views",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/instagram/category-top?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "period": "7d",
  "category": "뷰티",
  "tier": "Micro",
  "sort": "total_views",
  "calculated_at": "2026-07-06",
  "count": 10,
  "data": [
    {
      "rank": 1,
      "user_id": "17841400000000000",
      "username": "creator_handle",
      "category": "뷰티",
      "tier": "Micro",
      "followers": 52000,
      "reel_count": 8,
      "total_views": 1240000
    }
  ]
}

응답 필드

필드타입설명
calculated_atdate이 데이터의 기준일 (스냅샷 집계일). YYYY-MM-DD
countinteger반환된 항목 수
data[].rankinteger정렬 기준상 순위 (1부터)
data[].user_idstringInstagram 유저 고유 ID (조인 키)
data[].usernamestring유저명(핸들)
data[].categoryenum콘텐츠 카테고리
data[].tierenum팔로워 규모 티어
data[].followersinteger집계 시점 팔로워 수
data[].reel_countinteger해당 기간 릴스 게시물 수
data[].total_viewsinteger해당 기간 릴스 조회수 합산

콘텐츠 목록 (Content · Instagram)

Instagram 게시물·릴스 하나하나를 기간·토픽·팔로워 규모(tier)·광고여부로 필터해 지표(조회수·좋아요·댓글·DM 발송수) 순으로 반환합니다.

GET /v1/instagram/content/list

Query parameters

이름타입설명
period optionalenum게시 기간창. 최근 7d · 30d · 60d 이내 게시분만 조회. 기본 7d
sort optionalenum정렬 기준(내림차순). views · likes · comments · dm_send_count. 기본 views
category optionalenum게시물 토픽 (아래 category 값 참고, 16종). 생략 시 전 토픽 대상
tier optionalenum팔로워 규모 티어 (아래 tier 값 참고). 생략 시 전 티어 대상
is_ad optionalboolean광고(협찬/PPL) 게시물 여부. true=광고만 · false=비광고만. 생략 시 전체
limit optionalinteger (1–50)가져올 개수. 기본 20

category 값 (게시물 토픽 · 16종)

기타 뷰티(메이크업/헤어) 엔터/아이돌/연예 패션/룩 맛집/푸드 운동/피트니스 여행/휴양 육아/키즈 리빙/인테리어 반려동물 아트/창작(그림·웹툰·공예) 요리/레시피 카페/핫플 스포츠(종목) 커플/연애/결혼 게임/덕질/취미

tier 값 (현재 팔로워 수 기준)

Nano 1만 미만 Micro 1만 이상 ~ 5만 미만 Mid-tier 5만 이상 ~ 10만 미만 High-tier 10만 이상 ~ 20만 미만 Macro 20만 이상 ~ 50만 미만 Mega 50만 이상 ~ 100만 미만 Celeb 100만 이상

Request

curl -H "Authorization: Bearer ug_live_xxxxx" \
  "https://partner-api.ugwanggi.com/v1/instagram/content/list?period=30d&sort=views&is_ad=true&limit=10"
import requests

resp = requests.get(
    "https://partner-api.ugwanggi.com/v1/instagram/content/list",
    headers={"Authorization": "Bearer ug_live_xxxxx"},
    params={
        "period": "30d",
        "sort": "views",       # views / likes / comments / dm_send_count
        "category": "맛집/푸드",  # 생략하면 전 토픽 대상
        "tier": "Micro",       # 생략하면 전 티어 대상
        "is_ad": "true",       # 생략하면 광고·비광고 전체
        "limit": 10,
    },
)
print(resp.json())
const params = new URLSearchParams({
  period: "30d",
  sort: "views",
  category: "맛집/푸드",
  tier: "Micro",
  is_ad: "true",
  limit: 10,
});

const resp = await fetch(
  `https://partner-api.ugwanggi.com/v1/instagram/content/list?${params}`,
  { headers: { Authorization: "Bearer ug_live_xxxxx" } },
);
const data = await resp.json();
console.log(data);

Response

{
  "platform": "instagram",
  "count": 10,
  "data": [
    {
      "post_id": "3401234567890123456",
      "url": "https://www.instagram.com/p/Cxxxxxxxxxx/",
      "user_id": "1784xxxxxxx",
      "is_reel": true,
      "description": "협찬 받은 신상 립 발색 리뷰 🎁 ...",
      "views": 182000,
      "likes": 9400,
      "comments": 210,
      "dm_send_count": 87,
      "is_ad": true,
      "topic": "뷰티(메이크업/헤어)",
      "publish_date": "2026-07-04T12:30:00"
    }
  ]
}

응답 필드

필드타입설명
countinteger반환된 항목 수
data[].post_idstring게시물 고유 ID
data[].urlstring (URL)게시물 URL
data[].user_idstring작성 계정 ID
data[].is_reelboolean릴스 여부
data[].descriptionstring게시물 본문
data[].viewsinteger조회수
data[].likesinteger좋아요 수
data[].commentsinteger댓글 수
data[].dm_send_countinteger게시물 유입 DM 발송 수
data[].is_adboolean광고 여부(협찬/PPL 통합). is_ad 필터가 보는 값
data[].topicenum게시물 토픽 (위 category 값 중 하나)
data[].publish_datedatetime게시 일시
© ugwanggi — Partner API. 문의 및 API 키 발급은 담당자에게 연락해 주세요.