키워드 검색량·CPC 조회부터 키마비키 챌린지 관리까지, 키워드마스터의 데이터와 기능을 외부 프로그램에서 그대로 사용할 수 있는 REST API 레퍼런스입니다. API v2
| 항목 | 값 |
|---|---|
| Base URL | https://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": "사람이 읽는 설명" }
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 |
|---|---|---|---|---|
| 스탠다드 | 10회/분 | search, expensive | — | — |
| 프리미엄 | 60회/분 | search, expensive | — | — |
| 플래티넘 | 120회/분 | search, expensive, bulk, challenge | 10만 키워드 | ✓ |
| 엔터프라이즈 | 300회/분 | all | 무제한 | ✓ |
403 TIER_REQUIRED 가 반환됩니다. 플랜 업그레이드 →단일 키워드의 네이버 PC/모바일 검색량, 클릭수, 블로그 발행량, CPC 입찰가를 조회합니다.
가격대별 비싼키워드(고CPC) 목록을 조회합니다. (플래티넘 6단계 전체)
대량 키워드 작업 생성 → bulk.pull / bulk.push / bulk.complete / bulk.export 파이프라인으로 최대 10만 개를 일괄 처리합니다.
내 API 키의 티어, 잔여 쿼터, 사용량을 확인합니다.
키마비키 챌린지(7vs3 키워드 수익화 챌린지)를 코드로 운영합니다. 참가 신청, 배정 키워드 조회, 결과물 URL·수익 인증 제출, 점수/랭킹 조회까지 전 과정을 자동화할 수 있습니다. 모든 엔드포인트는 challenge 스코프와 플래티넘 이상 플랜이 필요합니다.
참가 가능한 챌린지 종류(3day·7day·15day)와 현재 모집 인원을 반환합니다.
챌린지에 참가합니다. 한 번에 하나의 챌린지만 진행할 수 있습니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| season_type | string | O | 3day · 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"
내 진행 중인 챌린지의 방 정보, 팀(A/B)·역할, 팀 점수, 진행 일자, 전체 멤버 목록을 반환합니다.
해당 날짜(기본: 오늘)에 나에게 배정된 키워드와 각 키워드의 제출 상태를 반환합니다.
배정된 키워드에 대한 결과물 URL(과 선택적 수익 인증)을 제출합니다. 제출 시 XP가 적립되며 AI 평가 큐에 등록됩니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| keyword_id | int | O | challenge.keywords로 받은 키워드 ID |
| url | string | O | 결과물 URL (http/https) |
| income_amount | int | — | 수익 인증 금액(원). 보너스 XP |
| income_proof_url | string | — | 수익 스크린샷 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"
내 제출 이력과 AI 점수·피드백을 최신순으로 반환합니다. (limit 최대 200)
전체 XP 랭킹을 반환합니다. (limit 최대 100)
진행 중인 챌린지를 중도 포기합니다.
{
"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" }
}
| HTTP | error | 설명 |
|---|---|---|
| 401 | AUTH_REQUIRED / INVALID_API_KEY | API 키 누락 또는 무효 |
| 403 | TIER_REQUIRED | 플래티넘 이상 필요 (챌린지/대량) |
| 403 | SCOPE_DENIED | 키에 해당 스코프 권한 없음 |
| 403 | NOT_YOUR_KEYWORD | 본인 배정 키워드가 아님 |
| 404 | NO_CHALLENGE | 진행 중 챌린지 없음 |
| 409 | ALREADY_JOINED / DUPLICATE | 이미 참가 중 / 중복 제출 |
| 429 | RATE_LIMIT | 분당 호출 한도 초과 |
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())
$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);
GET /api/v2/?action=docs 로도 조회됩니다.