API Reference

보너스 액션

콘테스트 참가자의 보너스 액션 조회 및 완료 처리

보너스 액션

보너스 액션은 참가자가 콘테스트에서 추가 점수를 얻기 위해 완료할 수 있는 작업입니다. 이 엔드포인트를 사용하여 사용 가능한 보너스 액션을 조회하고 완료 상태로 표시할 수 있습니다.


보너스 액션 조회

GET/api/v1/entries/:entryId/bonus-actions
Public or Private API Key

특정 참가자의 모든 보너스 액션과 완료 상태를 조회합니다.

경로 매개변수

entryIdstring required

고유 참가자 ID입니다. 이메일로 조회할 때는 'lookup'을 사용하세요.

쿼리 매개변수 (entryId가 "lookup"일 때)

emailstring required

조회할 이메일 주소

contestIdstring required

조회할 콘테스트 ID

요청 예시

bash
# 참가자 ID로 조회
curl -X GET https://blitzrocket.com/api/v1/entries/entry_abc123/bonus-actions \
  -H "x-api-key: your_api_key_here"

# 이메일 조회
curl -X GET "https://blitzrocket.com/api/v1/entries/lookup/bonus-actions?email=jane@example.com&contestId=clx1abc123" \
  -H "x-api-key: your_api_key_here"

응답 예시

json
{
  "success": true,
  "data": {
    "entryId": "entry_abc123",
    "email": "jane@example.com",
    "totalPoints": 150,
    "bonusActionsCompleted": 2,
    "bonusActionsTotal": 5,
    "bonusPointsEarned": 30,
    "actions": [
      {
        "id": "ba_001",
        "action": "follow_twitter",
        "description": "트위터에서 팔로우하기",
        "icon": "twitter",
        "iconColor": "#1DA1F2",
        "points": 10,
        "confirmationType": "auto",
        "destinationUrl": "https://twitter.com/blitzrocket",
        "order": 1,
        "completed": true,
        "completedAt": "2025-06-15T12:00:00.000Z",
        "completionStatus": "verified"
      },
      {
        "id": "ba_002",
        "action": "share_referral",
        "description": "추천 링크 공유하기",
        "icon": "share",
        "iconColor": "#10B981",
        "points": 20,
        "confirmationType": "manual",
        "destinationUrl": null,
        "order": 2,
        "completed": true,
        "completedAt": "2025-06-16T09:30:00.000Z",
        "completionStatus": "verified"
      },
      {
        "id": "ba_003",
        "action": "visit_website",
        "description": "제품 페이지 방문하기",
        "icon": "link",
        "iconColor": "#6366F1",
        "points": 5,
        "confirmationType": "click",
        "destinationUrl": "https://example.com/product",
        "order": 3,
        "completed": false,
        "completedAt": null,
        "completionStatus": null
      }
    ]
  }
}

응답 필드

entryIdstring

참가자 ID

emailstring

참가자 이메일

totalPointsnumber

참가자의 총 점수

bonusActionsCompletednumber

완료한 보너스 액션 수

bonusActionsTotalnumber

사용 가능한 총 보너스 액션 수

bonusPointsEarnednumber

보너스 액션으로 획득한 점수

actions[].idstring

보너스 액션 고유 ID

actions[].actionstring

액션 유형 식별자

actions[].pointsnumber

이 액션 완료 시 부여되는 점수

actions[].completedboolean

이 액션 완료 여부


보너스 액션 완료 처리

POST/api/v1/entries/:entryId/bonus-actions/:bonusActionId/complete
Public or Private API Key

참가자의 보너스 액션을 완료 처리하고 해당 점수를 부여합니다.

경로 매개변수

entryIdstring required

고유 참가자 ID

bonusActionIdstring required

고유 보너스 액션 ID

요청 본문

proofstring

완료 증빙 (선택 사항, 예: 스크린샷 URL)

answerstring

퀴즈형 보너스 액션의 답변 (선택 사항)

요청

bash
curl -X POST https://blitzrocket.com/api/v1/entries/entry_abc123/bonus-actions/ba_003/complete \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{}'

응답 (새 완료)

json
{
  "success": true,
  "data": {
    "alreadyCompleted": false,
    "completedAt": "2025-06-17T14:00:00.000Z",
    "pointsAdded": 5,
    "newTotalPoints": 155,
    "message": "보너스 액션이 성공적으로 완료되었습니다."
  }
}

응답 (이미 완료됨)

json
{
  "success": true,
  "data": {
    "alreadyCompleted": true,
    "completedAt": "2025-06-15T12:00:00.000Z",
    "message": "이 보너스 액션은 이미 완료되었습니다."
  }
}

오류 응답

상태오류설명
400entryId 또는 bonusActionId 누락두 경로 매개변수 모두 필요합니다
401유효하지 않은 API 키API 키가 없거나 유효하지 않습니다
404항목 또는 보너스 액션을 찾을 수 없음지정된 리소스가 존재하지 않습니다