재판매 API 문서
업계 표준 SMM 패널 API v2 규격을 그대로 따릅니다. 다른 패널에 쓰시던 코드가 있다면 주소와 키만 바꾸면 됩니다.
API 키는 로그인 후 내 정보에서 발급받을 수 있습니다. (대행사 등급 이상)
기본 규격
엔드포인트
POST /api/v2 Content-Type: application/x-www-form-urlencoded (JSON 도 허용)
모든 요청에 key(API 키)와 action이 필요합니다. 통화는 KRW이며 금액은 원 단위입니다.
오류 응답
{ "error": "Invalid API key" }표준 규격에 맞춰 오류도 HTTP 200 으로 내려갑니다. 응답 본문에 error 키가 있는지로 판단하세요.
액션
상품 목록 action=services
key=<API키>&action=services
→ [
{
"service": 12,
"name": "인스타그램 팔로워 [실제] [30일 리필]",
"type": "default",
"category": "인스타그램 팔로워",
"rate": "2450.00", // 1,000개당 원
"min": "50",
"max": "100000",
"refill": true,
"cancel": true,
"currency": "KRW"
}
]주문 생성 action=add
key=<API키>&action=add&service=12&link=https://instagram.com/계정&quantity=1000
# 선택 파라미터
&comments=줄바꿈으로 구분된 댓글 // 댓글 상품
&runs=10&interval=60 // 드립피드 (10회, 60분 간격)
&idempotency_key=<고유값> // 중복 전송 방지 (권장)
→ { "order": "260903-00042" }idempotency_key는 표준 규격에는 없는 확장입니다. 네트워크 오류로 같은 요청을 다시 보내야 할 때 같은 키를 쓰면 주문이 두 번 들어가지 않습니다. 재시도 로직이 있다면 꼭 사용하세요.
상태 조회 action=status
# 단건
key=<API키>&action=status&order=260903-00042
→ { "charge": "2450.00", "start_count": "1200", "status": "In progress", "remains": "300", "currency": "KRW" }
# 묶음 (최대 100건)
key=<API키>&action=status&orders=260903-00042,260903-00043
→ {
"260903-00042": { "charge": "2450.00", "status": "Completed", "remains": "0", ... },
"260903-00043": { "error": "Incorrect order ID" }
}상태값: Pending · In progress · Processing · Completed · Partial · Canceled.
부분 완료(Partial) 시 미달 수량만큼 자동 환불되며, charge는 환불을 뺀 실제 청구액입니다.
잔액 조회 action=balance
key=<API키>&action=balance
→ { "balance": "1250000.00", "currency": "KRW" }예제
# cURL curl -X POST https://<도메인>/api/v2 \ -d "key=$API_KEY" \ -d "action=add" \ -d "service=12" \ -d "link=https://www.instagram.com/incheon_hanryang" \ -d "quantity=1000" \ -d "idempotency_key=$(uuidgen)"
// Node.js
const res = await fetch("https://<도메인>/api/v2", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: process.env.PANEL_KEY,
action: "add",
service: "12",
link: "https://www.instagram.com/incheon_hanryang",
quantity: "1000",
idempotency_key: crypto.randomUUID(),
}),
});
const data = await res.json();
if (data.error) throw new Error(data.error);
console.log(data.order);아직 열지 않은 액션:
refill, refill_status, cancel. 호출하면 지원하지 않는다는 오류를 명확히 돌려드립니다. 필요하시면 담당자에게 요청해 주세요.SNS충전소 재판매 API