DESIGNED FOR DEVELOPERS

당신의 서비스에,
그린문자를 연결하세요.

JSON과 HTTP로 발송부터 잔여 건수 조회까지.
필요한 요청부터 시작할 수 있습니다.

처음 연동하는 순서

  1. 계정의 API 키 화면에서 서버용 키를 만듭니다.
  2. 예상 차감 건수 조회로 수신 번호와 메시지를 검증합니다.
  3. 고유한 요청 키와 함께 발송하고 내역에서 결과를 확인합니다.
기본 주소
https://green-sms.com/api/v1

인증

모든 요청의 Authorization 헤더에 API 키를 전달합니다. API 키는 서버에서만 사용하고 소스 저장소나 브라우저 코드에 노출하지 마세요.

HTTP headers
Authorization: Bearer YOUR_GREEN_SMS_API_KEY
Content-Type: application/json

키를 폐기하면 해당 키의 모든 요청이 차단됩니다. 키를 새로 발급한 뒤 서비스 설정을 교체하세요.

POST/api/v1/messages/quote

예상 차감 건수 조회

발송하지 않고 번호, 문자 인코딩, 메시지 단위와 차감할 문자 건수을 검증합니다.

요청 JSON
{
  "recipients": "+821012345678",
  "body": "예약이 확인되었습니다.",
  "sender": "GreenSMS",
  "label": "예약 확인"
}
필드설명
recipients국가번호를 포함한 번호. 여러 개는 줄바꿈 또는 쉼표로 구분
body메시지 본문
sender발신자 값
label내역에서 식별할 메시지 이름
scheduledAt선택. 시간대가 포함된 ISO 8601 예약 시각

예상 차감 건수 응답은 최상위 JSON 객체입니다. errors를 확인하세요. recipientCount, parts, messageCount가 계산 결과입니다.

POST/api/v1/messages

메시지 발송

예상 차감 건수 조회와 같은 본문을 사용합니다. 중복 발송 방지를 위해 Idempotency-Key 헤더에 요청별 고유 값을 반드시 넣어 주세요.

cURL
curl -X POST 'https://green-sms.com/api/v1/messages' \
  -H 'Authorization: Bearer YOUR_GREEN_SMS_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: order-2026-0001' \
  -d '{"recipients":"+821012345678","body":"예약이 확인되었습니다.","sender":"GreenSMS","label":"예약 확인"}'
네트워크가 끊겨 재시도할 때는 같은 요청 키와 동일한 본문을 사용하세요. 새로운 메시지를 보낼 때만 새 키를 만듭니다. 요청 성공은 접수를 의미하며 단말 전달 완료를 의미하지 않습니다.

발송 응답의 data.id와 data.reference를 저장하세요. data.isSimulation이 true이면 실제 발송이 아닌 테스트 처리입니다.

GET/api/v1/messages

발송 내역 조회

현재 API 키의 계정에 속한 메시지를 응답의 data 배열로 반환합니다. 선택적으로 search와 status 쿼리 값을 사용할 수 있습니다.

예시
GET /api/v1/messages?status=Delivered

처리 대기, 처리 중, 접수 완료, 전달 완료는 서로 다른 단계입니다. 최종 결과가 아직 도착하지 않은 요청을 새 요청 키로 다시 보내지 마세요.

GET/api/v1/balance

잔여 건수 조회

계정의 현재 발송 가능한 문자을 반환합니다. 웹 발송과 API 발송은 같은 잔여 건수을 사용합니다.

오류와 재시도

오류 응답의 error.code와 error.message를 확인하세요. 입력 오류는 내용을 수정한 뒤 다시 요청해야 합니다.

HTTP 상태대응
400수신 번호, 본문, 예약 시각과 요청 키를 확인하세요.
401 / 403API 키의 유효성, 활성 상태와 접근 권한을 확인하세요.
409동일 요청 키의 기존 처리 결과를 확인하세요.
429잠시 기다린 후 동일한 요청 키로 재시도하세요.
5xx발송 내역부터 확인하고, 중복 방지 키를 유지한 채 제한적으로 재시도하세요.

연결을 복구하고 있습니다…

연결이 끊어졌습니다. 초 후 다시 연결합니다.

연결을 복구하지 못했습니다.
다시 시도하거나 페이지를 새로고침해 주세요.

세션이 일시 중지되었습니다. 계속하려면 아래 버튼을 눌러 주세요.

세션을 재개하지 못했습니다.
다시 시도하거나 페이지를 새로고침해 주세요.