개발자 API

메일리 API를 이용하면 외부 시스템에서 구독자를 조회·등록·수정하고, 그룹을 관리하며, 자동 이메일을 실행하고, 뉴스레터 데이터를 가져올 수 있습니다. 서버 간(server-to-server) 요청만 지원하며, 일반 HTML 폼에서의 직접 요청은 허용되지 않습니다.

 

기본 정보

항목
Base URLhttps://api.maily.so
인증모든 요청 헤더에 Authorization: Bearer {API_KEY}
데이터 형식요청·응답 모두 JSON (경로 끝에 .json 사용)
요청 제한IP당 초당 20회 (초과 시 429 Rate Limit Exceeded)

아래 경로의 {스페이스 주소}는 뉴스레터 주소(space_url)입니다. 숫자 ID가 아니라 https://maily.so/@내주소의 주소 부분을 그대로 사용합니다.

 

API 키 발급

  1. 좌측 메뉴 개발자 도구 → 개발자 API로 이동합니다.
  2. API 키(토큰)를 생성합니다. 이미 있으면 그대로 사용하고, 노출되었을 때는 재발급으로 새 토큰을 만들 수 있습니다.
  3. 발급한 토큰을 요청 헤더 Authorization: Bearer {API_KEY}에 넣어 호출합니다.

토큰은 뉴스레터 소유자 계정에 종속됩니다. 재발급하면 이전 토큰은 즉시 무효화되므로, 연동 중인 시스템의 토큰도 함께 교체해야 합니다.

▲ 개발자 도구 → 개발자 API 화면
▲ 개발자 도구 → 개발자 API 화면

 

플랜별 사용 범위

개발자 API는 브랜딩 플랜 이상에서 사용할 수 있으며, 활성 비즈니스 계정이 필요합니다. 기능에 따라 요구 플랜이 다릅니다.

  • 조회 API (구독자 목록·집계, 이메일 목록) — 브랜딩 플랜 이상
  • 관리 API (구독자 등록·수정·취소, 그룹 추가·제외, 자동 이메일 실행) — 마케팅 플랜

 

조회 API

구독 데이터를 읽는 API입니다. (브랜딩 플랜 이상)

구독자 목록 조회

GET /api/{스페이스 주소}/subscriptions.json

구독자 목록을 최신순으로 조회합니다. 한 페이지에 100명씩 반환됩니다.

파라미터필수설명
page선택페이지 번호 (기본 1)

응답: subscriptions 배열과 함께 current_page, total_pages, is_last_page를 반환합니다. 각 구독자에는 부가 정보(커스텀 필드)와 멤버십 정보(멤버십 운영 시)가 포함됩니다.

 

구독자 집계 조회

GET /api/{스페이스 주소}/subscriptions/stats.json

구독자 수를 상태·플랜별로 집계해 반환합니다. 별도 파라미터는 없습니다.

응답: 전체 구독자 수(total_count), 상태별 수(plan_counts — free/canceled 등), 멤버십을 운영 중이면 유료 플랜별 수와 유료 멤버십 수(paid_membership_count)를 포함합니다.

 

이메일(뉴스레터) 목록 조회

GET /api/{스페이스 주소}/notes.json

발행한 뉴스레터(이메일) 목록을 조회합니다. 한 페이지에 100개씩 반환됩니다.

파라미터필수설명
page선택페이지 번호 (기본 1)
status선택상태로 필터 (예: published)
order_by선택published_at 지정 시 발행일순, 그 외에는 생성일순(기본)
posting_type선택발행 유형으로 필터

응답: notes 배열과 함께 current_page, is_last_page를 반환합니다.

 

관리 API

구독자·그룹·자동 이메일을 제어하는 API입니다. (마케팅 플랜)

구독자 신규 등록

POST /api/{스페이스 주소}/subscriptions.json

새 구독자를 등록합니다. 기본적으로 웰컴 레터가 발송됩니다.

파라미터필수설명
email필수구독자 이메일
name선택구독자 닉네임
welcome_letter선택웰컴 레터 발송 여부 (기본 true, 불리언 false로 보내면 미발송)
marketing_agreement선택마케팅 정보 수신 동의 여부
marketing_agreed_at선택마케팅 동의 시각

 

구독자 정보 수정

PUT /api/{스페이스 주소}/subscriptions/update_if_exist.json

이메일로 기존 구독자를 찾아 정보를 수정합니다. 해당 이메일 구독자가 없으면 오류를 반환합니다.

파라미터필수설명
email필수수정할 구독자 이메일 (대상 식별용)
name선택닉네임 변경
marketing_agreement선택마케팅 정보 수신 동의 여부
marketing_agreed_at선택마케팅 동의 시각

 

구독자 삭제 (구독 취소)

POST /api/{스페이스 주소}/subscriptions/cancel.json

해당 구독자의 구독을 취소합니다. 환불 가능한 유료 구독이면 환불도 함께 처리됩니다.

파라미터필수설명
email필수구독을 취소할 구독자 이메일

 

그룹에 구독자 추가

POST /api/{스페이스 주소}/subscription_groups/{그룹 ext_id}/add_subscriber.json

특정 구독 그룹에 구독자를 추가합니다.

파라미터필수설명
email필수추가할 구독자 이메일

 

그룹에서 구독자 제외

POST /api/{스페이스 주소}/subscription_groups/{그룹 ext_id}/remove_subscriber.json

특정 구독 그룹에서 구독자를 제외합니다.

파라미터필수설명
email필수제외할 구독자 이메일

 

자동 이메일 실행

POST /api/{스페이스 주소}/automated_emails/{자동 이메일 ext_id}/trigger.json

특정 구독자에게 자동 이메일 트리거를 실행합니다.

파라미터필수설명
automated_email_trigger_ext_id필수실행할 자동 이메일 트리거 ID
email필수이메일을 받을 구독자

 

응답·에러 처리와 테스트

각 API의 상세 응답 형식과 에러 처리, 실제 호출 테스트는 로그인 후 개발자 도구 → 개발자 API 메뉴의 실행해보기에서 확인할 수 있습니다. 이벤트 발생 시 실시간 알림을 받고 싶다면 웹훅을 함께 활용하세요.

다음 글 보기
메일리 도우미

메일리 로고

도움말 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so 채팅으로 문의하기

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울특별시 송파구 위례광장로 199, 5층 501-2-31호

이용약관 | 개인정보처리방침 | 정기결제 이용약관 | 라이선스