curl
curl "https://docurise.io/api/preview/email/broadcasts?status=sent&limit=20" \
-H "Authorization: Bearer $DOCURISE_API_KEY"import requests
url = "https://docurise.io/api/preview/email/broadcasts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://docurise.io/api/preview/email/broadcasts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://docurise.io/api/preview/email/broadcasts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://docurise.io/api/preview/email/broadcasts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://docurise.io/api/preview/email/broadcasts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://docurise.io/api/preview/email/broadcasts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "7f1c0f7e-3c5e-4b1a-9d34-2f0a5b6c8d90",
"name": "10월 런칭",
"subject": "새 기능이 나왔어요",
"status": "sent",
"scheduledAt": null,
"sentAt": "2026-10-01T09:00:12.000Z",
"recipientCount": 1280
},
{
"id": "0b9a3c1d-5e7f-4a21-8c3d-9e1f2a3b4c5d",
"name": null,
"subject": "다음 주 안내",
"status": "draft",
"scheduledAt": null,
"sentAt": null,
"recipientCount": null
}
],
"nextCursor": null
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}이메일
이메일 1회성 발송 목록 조회
상태, 예약 시각, 확정된 대상 수와 함께 이메일 1회성 발송을 나열합니다(메타데이터만)
GET
/
api
/
preview
/
email
/
broadcasts
curl
curl "https://docurise.io/api/preview/email/broadcasts?status=sent&limit=20" \
-H "Authorization: Bearer $DOCURISE_API_KEY"import requests
url = "https://docurise.io/api/preview/email/broadcasts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://docurise.io/api/preview/email/broadcasts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://docurise.io/api/preview/email/broadcasts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://docurise.io/api/preview/email/broadcasts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://docurise.io/api/preview/email/broadcasts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://docurise.io/api/preview/email/broadcasts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "7f1c0f7e-3c5e-4b1a-9d34-2f0a5b6c8d90",
"name": "10월 런칭",
"subject": "새 기능이 나왔어요",
"status": "sent",
"scheduledAt": null,
"sentAt": "2026-10-01T09:00:12.000Z",
"recipientCount": 1280
},
{
"id": "0b9a3c1d-5e7f-4a21-8c3d-9e1f2a3b4c5d",
"name": null,
"subject": "다음 주 안내",
"status": "draft",
"scheduledAt": null,
"sentAt": null,
"recipientCount": null
}
],
"nextCursor": null
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"retryAfterSeconds": 123,
"details": {}
}
}인증
Settings → Developers에서 발급한 키를 Authorization: Bearer dr_live_<12자리 16진수>_<64자리 16진수> 형태로 전송합니다. 키는 명시적인 범위를
가지며 — 각 엔드포인트에 필요한 범위가 해당 엔드포인트에 명시되어 있습니다. 전체 키는 발급 시점에 딱 한
번만 표시되며 다시 조회할 수 없습니다 — 이후에는 keyId 접두어만 표시됩니다. 폐기된
키는 바로 다음 요청부터 인증에 실패합니다.
쿼리 매개변수
이름 또는 제목에 이 텍스트가 포함된 1회성 발송만 반환합니다(1~100자). 일반 텍스트로 비교하므로 %, _는 와일드카드가 아닙니다. NUL 문자(%00)가 포함되면 VALIDATION_ERROR로 거부됩니다.
Required string length:
1 - 100이 상태의 1회성 발송만 반환합니다. paused는 받지 않지만, 보류된 1회성 발송도 목록에는 나올 수 있습니다.
사용 가능한 옵션:
draft, scheduled, sending, sent, partial, failed 이 시각 이후(해당 시각 포함)에 발송된 건만 반환합니다(RFC 3339, 예 2026-10-01T00:00:00Z).
이 시각 이전(해당 시각 미포함)에 발송된 건만 반환합니다(RFC 3339). sentAfter보다 빠를 수 없으며 범위는 366일을 넘을 수 없습니다.
페이지당 1회성 발송 수.
필수 범위:
1 <= x <= 100이전 페이지의 nextCursor.
Maximum string length:
512