SMM 패널 API v2
4X PANEL API는 SMM 패널에서 널리 쓰는 API v2 형식이에요. 이 형식을 지원하는 패널과 도구는 API 키 하나로 서비스 목록, 주문, 상태, 리필, 잔액을 연결할 수 있어요.
연결 정보
모든 요청은 같은 주소 하나로 보내고, action 값으로 할 일을 정해요.
- 주소
- https://4xpanel.com/api/v2
- 방식
- POST. 폼 필드(application/x-www-form-urlencoded) 또는 JSON 본문으로 보내요.
- 응답
- 언제나 HTTP 200과 JSON이에요. 문제가 있으면 {"error": "..."} 형태로 와요.
- API 키
- 첫 충전이 잔액에 반영되면 회원 화면의 API 키 페이지에서 만들어요. 새 키를 만들면 이전 키는 바로 멈춰요. 저희는 키의 지문 값만 보관해요.
- 한도
- 키 하나당 1분에 300회까지 요청할 수 있어요. 여러 주문 상태는 한 번에 100개까지 받아요.
- 금액
- 미국 달러(USD) 기준이에요. rate는 1,000개당 가격이고, 1회 상품(Package)은 1회 가격이에요.
주문 넣기 예시 코드
아래 예시는 실제 판매 중인 틱톡 조회수 서비스 번호로 add 요청을 보내요. YOUR_API_KEY를 내 키로 바꿔 쓰세요.
1curl -X POST https://4xpanel.com/api/v2 \2 -d key=YOUR_API_KEY \3 -d action=add \4 -d service=5373 \5 -d link=https://www.tiktok.com/@name/video/7300000000000000000 \6 -d quantity=1000응답
{"order":23501}services 서비스 목록
판매 중인 모든 서비스의 번호, 이름, 종류(type), 분류(category), 1,000개당 가격(rate), 최소·최대 수량, 리필 여부를 받아요. cancel은 언제나 false예요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | services |
응답 예시
[
{
"service": 5373,
"name": "Views - Instant - Speed 2M/D - No Refill",
"type": "Default",
"category": "TikTok - Views",
"rate": "0.0072",
"min": "100",
"max": "2147483647",
"refill": false,
"cancel": false
}
]add 주문 넣기
잔액에서 결제하고 주문 번호를 받아요. 틱톡 서비스는 서비스에 맞는 틱톡 링크(영상, 라이브, 프로필)만 받아요. 1회 상품은 quantity를 보내지 않아도 되고, 맞춤 댓글 서비스는 comments의 줄 수가 수량이 돼요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | add |
| service | 서비스 번호 |
| link | 공개 링크 |
| quantity | 수량 (최소 ~ 최대 안) |
| comments | 맞춤 댓글, 한 줄에 하나 (맞춤 댓글 서비스만, 10,000줄과 줄당 500자까지) |
응답 예시
{"order":23501}status 주문 상태
주문 하나의 결제 금액(charge, 환불을 뺀 금액), 시작 수(start_count), 상태, 남은 수량(remains)을 받아요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | status |
| order | 주문 번호 |
응답 예시
{"charge":"0.0072","start_count":"3572","status":"Partial","remains":"157","currency":"USD"}status (여러 주문) 여러 주문 상태
쉼표로 이은 주문 번호를 100개까지 보내면 번호별로 상태를 받아요. 내 주문이 아닌 번호는 그 자리에 오류가 와요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | status |
| orders | 쉼표로 이은 주문 번호 |
응답 예시
{"10":{"error":"Incorrect order ID"},"23501":{"charge":"0.0072","start_count":"3572","status":"Partial","remains":"157","currency":"USD"}}refill 리필 신청
리필 서비스이고, 주문이 완료 또는 부분 완료이고, 리필 기간 안이고, 열린 리필이 없고, 마지막 신청 뒤 24시간이 지났을 때 리필 번호를 받아요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | refill |
| order | 주문 번호 |
응답 예시
{"refill":"1"}refill_status 리필 상태
리필 번호로 리필 진행 상태를 받아요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | refill_status |
| refill | 리필 번호 |
응답 예시
{"status":"Completed"}balance 잔액
지금 잔액을 미국 달러로 받아요.
| 보내는 값 | 설명 |
|---|---|
| key | 내 API 키 |
| action | balance |
응답 예시
{"balance":"100.84","currency":"USD"}주문 상태 값은 무엇인가요?
| status | 설명 |
|---|---|
| Pending | 대기 중, 시작 전 (주문이 전달되고 시작을 기다리는 중) |
| In progress | 진행 중, 확인 중 (확인 중인 주문은 저희가 직접 살피는 중이에요) |
| Completed | 완료 |
| Partial | 부분 완료 (전달되지 않은 수량만큼 잔액으로 환불) |
| Canceled | 취소됨, 시작 안 됨 (전체 금액을 잔액으로 환불) |
리필 상태 값
| status | 설명 |
|---|---|
| Pending | 신청을 받았어요 |
| In progress | 리필이 진행 중이에요 |
| Completed | 리필이 끝났어요 |
| Rejected | 이번 리필은 진행되지 않았어요. 24시간 뒤 다시 신청할 수 있어요 |
오류 문구
| error 값 | 설명 |
|---|---|
| Invalid API key | 키가 틀렸거나, 새 키로 바뀌었거나, 아직 반영된 충전이 없어요 |
| Too many requests | 1분에 300회를 넘었어요. 잠시 뒤 다시 보내 주세요 |
| Incorrect service ID | 그 번호로 판매 중인 서비스가 없어요 |
| Incorrect link | 전체 웹 주소가 아니거나, 틱톡 서비스에 맞지 않는 링크예요 |
| Quantity out of range | 수량이 최소보다 적거나 최대보다 많아요 |
| Incorrect comments | 맞춤 댓글이 비어 있거나, 10,000줄 또는 줄당 500자를 넘었어요 |
| Not enough funds | 잔액이 결제 금액보다 적어요 |
| Incorrect order ID | 그 번호로 된 내 주문이 없어요 |
| Refill not available | 리필 조건(리필 서비스, 완료 또는 부분 완료, 기간 안, 24시간 간격)에 맞지 않아요 |
| Incorrect refill ID | 그 번호로 된 내 리필이 없어요 |
| Incorrect request | 알 수 없는 action이에요 |
| Bad request | 요청 본문을 읽을 수 없어요 |
| Use POST | GET으로 보냈어요. POST로 보내 주세요 |