이지센더이지센더
    OpenAPI JSON로그인

    v1.0.0

    이지센더 API

    소개API 테스트

    인증

    인증 확인

    이메일 캠페인

    이메일 캠페인 목록조회이메일 캠페인 생성이메일 캠페인 상세내용 조회이메일 캠페인 수정이메일 캠페인 삭제이메일 캠페인 복사이메일 캠페인 메일 테스트 발송이메일 캠페인 메일 발송 실행

    주소록 그룹

    주소록 그룹 목록조회주소록 그룹 생성주소록 그룹명 수정주소록 그룹 삭제

    구독자

    구독자 목록 조회구독자 추가구독자 상태 변경구독자 삭제

    자동화

    자동화 목록조회자동화 상세내역자동화 메일 추가자동화 발송 실행

    이지센더 API

    이 문서는 이지센더 API의 인증 방식, 공통 요청 규칙, 오류 응답 형식과 각 API의 요청 및 응답 구조를 설명합니다.

    Base URL

    https://ezsender.net/api/v1

    인증

    X-EZSENDER-ID: YOUR_API_ID

    X-EZSENDER-SECRET: YOUR_SECRET_KEY

    요청 형식

    모든 요청 본문은 JSON이며, 응답도 JSON으로 반환됩니다. 인증 정보는 계정 설정의 API 설정 화면에서 생성합니다.

    {
      "code": "Errors.Data.InvalidRequest",
      "httpStatusCode": 400,
      "message": "잘못된 요청입니다."
    }

    인증 확인 예시

    curl -X GET "https://ezsender.net/api/v1/auth-check" \
      -H "X-EZSENDER-ID: YOUR_API_ID" \
      -H "X-EZSENDER-SECRET: YOUR_SECRET_KEY"

    Live Console

    API 테스트

    발급한 API ID와 secret key로 문서의 엔드포인트를 현재 환경에서 직접 호출하고 응답을 확인합니다.

    GET/api/v1/auth-check
    Request Body

    Response

    요청을 실행하면 상태 코드, 응답 시간, JSON 응답이 표시됩니다.

    인증

    인증 확인

    발급된 API ID와 secret key 조합이 유효한지 확인합니다.

    GET/auth-check

    Request

    요청 본문 없음

    Response

    {
      "success": true,
      "authenticated": true,
      "apiKeyId": "ez_xxx",
      "userIdx": 1
    }

    이메일 캠페인

    이메일 캠페인 목록조회

    캠페인을 최신 생성순으로 조회합니다.

    GET/campaigns

    Query

    pagelimitstatussearch

    Request

    요청 본문 없음

    Response

    {
      "campaigns": [
        {
          "id": 10,
          "title": "7월 뉴스레터",
          "status": "draft"
        }
      ],
      "pagination": {
        "page": 1,
        "limit": 20,
        "total": 1,
        "totalPages": 1
      }
    }

    이메일 캠페인 생성

    작성중 상태의 이메일 캠페인을 생성합니다.

    POST/campaigns

    Request

    {
      "title": "7월 뉴스레터",
      "subject": "새 소식입니다",
      "html": "<h1>Hello</h1>",
      "recipients": {
        "groups": [
          1
        ],
        "segments": []
      }
    }

    Response

    {
      "campaign": {
        "id": 10,
        "title": "7월 뉴스레터",
        "status": "draft"
      }
    }

    이메일 캠페인 상세내용 조회

    캠페인 본문과 수신 대상 설정을 함께 조회합니다.

    GET/campaigns/{id}

    Request

    요청 본문 없음

    Response

    {
      "campaign": {
        "id": 10,
        "subject": "새 소식입니다",
        "html": "<h1>Hello</h1>",
        "recipients": {
          "groups": [
            1
          ]
        }
      }
    }

    이메일 캠페인 수정

    제목, 본문, 발신자, 수신 대상 등을 수정합니다.

    PATCH/campaigns/{id}

    Request

    {
      "subject": "수정된 제목",
      "html": "<p>Updated</p>"
    }

    Response

    {
      "campaign": {
        "id": 10,
        "subject": "수정된 제목"
      }
    }

    이메일 캠페인 삭제

    캠페인을 삭제합니다.

    DELETE/campaigns/{id}

    Request

    요청 본문 없음

    Response

    {
      "success": true,
      "deletedId": 10
    }

    이메일 캠페인 복사

    기존 캠페인과 수신 대상 설정을 복사해 새 작성중 캠페인을 만듭니다.

    POST/campaigns/{id}/copy

    Request

    요청 본문 없음

    Response

    {
      "campaign": {
        "id": 11,
        "title": "7월 뉴스레터 복사본",
        "status": "draft"
      }
    }

    이메일 캠페인 메일 테스트 발송

    캠페인 본문을 지정한 이메일 주소로 테스트 발송합니다.

    POST/campaigns/{id}/test-send

    Request

    {
      "to": [
        "test@example.com"
      ]
    }

    Response

    {
      "success": true,
      "recipients": [
        "test@example.com"
      ],
      "server": "primary-mail"
    }

    이메일 캠페인 메일 발송 실행

    즉시 발송 또는 예약 발송을 실행합니다.

    POST/campaigns/{id}/send

    Request

    {
      "mode": "immediate"
    }

    Response

    {
      "success": true,
      "id": 10,
      "status": "scheduled",
      "recipientCount": 120
    }

    주소록 그룹

    주소록 그룹 목록조회

    주소록 그룹과 그룹별 구독자 수를 조회합니다.

    GET/address-books/groups

    Request

    요청 본문 없음

    Response

    {
      "groups": [
        {
          "id": 1,
          "name": "기본 그룹",
          "active": 100,
          "total": 102
        }
      ]
    }

    주소록 그룹 생성

    새 주소록 그룹을 생성합니다.

    POST/address-books/groups

    Request

    {
      "name": "VIP 고객",
      "description": "고가치 고객 그룹"
    }

    Response

    {
      "group": {
        "id": 2,
        "name": "VIP 고객"
      }
    }

    주소록 그룹명 수정

    그룹 이름 또는 설명을 수정합니다.

    PATCH/address-books/groups/{id}

    Request

    {
      "name": "VIP 고객 2026"
    }

    Response

    {
      "group": {
        "id": 2,
        "name": "VIP 고객 2026"
      }
    }

    주소록 그룹 삭제

    주소록 그룹을 삭제합니다.

    DELETE/address-books/groups/{id}

    Request

    {
      "deleteSubscribers": false
    }

    Response

    {
      "success": true,
      "deletedId": 2
    }

    구독자

    구독자 목록 조회

    구독자 목록을 이메일 기준으로 조회합니다.

    GET/subscribers

    Query

    pagelimitgroupIdstatussearch

    Request

    요청 본문 없음

    Response

    {
      "subscribers": [
        {
          "id": 100,
          "email": "user@example.com",
          "status": "active",
          "groups": [
            "기본 그룹"
          ]
        }
      ]
    }

    구독자 추가

    지정한 그룹에 구독자를 추가하거나 기존 정보를 갱신합니다.

    POST/subscribers

    Request

    {
      "groupName": "기본 그룹",
      "subscribers": [
        {
          "email": "user@example.com",
          "name": "홍길동"
        }
      ]
    }

    Response

    {
      "success": true,
      "inserted": 1,
      "updated": 0,
      "failed": 0
    }

    구독자 상태 변경

    구독자 상태를 active 또는 unsubscribed로 변경합니다.

    PATCH/subscribers

    Request

    {
      "emails": [
        "user@example.com"
      ],
      "status": "unsubscribed"
    }

    Response

    {
      "success": true,
      "updated": 1,
      "status": "unsubscribed"
    }

    구독자 삭제

    구독자를 ID 또는 이메일 기준으로 삭제합니다.

    DELETE/subscribers

    Request

    {
      "emails": [
        "user@example.com"
      ]
    }

    Response

    {
      "success": true,
      "deleted": 1
    }

    자동화

    자동화 목록조회

    자동화 목록을 조회합니다.

    GET/automations

    Query

    pagelimitstatus

    Request

    요청 본문 없음

    Response

    {
      "automations": [
        {
          "id": 3,
          "name": "웰컴 자동화",
          "status": "active"
        }
      ]
    }

    자동화 상세내역

    자동화 시작 조건과 단계 구성을 조회합니다.

    GET/automations/{id}

    Request

    요청 본문 없음

    Response

    {
      "automation": {
        "id": 3,
        "name": "웰컴 자동화",
        "steps": []
      }
    }

    자동화 메일 추가

    자동화 흐름에 이메일 단계를 추가합니다.

    POST/automations/{id}/emails

    Request

    {
      "title": "첫 인사 메일",
      "subject": "가입을 환영합니다",
      "html": "<p>Welcome</p>"
    }

    Response

    {
      "success": true,
      "step": {
        "type": "email",
        "title": "첫 인사 메일"
      }
    }

    자동화 발송 실행

    활성 상태의 대상 선택 후 실행 자동화를, 활성 구독자에게 실행합니다.

    POST/automations/{id}/run

    Request

    {
      "subscriberIds": [
        12
      ]
    }

    Response

    {
      "success": true,
      "id": 3,
      "status": "active",
      "executionCount": 1
    }