SMM 패널 API v2 문서
1PANEL PLUS API는 표준 SMM 패널 API v2예요. API 키와 action을 담아 POST로 보내면 JSON으로 답해요. 서비스, 가격, 잔액은 웹사이트와 같아요.
기본 정보
- 주소
https://1panelplus.com/api/v2- 방식
- POST
- 보내는 값
- 폼 필드 또는 JSON 본문 (Content-Type: application/json)
- 인증
- 모든 요청에 key (API 키)
- API 키
- 첫 충전이 반영된 뒤 대시보드의 API 키 화면에서 만들어요. 키는 만들 때 한 번만 보여요.
- 요청 한도
- 키 하나에 1분 300회
- 응답
- JSON, 금액은 미국 달러(USD)
- 가격과 잔액
- 웹사이트와 같은 서비스, 같은 가격, 같은 잔액
코드 예시: 주문 넣기
유튜브 조회수 서비스 4231번에 1,000개를 주문하는 요청이에요. YOUR_API_KEY와 VIDEO_ID만 바꿔 쓰면 돼요.
응답
{ "order": 23501 }services: 서비스 목록
판매 중인 서비스 전체를 돌려줘요. rate는 1,000개당 가격(USD)이고, type이 Package면 패키지 1개 가격이에요. cancel은 항상 false예요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | services |
응답 예시
[
{
"service": 4231,
"name": "Video/Short Views - Instant - Speed 2K/D - Low Drop - 30 Days Refill",
"type": "Default",
"category": "YouTube - Views (30 Days Refill)",
"rate": "0.4081",
"min": "100",
"max": "1000000",
"refill": true,
"cancel": false
}
]add: 주문 넣기
주문을 넣고 금액을 잔액에서 바로 빼요. 첫 충전이 반영된 계정에서 쓸 수 있어요. Custom Comments는 quantity 대신 comments를 보내면 줄 수가 수량이 되고, Package는 수량을 보내지 않아도 돼요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | add |
| service | 서비스 번호 |
| link | 동영상, 쇼츠, 라이브, 채널 등 공개 링크 |
| quantity | 수량 (서비스의 최소 ~ 최대) |
| comments | Custom Comments 전용: 한 줄에 댓글 하나, 줄마다 500자까지 |
응답 예시
{
"order": 23501
}status: 주문 상태
주문 하나의 상태예요. charge는 결제 금액에서 환불된 금액을 뺀 값(USD)이에요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | status |
| order | 주문 번호 |
응답 예시
{
"charge": "0.408100",
"start_count": "3572",
"status": "In progress",
"remains": "157",
"currency": "USD"
}status (orders): 여러 주문 상태
주문 번호를 쉼표로 이어 한 번에 100개까지 조회해요. 없는 번호는 그 자리에 error가 와요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | status |
| orders | 주문 번호 목록 (예: 1,10,100) |
응답 예시
{
"1": { "charge": "0.270000", "start_count": "3572", "status": "Partial", "remains": "157", "currency": "USD" },
"10": { "error": "Incorrect order ID" }
}refill: 리필 요청
리필 기간이 있는 서비스의 완료 또는 부분 완료 주문에 리필을 요청해요. 주문이 끝난 날부터 리필 기간 안에, 진행 중인 리필이 없고 마지막 요청 뒤 24시간이 지났을 때 받아요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | refill |
| order | 주문 번호 |
응답 예시
{
"refill": 412
}refill_status: 리필 상태
리필 요청 하나의 상태예요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | refill_status |
| refill | 리필 번호 |
응답 예시
{
"status": "Completed"
}balance: 잔액
계정 잔액(USD)이에요. 웹사이트의 잔액과 같아요.
| 값 | 설명 |
|---|---|
| key | API 키 |
| action | balance |
응답 예시
{
"balance": "100.840000",
"currency": "USD"
}상태 값
주문 상태는 약 1분마다 자동으로 바뀌어요. Partial과 Canceled는 남은 금액이 잔액으로 자동 환불된 상태예요.
| 주문 status | 뜻 |
|---|---|
| Pending | 접수됨, 시작을 기다리는 중 |
| In progress | 들어가는 중 |
| Completed | 모두 들어감 |
| Partial | 일부 들어감, 나머지 금액은 잔액으로 환불 |
| Canceled | 들어가지 않음, 전액 잔액으로 환불 |
| 리필 status | 뜻 |
|---|---|
| Pending | 요청 접수 |
| In progress | 다시 채우는 중 |
| Completed | 리필 완료 |
| Rejected | 리필을 진행하지 못함 |
오류 메시지
오류도 HTTP 200으로 오고, 본문의 error에 이유가 담겨 있어요.
{
"error": "Not enough funds on balance"
}| error | 이유 |
|---|---|
| Invalid API key | 키가 없거나 맞지 않아요. 새 키를 만들면 이전 키는 이 오류가 나요 |
| Too many requests | 키 하나로 1분에 300회를 넘었어요 |
| Add funds first | 첫 충전이 반영되기 전에 add를 보냈어요 |
| Incorrect service ID | 그 번호의 판매 중인 서비스가 없어요 |
| Incorrect link | 링크가 비었거나 웹 주소 형식이 아니에요 |
| Quantity out of range | 서비스의 최소보다 적거나 최대보다 많아요 |
| Incorrect comments | Custom Comments에 댓글이 없거나 한 줄이 500자를 넘어요 |
| Not enough funds on balance | 잔액이 주문 금액보다 적어요 |
| Incorrect order ID | 내 계정에 그 번호의 주문이 없어요 |
| Refill is not available for this service | 리필 기간이 없는 서비스예요 |
| Order is not finished yet | 완료 또는 부분 완료된 주문만 리필할 수 있어요 |
| Refill period has ended | 주문이 끝난 날부터 센 리필 기간이 지났어요 |
| Refill already requested, try again later | 진행 중인 리필이 있거나 마지막 요청 뒤 24시간이 지나지 않았어요 |
| Incorrect refill ID | 내 계정에 그 번호의 리필이 없어요 |
| Incorrect action | action 값이 목록에 없어요 |
서비스와 가격은 SMM 패널 가격표에서도 볼 수 있어요.