Glowb Dev Docs
Admin API인스타 DM 자동응답

대화 상대 목록

DM 을 주고받은 상대를 최근 활동 순으로, 페이지·검색·받은편지함 필터와 함께 조회합니다.

대화 상대 목록

DM 을 주고받은 상대를 최근 활동 순으로 조회합니다. 상대별 건수(파트너십/일반 구분), 마지막 메시지, 연결되는 우리 크리에이터가 함께 옵니다.

2026-10-01 응답 형태가 바뀌었습니다. data 가 배열이 아니라 items + page 객체이고, limit 대신 page·size 를 받습니다.

HTTP 요청

GET /ai/admin/ig-dm/threads?page=0&size=30&q=give_me&folder=PARTNERSHIP
Authorization: Bearer {access_token}

Query Parameters

파라미터타입필수설명
pageInteger아니오0부터 시작. 기본 0
sizeInteger아니오페이지 크기. 기본 30, 상한 200
qString아니오검색어. 계정명 일부(앞의 @ 생략 가능), IGSID, 주고받은 본문 일부 중 하나라도 맞으면 걸립니다. 대소문자 무시
folderString아니오ALL(기본) / PARTNERSHIP = 파트너십 대화가 있는 상대 / GENERAL = 일반 DM 이 있는 상대
influenceIdInteger아니오우리 크리에이터 번호. 그 크리에이터의 DM 인증 계정 또는 신청서 인스타 핸들과 같은 상대만 줍니다. 크리에이터 화면에서 DM 이력을 열 때 씁니다
campaignNoInteger아니오캠페인 번호. 이 캠페인에 수동 배정된 상대만 줍니다 — 캠페인 보드의 한 열
applicationIdLong아니오신청 ID. 그 신청서에 적힌 인스타 계정(과 그 신청으로 DM 인증한 계정)의 대화만 줍니다. folder=PARTNERSHIP 과 함께 쓰면 "이 신청자와의 파트너십 대화" — 미비한 일정 DM 위젯용. 주면 influenceId 는 무시합니다. 없는 신청이면 404

조건은 모두 AND 로 묶입니다. 한 상대가 두 받은편지함에 다 있으면 PARTNERSHIP·GENERAL 양쪽에 나옵니다.

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "대화 상대 목록을 조회했습니다.",
  "data": {
    "items": [
      {
        "peerIgsid": "1699622574467666",
        "peerUsername": "give_me_jishin",
        "messageCount": 4,
        "partnershipMessageCount": 4,
        "generalMessageCount": 0,
        "repliedCount": 0,
        "notAnsweredCount": 0,
        "lastActivityAt": "2026-10-01T13:25:11",
        "lastMessage": {
          "direction": "OUT",
          "body": "안녕하세요, Glow.B 입니다. REVCELL 캠페인 관련해서…",
          "folder": "PARTNERSHIP",
          "at": "2026-10-01T13:25:11"
        },
        "creators": [
          {
            "influenceId": 5106,
            "name": "홍길동",
            "profileImage": "https://…",
            "linkedBy": "APPLICATION_HANDLE"
          }
        ],
        "campaigns": [
          {
            "collabNo": 1681,
            "title": "[USIMSA] 유심사 일본 eSIM 캠페인",
            "assignedBy": "facebook_admin",
            "assignedAt": "2026-10-02T13:20:00"
          }
        ]
      }
    ],
    "page": { "number": 0, "size": 30, "totalElements": 1, "totalPages": 1 }
  }
}
필드설명
peerIgsid인스타 사용자 ID. 대화 상세 조회의 키입니다
peerUsername계정명. 아직 수집되지 않았으면 null
partnershipMessageCount파트너십 받은편지함 건수
generalMessageCount일반 DM 건수. messageCount = 두 값의 합
repliedCount자동응답이 실제로 나간 건수
notAnsweredCount규칙 없음·기준가 없음·차단 등으로 보내지 않은 건수
lastMessage마지막 메시지. body 는 앞 100자, 차단돼 본문이 없으면 null. 발송하지 않은 OUT 도 마지막 활동이라 그대로 나옵니다
creators이 인스타 계정으로 연결되는 우리 크리에이터. 없으면 빈 배열
creators[].linkedByDM_VERIFIED = DM 계정 인증으로 확인 / APPLICATION_HANDLE = 신청서 인스타 링크의 핸들이 같음
campaigns운영자가 이 상대를 수동 배정한 캠페인. 최근 배정 순, 없으면 빈 배열
pagenumber(0부터), size, totalElements, totalPages

creators 가 여러 건일 수 있습니다. 한 인스타 계정으로 여러 회원이 신청한 경우입니다(2026-10-01 기준 88개 계정). APPLICATION_HANDLE 은 계정명이 같다는 단서일 뿐 같은 사람이라는 보장은 아닙니다 — 계정명은 바뀔 수 있습니다. 같은 크리에이터가 두 근거로 다 잡히면 DM_VERIFIED 하나만 나옵니다.

파트너십 구분

인스타는 일반 DM 과 파트너십 메시지(크리에이터 마켓플레이스) 대화를 별도 스레드로 둡니다. 구분은 대화 단위입니다 — 파트너십 받은편지함 동기화로 들어온 대화에 속한 메시지는 우리가 보낸 것까지 모두 파트너십입니다. 파트너십 대화는 웹훅이 없어 릴레이가 1분마다 조회해 쌓으므로 최대 1~2분 늦게 나타납니다.

에러 응답

상태 코드설명
400folder 등 쿼리 값이 잘못됨 (code: VALIDATION_ERROR, HTTP 상태도 400)
401인증 실패
403ADMIN 권한 없음

On this page