메뉴

키워드마스터 API 문서

키워드 검색량·CPC 조회부터 키마비키 챌린지 관리까지, 키워드마스터의 데이터와 기능을 외부 프로그램에서 그대로 사용할 수 있는 REST API 레퍼런스입니다. API v2

1. 개요

항목
Base URLhttps://keywordmaster.net/api/v2/
요청 방식GET / POST (POST 본문은 JSON)
응답 형식JSON (UTF-8)
인증API 키 (X-API-Key 헤더 또는 ?api_key=)
액션 라우팅?action= 파라미터로 엔드포인트 지정

모든 응답은 공통 구조를 가집니다.

// 성공
{ "success": true, "data": { ... }, "meta": { "api_version": "v2", "tier": "platinum", "timestamp": "..." } }

// 실패
{ "success": false, "error": "ERROR_CODE", "message": "사람이 읽는 설명" }

2. 인증

API 키는 마이페이지 → API에서 발급합니다. 모든 요청에 키를 포함하세요.

# 헤더 방식 (권장)
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://keywordmaster.net/api/v2/?action=search&keyword=키마비키"

# 쿼리 파라미터 방식
curl "https://keywordmaster.net/api/v2/?action=search&keyword=키마비키&api_key=YOUR_API_KEY"
API 키는 비밀번호와 같습니다. 절대 외부에 노출하거나 클라이언트(브라우저) 코드에 넣지 마세요. 노출 시 마이페이지에서 즉시 삭제 후 재발급하세요.

3. 플랜별 권한

플랜레이트리밋스코프대량 검색챌린지 API
스탠다드10회/분search, expensive
프리미엄60회/분search, expensive
플래티넘120회/분search, expensive, bulk, challenge10만 키워드
엔터프라이즈300회/분all무제한
🏆 키마비키 챌린지 API(섹션 5)는 플래티넘 이상 플랜에서만 사용할 수 있습니다. 그 외 플랜으로 호출하면 403 TIER_REQUIRED 가 반환됩니다. 플랜 업그레이드 →

4. 키워드 API

GET?action=search&keyword={검색어}

단일 키워드의 네이버 PC/모바일 검색량, 클릭수, 블로그 발행량, CPC 입찰가를 조회합니다.

GET?action=expensive&tier={10k|20k|30k|50k|70k|90k}

가격대별 비싼키워드(고CPC) 목록을 조회합니다. (플래티넘 6단계 전체)

POST?action=bulk.createPLATINUM+

대량 키워드 작업 생성 → bulk.pull / bulk.push / bulk.complete / bulk.export 파이프라인으로 최대 10만 개를 일괄 처리합니다.

GET?action=account

내 API 키의 티어, 잔여 쿼터, 사용량을 확인합니다.

5. 키마비키 챌린지 API PLATINUM+

키마비키 챌린지(7vs3 키워드 수익화 챌린지)를 코드로 운영합니다. 참가 신청, 배정 키워드 조회, 결과물 URL·수익 인증 제출, 점수/랭킹 조회까지 전 과정을 자동화할 수 있습니다. 모든 엔드포인트는 challenge 스코프와 플래티넘 이상 플랜이 필요합니다.

GET?action=challenge.types

참가 가능한 챌린지 종류(3day·7day·15day)와 현재 모집 인원을 반환합니다.

POST?action=challenge.join

챌린지에 참가합니다. 한 번에 하나의 챌린지만 진행할 수 있습니다.

파라미터타입필수설명
season_typestringO3day · 7day · 15day
curl -X POST -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"season_type":"7day"}' \
  "https://keywordmaster.net/api/v2/?action=challenge.join"
GET?action=challenge.status

내 진행 중인 챌린지의 방 정보, 팀(A/B)·역할, 팀 점수, 진행 일자, 전체 멤버 목록을 반환합니다.

GET?action=challenge.keywords&date={YYYY-MM-DD}

해당 날짜(기본: 오늘)에 나에게 배정된 키워드와 각 키워드의 제출 상태를 반환합니다.

POST?action=challenge.submit

배정된 키워드에 대한 결과물 URL(과 선택적 수익 인증)을 제출합니다. 제출 시 XP가 적립되며 AI 평가 큐에 등록됩니다.

파라미터타입필수설명
keyword_idintOchallenge.keywords로 받은 키워드 ID
urlstringO결과물 URL (http/https)
income_amountint수익 인증 금액(원). 보너스 XP
income_proof_urlstring수익 스크린샷 URL
curl -X POST -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"keyword_id":1234,"url":"https://blog.example.com/post","income_amount":120000}' \
  "https://keywordmaster.net/api/v2/?action=challenge.submit"
GET?action=challenge.submissions&limit={N}

내 제출 이력과 AI 점수·피드백을 최신순으로 반환합니다. (limit 최대 200)

GET?action=challenge.ranking&limit={N}

전체 XP 랭킹을 반환합니다. (limit 최대 100)

POST?action=challenge.leave

진행 중인 챌린지를 중도 포기합니다.

응답 예시 — challenge.status

{
  "success": true,
  "data": {
    "active": true,
    "room_id": 42,
    "season_title": "도전7일",
    "current_day": 3,
    "team_a_score": 120, "team_b_score": 90,
    "me": { "member_id": 511, "nickname": "키마a1b2", "team": "a", "role": "lieutenant",
            "total_score": 40, "submitted_count": 4, "missed_count": 1 },
    "members": [ { "member_id": 510, "nickname": "...", "team": "a", "role": "leader", ... } ]
  },
  "meta": { "api_version": "v2", "tier": "platinum" }
}

6. 에러 코드

HTTPerror설명
401AUTH_REQUIRED / INVALID_API_KEYAPI 키 누락 또는 무효
403TIER_REQUIRED플래티넘 이상 필요 (챌린지/대량)
403SCOPE_DENIED키에 해당 스코프 권한 없음
403NOT_YOUR_KEYWORD본인 배정 키워드가 아님
404NO_CHALLENGE진행 중 챌린지 없음
409ALREADY_JOINED / DUPLICATE이미 참가 중 / 중복 제출
429RATE_LIMIT분당 호출 한도 초과

7. 코드 예제

Python — 챌린지 자동 참가 + 제출

import requests

BASE = "https://keywordmaster.net/api/v2/"
H = {"X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"}

# 1) 7일 챌린지 참가
requests.post(BASE, params={"action": "challenge.join"}, headers=H, json={"season_type": "7day"})

# 2) 오늘 배정 키워드 조회
kw = requests.get(BASE, params={"action": "challenge.keywords"}, headers=H).json()
for k in kw["data"]["keywords"]:
    if not k["submitted"]:
        # 3) 결과물 URL 제출
        requests.post(BASE, params={"action": "challenge.submit"}, headers=H, json={
            "keyword_id": k["keyword_id"],
            "url": f"https://blog.example.com/{k['keyword']}",
            "income_amount": 0,
        })

# 4) 현황 확인
print(requests.get(BASE, params={"action": "challenge.status"}, headers=H).json())

PHP

$base = "https://keywordmaster.net/api/v2/";
$ch = curl_init($base . "?action=challenge.status");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: YOUR_API_KEY"],
]);
$res = json_decode(curl_exec($ch), true);
더 친절한 단계별 설명은 API 사용 가이드를, 키 발급은 마이페이지 → API를 확인하세요. JSON 형태의 라이브 엔드포인트 목록은 GET /api/v2/?action=docs 로도 조회됩니다.