API Reference · 세션
세션 조회
콘텐츠사가 게이트웨이로부터 리다이렉트로 받은 session_id 를 검증하고, 어떤 매체사·사용자·콘텐츠로 발행된 세션인지 확인합니다.
GET
/api/v1/sessions/{session_id}요청 파라미터
session_id(path, uuid, required) — 검증할 세션 식별자 (게이트웨이가 콘텐츠 URL 의 query 로 전달).include(query, string, optional) — 추가로 받을 항목을 콤마로 나열합니다. 현재promo_claims(경품 당첨 목록) 하나를 지원하며, 지정하지 않으면 응답에 그 키가 아예 없습니다. 세션 조회는 게임이 자주 부르는 경로이므로 당첨 안내가 필요한 시점(부팅· 화면 복귀)에만 붙이는 것을 권장합니다.
요청예시
shell
curl -H "Authorization: Bearer sess_prod_0192a1b2-3c4d-7e8f-9012-3456789abcde" \
"https://added.blomics.net/api/v1/sessions/0192a1b2-3c4d-5e6f-7890-abcdef012345"응답 필드
session_id(uuid)user_id(uuid) — Blomics 내부 사용자 식별자.publisher_id(uuid) — 발행 매체사.content_id(uuid) — 진입한 콘텐츠.campaign_id(uuid) — 세션이 속한 캠페인. 세션 발급 시점에 고정되는 스냅샷입니다. 플레이로그 등 기록/보상 경로는 이 값을 사용합니다.ranking_campaign_id(uuid) — 랭킹 조회에 사용할 캠페인. 진행 중이면서 랭킹을 제공하는 캠페인 중 가장 최근에 시작한 것을 요청 시점에 골라 반환합니다(진행 중인 프로모션이 있으면 그것). 후보가 없으면campaign_id와 같은 값이므로 이 필드만 그대로 사용하면 됩니다. 프로모션 랭킹은 부모 상시 캠페인의 기록을 프로모션 기간으로 잘라 집계한 결과입니다.nickname(string | null) — 매체사가 게이트웨이로 전달한 사용자 닉네임. 전달하지 않은 경우user_id값으로 대체됩니다.expired_at(ISO 8601) — 세션 만료 시각. 이 시각 이후 이벤트는 거부됩니다.promo_claims(array) —include=promo_claims를 지정했을 때만 포함됩니다. 이 사용자가 당첨된 경품 수집 목록이며, 당첨이 없으면 빈 배열입니다(진행 중인 프로모션의 존재 여부도 알려주지 않습니다). 한 사용자가 동시에 둘 이상 당첨될 수 있으므로항목마다 캠페인이 다릅니다 — 안내 팝업과 링크를 항목 단위로 다루세요. 신청 가능한 건이 앞에 옵니다.campaign_id(uuid) — 어느 프로모션의 당첨인지.available(boolean) — 항상true(당첨 목록이므로).claimed(boolean) — 수령정보 신청을 마쳤는지.claim_id(uuid | null) — 신청을 마친 건의 접수 식별자. 신청 전에는null.title,description(string | null) — 신청 화면의 제목·안내문.prize_brand,prize_detail,win_notice(string | null) — 게임 당첨 안내에 쓸 브랜드·당첨내용·안내 문구. 어드민 경품 수집 설정에서 캠페인별로 입력하며, 비어 있으면 콘텐츠 공통 설정으로 폴백하도록 클라이언트가 처리합니다.url(string) — 수령정보 신청 페이지의 절대 URL (세션·캠페인 포함). 외부 브라우저로 열어야 합니다.
응답예시
json
{
"session_id": "0192a1b2-3c4d-5e6f-7890-abcdef012345",
"user_id": "0195d4e5-6f78-90ab-cdef-012345678901",
"publisher_id": "0194c3d4-5e6f-7890-abcd-ef0123456789",
"content_id": "0193b2c3-4d5e-6f78-90ab-cdef01234567",
"campaign_id": "0196e5f6-7890-abcd-ef01-234567890123",
"ranking_campaign_id": "0197f607-8901-bcde-f012-3456789abcde",
"nickname": "초코나라",
"expired_at": "2026-05-02T12:00:00.000Z"
}응답예시 — ?include=promo_claims
json
{
"session_id": "0192a1b2-3c4d-5e6f-7890-abcdef012345",
"user_id": "0195d4e5-6f78-90ab-cdef-012345678901",
"…": "(위 응답 필드 동일)",
"promo_claims": [
{
"campaign_id": "0196e5f6-7890-abcd-ef01-234567890123",
"available": true,
"claimed": false,
"claim_id": null,
"title": "쿠폰 신청",
"description": "당첨을 축하드립니다. 쿠폰을 받으실 정보를 입력해주세요.",
"prize_brand": "누구나홀딱반한닭",
"prize_detail": "2만원 쿠폰",
"win_notice": "자세한 내용은 공지사항을 확인해 주세요",
"url": "https://added.blomics.net/cs/promo?session_id=0192a1b2-3c4d-5e6f-7890-abcdef012345&campaign_id=0196e5f6-7890-abcd-ef01-234567890123"
}
]
}에러처리
400INVALID_PARAM— session_id 형식 오류.401UNAUTHORIZED— 인증 실패.404NOT_FOUND— 세션 없음, 만료, 또는 다른 콘텐츠사 소속.500INTERNAL_ERROR— 서버 오류.