Eventus API

Eventus API

Eventus 행사 데이터를 프로그램으로 다루는 REST API 입니다. 발급받은 API 키로 인증해 본인 권한 범위 안의 행사·참가자·쿠폰·공지 등을 조회·관리할 수 있습니다.

시작하기

1. API 키 발급

로그인 후 키 대시보드에서 API 키를 발급합니다. 발급한 키는 대시보드에서 다시 확인(재조회)하거나 폐기할 수 있습니다.

2. 인증

모든 요청 헤더에 발급받은 키를 담습니다.

X-Api-Key: evt_live_xxxxxxxxxxxxxxxx

3. 권한(read / write / pii)

키 발급 시 권한을 고릅니다.

키의 실제 권한 천장은 키 소유자의 실시간 권한입니다. 키로 남의 데이터는 조작할 수 없습니다.

4. 호출 예시 (curl)

curl -H "X-Api-Key: evt_live_xxxxxxxxxxxxxxxx" \
  https://api.event-us.kr/api/search/events?q=컨퍼런스

5. 호출 제한 / 에러


아래는 공개 API의 카테고리별 기능을 엔드포인트별로 정리한 것입니다. 각 엔드포인트의 read/write 표기는 키 발급 시 필요한 스코프이며, 경로의 {eventId}는 행사 식별자입니다. 예시의 필드명·타입은 실제 응답 기준이고 값은 예시입니다. 더 정밀한 스키마는 API 레퍼런스에서 확인하세요.

참가자 (Attendee)

행사 참가자(신청자)의 조회를 다루는 카테고리입니다. 모든 엔드포인트는 행사 호스트 전용입니다.

참가자 조회·관리

참가자 목록 조회

POST /api/events/{eventId}/attendees/query · read · 행사 호스트 전용

행사 참가자를 다양한 필터(상태·그룹·출석·취소잠금·결제·쿠폰·메모·도메인·키워드)로 검색하고 페이지네이션·정렬하여 반환합니다. 모든 필터 필드는 선택이며, 6개월 만료 행사는 빈 목록을 반환합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

요청 본문

필드 타입 필수 설명
stateFilter string? 참가 상태 필터
groupFilters string[]? 그룹 라벨 목록 (행사 소유 검증)
attendanceFilter string? 출석 여부 필터
cancelLockFilter string? 취소 잠금 필터
paymentFilter string? 결제 상태 필터
couponFilter string? 쿠폰 적용 필터
memoFilter string? 메모 유무 필터
domainFilters string[]? 이메일 도메인 목록
searchKeyword string? 이름·이메일·전화 키워드
sortKey string? 정렬 키 (기본 registeredAt)
sortOrder string? asc / desc (기본 desc)
page int? 1 이상 (기본 1)
pageSize int? 1~max (기본 페이지 크기)
{
  "stateFilter": "add",
  "groupFilters": [
    "VIP"
  ],
  "paymentFilter": "completed",
  "searchKeyword": "홍길동",
  "sortKey": "registeredAt",
  "sortOrder": "desc",
  "page": 1,
  "pageSize": 20
}

응답 200 (PagedResult + isExpired 플래그)

{
  "items": [
    {
      "id": 1024,
      "userDataId": "9f1c2e3a-4b5c-6d7e-8f90-abcdef012345",
      "joinCode": "jR8kQ2",
      "name": "홍길동",
      "email": "hong@example.com",
      "phone": "01012345678",
      "affiliation": "이벤터스",
      "state": "add",
      "registeredAt": "2026-06-23T10:15:00+09:00",
      "isAttendance": true,
      "isCancelLock": false,
      "hasSurvey": true,
      "memo": "현장 결제 예정",
      "tickets": [
        {
          "id": 55,
          "groupId": "G1",
          "ticketName": "VIP",
          "price": 50000,
          "state": "add",
          "couponAmount": 5000,
          "couponName": "얼리버드"
        }
      ],
      "payment": {
        "method": "신용카드",
        "status": "completed",
        "amount": 45000,
        "paidAt": "2026-06-23T10:20:00+09:00"
      },
      "deposit": {
        "id": 12,
        "amount": 10000,
        "isRefunded": false,
        "paidAt": "2026-06-20T12:00:00+09:00"
      }
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 20,
  "isExpired": false
}

관리 초기 메타데이터

GET /api/events/{eventId}/attendees/init · read · 행사 호스트 전용

참가자 관리 화면 진입 시 필요한 초기 메타데이터(행사 제목·Pro 등급·결제 방식·그룹·번들·설문 문항·이메일 도메인 목록 등)를 한 번에 반환합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "eventTitle": "2026 봄 컨퍼런스",
  "proNum": 2,
  "isDeposit": true,
  "paymentMethod": "pg",
  "isSurvey": true,
  "isCoupon": true,
  "maxCapacity": 300,
  "isExpired": false,
  "groups": [
    {
      "id": 1,
      "groupId": "G1",
      "name": "VIP",
      "soldCount": 80,
      "applicantCount": 75
    }
  ],
  "bundles": [
    {
      "id": 3,
      "name": "1일권"
    }
  ],
  "surveys": [
    {
      "id": 10,
      "title": "참가 동기",
      "answerType": "Choice",
      "choiceType": "single",
      "sort": 1,
      "items": [
        {
          "id": 100,
          "item": "업무",
          "number": 1
        }
      ]
    }
  ],
  "domains": [
    {
      "domain": "gmail.com",
      "count": 120
    }
  ]
}

설문 답변 조회

GET /api/events/{eventId}/attendees/{userDataId}/survey-answers · read · 행사 호스트 전용

특정 참가자가 제출한 설문 항목별 답변을 반환합니다. 설문 미활성화 행사이거나 6개월 만료 행사인 경우 빈 답변을 반환합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID
userDataId string 참가자 식별자(UserData ID)

응답 200

{
  "isExpired": false,
  "isSurvey": true,
  "answers": [
    {
      "attendSurveyId": 10,
      "questionTitle": "참가 동기",
      "answerType": "Choice",
      "value": null,
      "selectedItems": [
        "업무 (신제품 조사)"
      ],
      "answeredAt": "2026-06-22T11:30:00+09:00"
    }
  ]
}

출석 순번 조회

GET /api/events/{eventId}/attendees/{userDataId}/attendance-number · read · 행사 호스트 전용

참가자의 첫 출석 시각 기준 순번과 출석 일시를 반환합니다. 티켓이 없거나 6개월 만료 행사인 경우 순번은 null입니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID
userDataId string 참가자 식별자(UserData ID)

응답 200

{
  "isExpired": false,
  "number": 12,
  "formattedNumber": "012",
  "attendanceDate": "2026-06-23T09:01:00+09:00"
}

전체 스키마·오류코드는 API 레퍼런스Attendee 태그에서도 확인 가능.

참가자 CRM (Crm)

행사 참가자의 CRM 지표(요약 통계, 리드등급 매겨진 참가자 목록, 컴포넌트 참여지표)를 조회합니다. 모든 엔드포인트는 읽기 전용이며 행사 호스트 전용입니다.

CRM 요약 통계

GET /api/events/{eventId}/crm/summary · read · 행사 호스트 전용

행사의 확정 참가자 수, CRM 대상자 수, 평균 점수, 리드 전환율, 평균 솔루션 참여수를 반환합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "targetCount": 84,
  "participantCount": 120,
  "averageScore": 57.3,
  "leadConversionRate": 70,
  "averageParticipantSolutionCount": 3.2
}

참가자 CRM 목록

GET /api/events/{eventId}/crm · read · 행사 호스트 전용

확정 참가자 목록을 리드등급·점수·컴포넌트 참여지표와 함께 반환합니다. 페이징, 리드등급 필터, 텍스트 검색, 컴포넌트 참여지표 부가 조회를 지원합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

쿼리 파라미터

이름 타입 기본 설명
page int 1 페이지 번호
pageSize int 20 페이지 크기 (1~100)
leadGrade string? (없음) 리드등급 필터 (SQL / MQLH / MQLL / IQL)
q string? (없음) 이름·이메일·전화·회사 부분일치 검색
componentId string? (없음) 지정 시 해당 컴포넌트의 접근·활성화 지표를 각 행에 부가

응답 200

{
  "items": [
    {
      "userDataId": "ud_10293",
      "name": "홍길동",
      "phoneNumber": "010-1234-5678",
      "email": "hong@example.com",
      "company": "이벤터스",
      "department": "마케팅팀",
      "jobTitle": "팀장",
      "applicantGroup": "VIP",
      "totalScore": 88,
      "participantSolutionCount": 5,
      "leadGrade": "SQL",
      "component": {
        "componentId": "42",
        "accessCount": 3,
        "activeCount": 2
      }
    }
  ],
  "totalCount": 84,
  "page": 1,
  "pageSize": 20
}

CRM 컴포넌트 목록

GET /api/events/{eventId}/crm/components · read · 행사 호스트 전용

행사에 연결된 컴포넌트 목록을 반환합니다. CRM 목록 조회의 componentId 부가 지표 파라미터에 사용할 후보입니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "items": [
    {
      "componentId": "42",
      "name": "사전 설문",
      "type": "Survey"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

전체 스키마·오류코드는 API 레퍼런스Crm 태그에서도 확인 가능.

쿠폰 (Coupon)

행사 쿠폰의 목록·사용내역을 조회합니다. 모든 엔드포인트는 행사 호스트 전용입니다.

쿠폰 목록 조회

GET /api/events/{eventId}/coupons · read · 행사 호스트 전용

생성일 내림차순으로 쿠폰을 반환합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "items": [
    {
      "id": 101,
      "name": "얼리버드 20%",
      "type": "auto",
      "discountAmount": 20,
      "discountOption": "percent",
      "targetTicketId": 5001,
      "totalCount": 100,
      "usedCount": 37,
      "code": "EARLY20",
      "state": "active",
      "createdAt": "2026-06-01T09:00:00+09:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

쿠폰 적용 옵션 조회

GET /api/events/{eventId}/coupon-options · read · 행사 호스트 전용

targetTicketId 선택용 티켓·묶음 목록.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "ticketGroups": [
    {
      "id": 5001,
      "name": "일반 입장권",
      "money": 30000,
      "bundleId": 0
    }
  ],
  "bundles": [
    {
      "id": 9001,
      "name": "VIP 패키지"
    }
  ]
}

쿠폰 사용 내역 조회

GET /api/events/{eventId}/coupons/{couponId}/usage · read · 행사 호스트 전용

사용 참가자 목록(페이징). 이메일 마스킹, 탈퇴자는 취소자.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID
couponId int 쿠폰 ID

쿼리 파라미터

이름 타입 기본 설명
page int 1 페이지
pageSize int 페이지 크기

응답 200

{
  "items": [
    {
      "email": "ho***@gmail.com",
      "name": "홍길동",
      "usedAt": "2026-06-10T14:22:00+09:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 20
}

전체 스키마·오류코드는 API 레퍼런스Coupon 태그에서도 확인 가능.

공지 (Notice)

행사 호스트가 공지 목록·상세를 조회합니다. 모든 엔드포인트는 행사 호스트 전용입니다.

호스트 공지 목록

GET /api/events/{eventId}/notices/admin · read · 행사 호스트 전용

행사 호스트가 관리하는 공지 전체를 페이징으로 반환합니다. 공개·비공개 여부와 카테고리·이메일 발송 상태를 포함합니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

쿼리 파라미터

이름 타입 기본 설명
page int 1 페이지 번호
pageSize int 20 페이지 크기 (최대 100)

응답 200

{
  "items": [
    {
      "id": 101,
      "title": "행사 일정 안내",
      "contentPreview": "안녕하세요. 이번 행사 일정을 ...",
      "categoryId": 3,
      "categoryName": "일반 공지",
      "isOpen": true,
      "openDate": "2026-06-23T10:15:00+09:00",
      "createDate": "2026-06-20T09:00:00+09:00",
      "isEmailSent": false,
      "authorUserId": "host-user-001"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 20
}

호스트 공지 상세

GET /api/events/{eventId}/notices/admin/{noticeId} · read · 행사 호스트 전용

공지 단건의 전체 내용(HTML 포함)과 카테고리·공개 상태·이메일 발송 여부를 조회합니다. 존재하지 않으면 404.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID
noticeId int 공지 ID

응답 200

{
  "id": 101,
  "title": "행사 일정 안내",
  "content": "<p>안녕하세요. 이번 행사 일정을 안내드립니다.</p>",
  "categoryId": 3,
  "categoryName": "일반 공지",
  "isOpen": true,
  "openDate": "2026-06-23T10:15:00+09:00",
  "createDate": "2026-06-20T09:00:00+09:00",
  "isEmailSent": false,
  "authorUserId": "host-user-001"
}

전체 스키마·오류코드는 API 레퍼런스Notice 태그에서도 확인 가능.

행사 운영 (EventHost)

행사 팀원과 내 호스트 행사 목록을 조회합니다. "내 호스트 행사 목록"만 로그인 사용자 본인 기반이고, 나머지는 행사 호스트 전용입니다.

내 호스트 행사 목록

GET /api/me/events/hosted · read · 로그인 사용자

채널 호스트·행사 주인·보조 운영자로 참여 중인 게시(Start/Stop) 상태 행사 목록을 반환합니다. 본인 역할(myRole)이 함께 제공됩니다.

응답 200

{
  "items": [
    {
      "eventId": "82012",
      "title": "2024 개발자 컨퍼런스",
      "subdomain": "devconf",
      "state": "Start",
      "startDate": "2024-09-01T10:00:00+09:00",
      "endDate": "2024-09-01T18:00:00+09:00",
      "myRole": "event-owner"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

행사 팀원 목록

GET /api/events/{eventId}/team · read · 행사 호스트 전용

행사 보조 운영자(Project_Manager) 등급의 팀원 목록을 반환합니다. 이메일·이름 등 PII가 포함됩니다.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "items": [
    {
      "authId": 1024,
      "userId": "u_abc123",
      "email": "manager@example.com",
      "name": "홍길동",
      "addedDate": "2024-08-15T14:30:00+09:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

전체 스키마·오류코드는 API 레퍼런스EventHost 태그에서도 확인 가능.

대시보드 (Dashboard)

행사 신청 라이프사이클·출석·결제·매출 요약과 티켓 그룹/등록 경로별 분포를 제공합니다. 모두 읽기 전용이며 행사 호스트 전용입니다.

행사 요약

GET /api/events/{eventId}/dashboard/summary · read · 행사 호스트 전용

전체·확정·미결·취소 신청 수, 출석 인원, 결제 완료 인원 및 총 매출액.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "eventId": "82012",
  "totalCount": 1280,
  "confirmedCount": 940,
  "outstandingCount": 210,
  "cancelledCount": 130,
  "attendedCount": 712,
  "paidCount": 605,
  "paidAmount": 18150000
}

티켓 그룹별 신청 분포

GET /api/events/{eventId}/dashboard/ticket-groups · read · 행사 호스트 전용

각 티켓 그룹에 확정 신청된 인원 수.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "eventId": "82012",
  "totalGroups": 3,
  "totalRegistrations": 940,
  "groups": [
    {
      "groupId": "grp-vip",
      "groupName": "VIP",
      "registeredCount": 120
    }
  ]
}

티켓 그룹별 출석 현황

GET /api/events/{eventId}/dashboard/ticket-group-attendance · read · 행사 호스트 전용

티켓 그룹별 확정 신청 수와 출석/미출석 수.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "eventId": "82012",
  "totalGroups": 3,
  "totalRegistered": 940,
  "totalAttended": 712,
  "groups": [
    {
      "groupId": "grp-vip",
      "groupName": "VIP",
      "registeredCount": 120,
      "attendedCount": 98,
      "notAttendedCount": 22
    }
  ]
}

등록 경로별 신청 수

GET /api/events/{eventId}/dashboard/registration-methods · read · 행사 호스트 전용

엑셀 업로드·호스트 현장 추가·직접 신청 경로별 카운트.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "eventId": "82012",
  "totalCount": 1280,
  "excelCount": 340,
  "hostAddedCount": 215,
  "directCount": 725
}

전체 스키마·오류코드는 API 레퍼런스Dashboard 태그에서도 확인 가능.

통계 (Statistics)

행사 페이지 트래픽·참가자 데이터·설문·유입 경로를 기간별로 분석합니다. 모두 읽기 전용이며 행사 호스트 전용입니다. 리포트 계열은 start/end 쿼리(기본: 모집 시작~마감, 최대 730일)를 받습니다.

이벤트 페이지 최근 14일

GET /api/events/{eventId}/statistics/event-page/recent · read · 행사 호스트 전용

최근 14일 일별 조회·클릭·신청·취소.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "recentData": [
    {
      "date": "2026-06-23T00:00:00+09:00",
      "view": 312,
      "click": 87,
      "attend": 14,
      "cancel": 2
    }
  ]
}

이벤트 페이지 기간 리포트

GET /api/events/{eventId}/statistics/event-page/report · read · 행사 호스트 전용

기간의 조회·클릭·신청·취소 일별 추이, 유입 도메인·기기 분포.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

쿼리 파라미터

이름 타입 필수 설명
start DateTimeOffset 집계 시작(KST, 기본 모집 시작일)
end DateTimeOffset 집계 종료(KST, 기본 마감일, 최대 730일)

응답 200

{
  "title": "2026 개발자 컨퍼런스",
  "viewCount": 5234,
  "clickCount": 1820,
  "attendCount": 430,
  "cancelCount": 18,
  "countData": [
    {
      "date": "2026-05-01T00:00:00+09:00",
      "view": 120,
      "click": 40,
      "attend": 12,
      "cancel": 1
    }
  ],
  "domains": {
    "items": [
      {
        "host": "instagram.com",
        "count": 540,
        "percent": 31.2
      }
    ],
    "othersCount": 73
  },
  "pc": 980,
  "mobile": 1640,
  "tablet": 55,
  "start": "2026-05-01T00:00:00+09:00",
  "end": "2026-06-20T00:00:00+09:00"
}

참가자 데이터 리포트

GET /api/events/{eventId}/statistics/attend-data/report · read · 행사 호스트 전용

확정 참가자의 티켓 그룹·성별·연령·지역 분포와 채널 충성도.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "ticketGroups": {
    "all": 430,
    "items": [
      {
        "groupName": "일반 참가",
        "count": 300,
        "percent": 69.8
      }
    ]
  },
  "gender": {
    "man": 250,
    "woman": 175,
    "anonymous": 5,
    "all": 430
  },
  "ages": {
    "20대": 22,
    "30대": 41,
    "40대": 25
  },
  "areas": {
    "items": [
      {
        "area": "서울",
        "count": 210,
        "percent": 48.8
      }
    ],
    "othersCount": 12
  },
  "loyalAttendees": {
    "onceCount": 60,
    "twiceCount": 18,
    "threePlusCount": 7
  }
}

신청 설문 응답 리포트

GET /api/events/{eventId}/statistics/attend-survey/report · read · 행사 호스트 전용

질문별 응답 현황(선택형 집계·단답형 최신 답변)과 응답자 수. 설문 종료 후 6개월 이내만 조회 가능.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

응답 200

{
  "available": true,
  "applicantCount": 430,
  "respondentCount": 380,
  "questions": [
    {
      "id": 1001,
      "title": "관심 세션",
      "answerType": "Choice",
      "choiceType": "Single",
      "sort": 1,
      "choices": [
        {
          "item": "백엔드",
          "count": 142
        }
      ],
      "textAnswers": null
    },
    {
      "id": 1002,
      "title": "바라는 점",
      "answerType": "Short",
      "sort": 2,
      "choices": null,
      "textAnswers": [
        {
          "value": "네트워킹 시간 확대",
          "date": "2026-06-10T14:22:00+09:00"
        }
      ]
    }
  ]
}

URL 방문 로그 종합 리포트

GET /api/events/{eventId}/statistics/url-log/report · read · 행사 호스트 전용

총 방문수·고유 IP, 유입 도메인 Top, 시간대별(0~23시) 분포, 일별 추이.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

쿼리 파라미터

이름 타입 필수 설명
start DateTimeOffset 집계 시작(KST, 기본 모집 시작일)
end DateTimeOffset 집계 종료(KST, 기본 마감일, 최대 730일)

응답 200

{
  "totalCount": 8420,
  "uniqueUserCount": 3105,
  "domains": {
    "items": [
      {
        "host": "instagram.com",
        "count": 2200,
        "percent": 26.1
      }
    ],
    "othersCount": 410
  },
  "hourlyCounts": [
    {
      "hour": 13,
      "count": 612
    }
  ],
  "trendData": [
    {
      "date": "2026-05-01T00:00:00+09:00",
      "count": 240
    }
  ]
}

URL 방문 상세

GET /api/events/{eventId}/statistics/url-log/detail · read · 행사 호스트 전용

지정 유입 도메인(host 쿼리)의 URL별 방문 횟수. direct/none은 직접 유입.

경로 파라미터

이름 타입 필수 설명
eventId string 행사 ID

쿼리 파라미터

이름 타입 필수 설명
host string 유입 도메인 (direct/none은 직접 유입)
start DateTimeOffset 집계 시작(KST)
end DateTimeOffset 집계 종료(KST, 최대 730일)

응답 200

{
  "host": "instagram.com",
  "urls": {
    "items": [
      {
        "absoluteUri": "https://event-us.kr/event/12345",
        "count": 1320
      }
    ],
    "othersCount": 88
  }
}

전체 스키마·오류코드는 API 레퍼런스Statistics 태그에서도 확인 가능.

채널 (Channel)

채널 상세·멤버·구독 목록을 조회합니다. 채널 상세는 인증 없이 호출 가능(비호스트는 민감 필드 마스킹), 멤버 목록 조회는 채널 호스트 권한이 필요합니다.

채널 상세 조회

GET /api/channels/{subdomain} · read · 인증 불필요

서브도메인으로 채널 정보를 조회합니다. 비공개/비호스트인 경우 담당자 정보·정보 탭 본문 등 민감 필드는 null로 마스킹됩니다.

경로 파라미터

이름 타입 필수 설명
subdomain string 채널 서브도메인

응답 200

{
  "subdomain": "techconf",
  "title": "테크 컨퍼런스 2026",
  "description": "개발자를 위한 연례 행사",
  "logoUrl": "https://cdn.event-us.kr/logo.png",
  "themeColor": "#1a73e8",
  "textColor": "#ffffff",
  "isOpen": true,
  "channelUrl": "https://event-us.kr/techconf/event",
  "isSubscribed": true,
  "managerInfo": {
    "name": "홍길동",
    "email": "host@event-us.kr",
    "phone": "010-1234-5678"
  },
  "subscriberCount": 1024
}

채널 멤버 목록

GET /api/channels/{slug}/members · read · 채널 호스트

채널 호스트(App/App_Free) 등급 멤버 전체. 이메일·이름 등 PII는 호스트에게만 노출.

경로 파라미터

이름 타입 필수 설명
slug string 채널 슬러그(서브도메인)

응답 200

{
  "items": [
    {
      "authId": 42,
      "userId": "a1b2c3d4-...",
      "email": "member@event-us.kr",
      "name": "김멤버",
      "role": "App",
      "isSelf": false,
      "addedDate": "2026-02-01T10:30:00+09:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

내 호스트 채널 목록

GET /api/me/channels · read · 로그인 사용자

호스트(App/App_Free)로 등록된 채널 목록. 보조 운영자 권한은 미포함.

응답 200

{
  "items": [
    {
      "slug": "techconf",
      "title": "테크 컨퍼런스 2026",
      "logoUrl": "https://cdn.event-us.kr/logo.png",
      "themeColor": "#1a73e8",
      "isSuper": false,
      "myRole": "App"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

내 채널 구독 목록

GET /api/me/subscriptions · read · 로그인 사용자

활성 채널 구독 목록(비공개 전환 채널 포함). 이메일 알림 설정 상태 포함.

응답 200

{
  "items": [
    {
      "subdomain": "techconf",
      "title": "테크 컨퍼런스 2026",
      "logoUrl": "https://cdn.event-us.kr/logo.png",
      "isOpen": true,
      "channelUrl": "https://event-us.kr/techconf/event",
      "isEmailAlert": true,
      "subscribedDate": "2026-03-10T14:00:00+09:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 1
}

전체 스키마·오류코드는 API 레퍼런스Channel 태그에서도 확인 가능.

검색 (Discovery)

행사·채널·기업·축제를 키워드/필터/지도/캘린더로 탐색합니다. 검색·추천·축제 계열은 대체로 인증이 필요 없고, 검색 히스토리는 로그인 사용자 전용입니다.

행사·채널 검색

행사 키워드 검색

GET /api/search/events · read · 인증 불필요

키워드·카테고리·지역·날짜·가격 등으로 공개 행사를 검색합니다. 비밀번호 보호 행사는 자동 제외되고, 기본적으로 접수 마감 전 행사만 반환합니다.

쿼리 파라미터

이름 타입 필수 설명
q string 검색 키워드
page int 페이지 (기본 1)
pageSize int 페이지 크기 (기본 20, 1~100)
sort string score(기본)/date/created/duedate/view_count
category string 카테고리 (쉼표 구분 다중)
eventType string 행사 유형 (쉼표 구분 다중)
eventSystemType string online/offline/hybrid
area string 지역
tag string 태그
cost string free / paid / all
priceMin int 최소 가격(원)
priceMax int 최대 가격(원)
startDateFrom string 시작일 하한 (yyyy-MM-dd)
startDateTo string 시작일 상한 (yyyy-MM-dd)
registerOpen bool false 지정 시 마감 행사 포함

응답 200

{
  "items": [
    {
      "id": "12345",
      "title": "2026 개발자 컨퍼런스",
      "category": "컨퍼런스",
      "eventType": "seminar",
      "eventSystemType": "offline",
      "subdomain": "devcon",
      "themeColor": "#3B82F6",
      "coverImageUrl": "https://cdn.event-us.kr/cover/12345.jpg",
      "area": "서울",
      "startDate": "2026-07-01",
      "registerDueDate": "2026-06-30",
      "location": "코엑스",
      "tags": [
        "개발",
        "AI"
      ],
      "viewCount": 1200,
      "minPrice": 0,
      "isPaid": false,
      "eventUrl": "https://event-us.kr/devcon/event/12345"
    }
  ],
  "totalCount": 57,
  "page": 1,
  "pageSize": 20
}

행사 ID 목록으로 카드 조회

GET /api/search/events/by-ids · read · 인증 불필요

캘린더·지도 인덱스의 행사 ID 목록을 카드 데이터로 변환합니다.

쿼리 파라미터

이름 타입 필수 설명
ids string 쉼표 구분 행사 ID 목록 (최대 500)
page int 페이지 (기본 1)
pageSize int 페이지 크기 (기본 20, 1~100)

응답 200/api/search/events와 동일한 카드 아이템 배열(PagedResult)

행사 검색어 자동완성

GET /api/search/suggest · read · 인증 불필요

입력 키워드와 일치하는 활성 행사 제목을 최대 10건(기본) 반환. 일치 부분은 <em> 태그로 강조.

쿼리 파라미터

이름 타입 필수 설명
q string 검색 키워드
pageSize int 결과 수 (기본 10, 1~50)

응답 200

{
  "items": [
    {
      "id": "12345",
      "title": "2026 개발자 컨퍼런스",
      "highlightedTitle": "2026 <em>개발자</em> 컨퍼런스",
      "subdomain": "devcon",
      "eventUrl": "https://event-us.kr/devcon/event/12345"
    }
  ],
  "totalCount": 3,
  "page": 1,
  "pageSize": 10
}

채널 검색·자동완성

GET /api/search/suggest-channels · read · 인증 불필요

행사를 보유한 공개 채널을 검색. 내부(@event-us.kr)·비공개 채널은 제외.

쿼리 파라미터

이름 타입 필수 설명
q string 검색 키워드
page int 페이지 (기본 1)
pageSize int 페이지 크기 (기본 8, 1~50)

응답 200

{
  "items": [
    {
      "subdomain": "devcon",
      "appTitle": "DevCon",
      "logoImageUrl": "https://cdn.event-us.kr/logo/devcon.png",
      "eventCount": 12,
      "exactMatch": true,
      "channelUrl": "https://event-us.kr/devcon"
    }
  ],
  "totalCount": 4,
  "page": 1,
  "pageSize": 8
}

검색 캘린더 인덱스

GET /api/search/calendar · read · 인증 불필요

특정 연·월(year/month 필수)의 일자별 공개 행사 개수와 ID 목록. 카드 상세는 /api/search/events/by-ids로 조회.

쿼리 파라미터

이름 타입 필수 설명
year int 연도
month int 월 (1~12)

응답 200

{
  "year": 2026,
  "month": 7,
  "lastDayOfMonth": 31,
  "days": [
    {
      "date": "2026-07-01",
      "count": 3,
      "ids": [
        "12345",
        "12346",
        "12347"
      ]
    }
  ]
}

검색 지도 마커

GET /api/search/map/markers · read · 인증 불필요

특정 날짜(date 생략 시 오늘 KST) 진행 행사의 지도 좌표. 카드 상세는 by-ids로 조회.

쿼리 파라미터

이름 타입 필수 설명
date string 기준 날짜 (yyyy-MM-dd, 생략 시 오늘 KST)

응답 200

[
  {
    "id": "12345",
    "subdomain": "devcon",
    "title": "2026 개발자 컨퍼런스",
    "latitude": 37.5126,
    "longitude": 127.0589
  }
]

기업 검색

GET /api/search/companies · read · 인증 불필요

기업명·사업자번호로 기업 검색. 키워드 없으면 전체 목록(페이지 크기 최대 50).

쿼리 파라미터

이름 타입 필수 설명
q string 검색 키워드 (기업명/사업자번호)
page int 페이지 (기본 1)
pageSize int 페이지 크기 (기본 20, 1~50)

응답 200

{
  "items": [
    {
      "companyName": "이벤터스",
      "companyAddress": "서울 강남구 테헤란로",
      "businessNo": "123-45-67890"
    }
  ],
  "totalCount": 2,
  "page": 1,
  "pageSize": 20
}

추천·탐색

추천 행사

GET /api/events/featured · read · 인증 불필요

function_score 상위 공개 행사. 카테고리·행사 유형 필터 지원.

쿼리 파라미터

이름 타입 필수 설명
pageSize int 결과 수 (기본 12, 1~50)
category string 카테고리
eventSystemType string online/offline/hybrid

응답 200

{
  "items": [
    {
      "id": "12345",
      "title": "2026 개발자 컨퍼런스",
      "subdomain": "devcon",
      "coverImageUrl": "https://cdn.event-us.kr/cover/12345.jpg",
      "startDate": "2026-07-01",
      "category": "컨퍼런스",
      "eventUrl": "https://event-us.kr/devcon/event/12345"
    }
  ],
  "totalCount": 12,
  "page": 1,
  "pageSize": 12
}

빈 검색 결과 추천

GET /api/search/empty-recommendations · read · 인증 불필요

검색 결과가 없을 때 표시할 추천 행사를 랜덤 반환(기본 8건, 최대 20건).

쿼리 파라미터

이름 타입 필수 설명
pageSize int 결과 수 (기본 8, 1~20)

응답 200 — 추천 행사와 동일한 카드 아이템 배열

축제 (TourAPI)

축제 키워드 검색

GET /api/search/festivals · read · 인증 불필요

한국관광공사 TourAPI 기반 축제 검색(키워드·지역·날짜 범위).

쿼리 파라미터

이름 타입 필수 설명
q string 검색 키워드
page int 페이지 (기본 1)
pageSize int 페이지 크기 (기본 20, 1~50)
region string 지역(주소)
startDate string 시작일 하한 (yyyy-MM-dd)
endDate string 시작일 상한 (yyyy-MM-dd)

응답 200

{
  "items": [
    {
      "contentId": "2733967",
      "title": "한강 여름 축제",
      "address": "서울 영등포구 여의동로 330",
      "tel": "02-1234-5678",
      "startDate": "20260701",
      "endDate": "20260710",
      "imageUrl": "https://tong.visitkorea.or.kr/cms/festival.jpg"
    }
  ],
  "totalCount": 5,
  "page": 1,
  "pageSize": 20
}

축제 상세

GET /api/search/festivals/{contentId} · read · 인증 불필요

contentId 축제 상세(TourAPI 프록시, 1시간 캐시).

경로 파라미터

이름 타입 필수 설명
contentId string TourAPI 콘텐츠 ID

응답 200

{
  "contentId": "2733967",
  "title": "한강 여름 축제",
  "address": "서울 영등포구 여의동로 330",
  "tel": "02-1234-5678",
  "overview": "한강에서 열리는 여름 축제입니다.",
  "homepage": "https://hangang.seoul.go.kr",
  "imageUrl": "https://tong.visitkorea.or.kr/cms/festival.jpg",
  "mapX": "126.9326",
  "mapY": "37.5283"
}

검색 히스토리·클릭

검색 히스토리 목록

GET /api/search-history · read · 로그인 사용자

최근 검색어 최대 50건(soft delete 제외).

응답 200

{
  "items": [
    {
      "id": "a1b2c3d4e5f6",
      "query": "개발자 컨퍼런스",
      "date": "2026-06-23T10:15:00+09:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 50
}

전체 스키마·오류코드는 API 레퍼런스Discovery 태그에서도 확인 가능.

부스 예약 (BoothWaiting)

부스 대기열 솔루션입니다. 세 역할이 서로 다른 인증으로 같은 대기열을 다룹니다. 전체 엔드포인트와 스키마는 API 레퍼런스솔루션 ▸ 부스예약에서 확인하세요.

상태는 wait → called → progress → done으로 흐르고, 노쇼(noshow)·취소(cancel)로 빠질 수 있습니다. 호출 유효시간이 지나면 자동 노쇼 처리되고, 부스 설정에 따라 다음 대기자가 자동 호출됩니다(별도 배치 없이 조회 시점에 평가).

참가자 API

/api/wait/{boothKey}/… · 익명 (로그인 불필요)

엔드포인트 설명
POST register 전화번호만으로 대기 등록 — 순번 + 엔트리 토큰 발급. 같은 번호가 줄에 있으면 기존 대기표 안내
GET status 내 순번·앞 팀 수·호출 여부 폴링
POST postpone 순서 미루기 (부스 설정 팀 수만큼 뒤로, 횟수 제한)
POST cancel 본인 대기 취소

운영자 API

/api/wait/op/{operatorKey}/… · X-Operator-Token 헤더

엔드포인트 설명
POST login / POST identify 비밀번호 로그인(연속 5회 실패 시 5분 잠금) / 담당자 본인 선택
GET summary / GET list 현황 카운트 / 대기 목록(탭·페이징)
POST entries/{id}/call·progress·done·noshow·cancel 호출→진행→완료 상태 전이 (허용 외 전이는 409)
POST entries/{id}/memo / POST manualadd / POST reset 메모 / 현장 수동 추가 / 대기 초기화
GET·PUT settings / GET·POST·DELETE managers 운영 설정 / 담당자 관리

호스트 API

/hostcenter/channel/{subdomain}/{projectid}/boothwaiting/{componentsid}/… · 행사 호스트 전용

엔드포인트 설명
POST booths/query / POST booths 부스 목록+집계 / 부스 생성(운영자 링크·비밀번호 자동 발급)
PUT·DELETE booths/{boothId} 부스 수정 / 삭제
POST booths/{boothId}/password-reset 운영자 비밀번호 재발급(기존 세션 무효화)
POST booths/{boothId}/operator-link/send 담당자 전원에게 운영자 링크+비밀번호 문자 발송
GET booths/{boothId}/status 부스 현황 스냅샷
POST entries/query / POST entries/export 참여자 리스트(검색·페이징) / 전량 내보내기