빠른 시작
레드빈8 웹사이트에서 하던 문자·알림톡 발송을 REST API 로 그대로 사용할 수 있습니다. 회원가입, 로그인, 충전, 발신번호 승인은 웹사이트에서 하고, 발송과 결과 수신만 API 로 연동합니다.
연동 흐름
- 회원가입 · 로그인 · 충전 — 웹사이트에서 평소처럼 진행합니다. API 발송도 같은 잔액에서 차감됩니다.
- 발신번호 승인 — 발신번호 관리에서 등록·승인받습니다.
- API 키 발급 — API 연동 메뉴에서 키를 만들고, API 로 사용할 발신번호를 허용(스위치 켜기)합니다.
- 알림톡/브랜드메시지 — 웹사이트에서 발신프로필과 템플릿을 등록·검수받고, 발급된
발신프로필 키와템플릿 코드를 API 에 전달합니다. 사업자 회원만 사용할 수 있습니다. - 발송 —
POST /v1/messages/…로 요청합니다. 응답은202 Accepted이며 결과는 비동기로 확정됩니다. - 결과 수신 — Webhook 으로 받거나 조회 API 로 폴링합니다.
기본 정보
| Base URL | https://api-01.redbean8.io.kr/v1 |
|---|---|
| 인증 | Authorization: Bearer ak_… (자세히) |
| 요청 형식 | Content-Type: application/json; charset=utf-8 (파일 업로드만 multipart/form-data) |
| 응답 형식 | JSON. 성공 {"request_id","data"} / 실패 {"request_id","error":{"code","message","details"}} |
| 시각 | 응답은 ISO 8601(+09:00). 요청의 send_at 은 오프셋이 없으면 한국시간(KST)으로 해석합니다. |
| 전화번호 | 숫자만, 또는 하이픈 포함 모두 허용 (예: 01012345678, 010-1234-5678) |
첫 발송
아래 요청은 SMS 1건을 접수합니다. 처음에는 "dry_run": true 를 넣어 과금·발송 없이 검증만 해 볼 수 있습니다.
curl
curl -X POST https://api-01.redbean8.io.kr/v1/messages/sms \
-H "Authorization: Bearer $REDBEAN_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-20261107-0001" \
-d '{
"from": "0212345678",
"to": ["01012345678"],
"text": "[레드빈8] 인증번호는 123456 입니다.",
"client_ref": "order-20261107-0001"
}'Python
import os, requests
r = requests.post(
"https://api-01.redbean8.io.kr/v1/messages/sms",
headers={
"Authorization": f"Bearer {os.environ['REDBEAN_API_KEY']}",
"Idempotency-Key": "order-20261107-0001",
},
json={
"from": "0212345678",
"to": ["01012345678"],
"text": "[레드빈8] 인증번호는 123456 입니다.",
"client_ref": "order-20261107-0001",
},
timeout=15,
)
print(r.status_code, r.json())Node.js
const res = await fetch("https://api-01.redbean8.io.kr/v1/messages/sms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.REDBEAN_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "order-20261107-0001",
},
body: JSON.stringify({
from: "0212345678",
to: ["01012345678"],
text: "[레드빈8] 인증번호는 123456 입니다.",
client_ref: "order-20261107-0001",
}),
});
console.log(res.status, await res.json());PHP
<?php
$ch = curl_init('https://api-01.redbean8.io.kr/v1/messages/sms');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('REDBEAN_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: order-20261107-0001',
],
CURLOPT_POSTFIELDS => json_encode([
'from' => '0212345678',
'to' => ['01012345678'],
'text' => '[레드빈8] 인증번호는 123456 입니다.',
'client_ref' => 'order-20261107-0001',
], JSON_UNESCAPED_UNICODE),
]);
$body = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), ' ', $body;응답 (202 Accepted)
JSON
{
"request_id": "req_56439ccd3f54703bd824",
"data": {
"message_id": 1374,
"channel": "sms",
"status": "ACCEPTED",
"accepted": 1,
"rejected_count": 0,
"rejected": [],
"amount": 10.5,
"send_at": null,
"client_ref": "order-20261107-0001"
}
}202 는 접수를 뜻합니다. 통신사 전달 결과(성공/실패)는 이후 Webhook 또는 조회 API 로 확인하세요. 실패 건은 요금이 자동 환불됩니다.
제공 기능 한눈에 보기
| 기능 | 엔드포인트 | 설명서 |
|---|---|---|
| SMS / LMS / MMS | POST /v1/messages/{sms|lms|mms} | 보기 |
| MMS 이미지 업로드 | POST /v1/files/mms | 보기 |
| 알림톡 | POST /v1/messages/alimtalk | 보기 |
| 브랜드메시지 | POST /v1/messages/brand | 보기 |
| 발송 목록 · 상세 · 수신자별 결과 | GET /v1/messages[/{id}[/recipients]] | 보기 |
| 예약 취소 | POST /v1/messages/{id}/cancel | 보기 |
| 결과 Webhook | 고객사 URL 로 POST | 보기 |
| 잔액 · 발신번호 · 발신프로필 · 템플릿 | GET /v1/account/balance 외 | 보기 |