한정 기간: 첫 번째 결제 30% 할인.
API 개요로 돌아가기

InboxWarm API 문서

InboxWarm REST API에 대한 레퍼런스 문서입니다. InboxWarm API Postman 컬렉션과 함께 사용하세요.

기본 URL#

https://app.inboxwarm.ai/api/v1

인증#

InboxWarm은 HTTP 메서드에 따라 혼합 인증 방식을 사용합니다:

GET

GET 및 DELETE 요청 — API 키를 api_key 쿼리 매개변수로 전송합니다.

POST

POST 및 PATCH 요청 — API 키를 JSON 본문 내의 apiKey 필드로 전송합니다.

InboxWarm 앱의 Developer kit > API Integration에서 키를 생성하고 관리합니다. 각 키는 아래의 모든 엔드포인트에 걸쳐 전체 계정 접근 권한을 부여합니다.

예시 — GET 요청:

GET https://app.inboxwarm.ai/api/v1/email-accounts?api_key=YOUR_API_KEY

예시 — POST 요청 본문:

{
  "apiKey": "YOUR_API_KEY",
  ...
}

요청 제한#

기본 제한은 API 키당 분당 20 요청입니다. GET /rate-limit을 통해 언제든지 현재 사용량을 확인할 수 있습니다 — 이 호출은 할당량에 포함되지 않습니다.

오류#

오류는 일관된 형식을 따릅니다:

{
  "error_code": "validation_error",
  "message": "One or more fields are invalid.",
  "details": {}
}

일반적인 error_code 값: validation_error (400), not_found (404), conflict (409), unprocessable (422).

엔드포인트 색인#

시스템

상태 점검#

GEThttps://app.inboxwarm.ai/api/v1/health

API에 대한 기본 활성 상태 점검.

인증:쿼리 매개변수api_key

응답

{
  "status": "ok"
}

요청 제한 상태#

GEThttps://app.inboxwarm.ai/api/v1/rate-limit

할당량에 대한 요청을 소모하지 않고 현재 요청 제한 소비량을 확인합니다.

인증:쿼리 매개변수api_key

응답

{
  "limit": 20,
  "remaining": 18,
  "reset": 1752585600
}

이메일 계정

이메일 계정 목록#

GEThttps://app.inboxwarm.ai/api/v1/email-accounts

연결된 이메일 계정과 현재 상태를 나열합니다. 검색, 페이지네이션, 정렬을 지원합니다. 주소의 emailAccountId를 다시 확인해야 할 경우 검색을 사용하여 조회하세요.

인증:쿼리 매개변수api_key

쿼리 매개변수

search이메일 주소 또는 이름으로 검색
statusactive | warming | paused | error | auth-expired
sort
sortBy

응답

{
  "items": [
    {
      "id": "12345",
      "fromEmail": "john@yourcompany.com",
      "fromName": "John Doe",
      "type": "gmail",
      "status": "warming",
      "createdAt": "2026-06-01T10:00:00.000Z"
    },
    {
      "id": "12346",
      "fromEmail": "sales@yourcompany.com",
      "fromName": "Sales Team",
      "type": "microsoft",
      "status": "active",
      "createdAt": "2026-06-03T14:20:00.000Z"
    }
  ],
  "total": 2,
  "page": 1,
  "limit": 20,
  "totalPages": 1
}

이메일 계정 연결#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts

SMTP/IMAP 자격 증명(Gmail과 Microsoft는 앱 비밀번호 사용 가능)을 사용하여 Gmail, Microsoft 또는 SMTP/IMAP 계정을 연결합니다. 반환된 emailAccountId를 저장하세요 — 다른 모든 엔드포인트가 이를 기준으로 동작합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "fromEmail": "john@yourcompany.com",
  "fromName": "John Doe",
  "type": "gmail",
  "smtp": {
    "host": "smtp.example.com",
    "port": 587,
    "password": "your-password",
    "encryption": "TLS",
    "userName": "smtp-username"
  },
  "imap": {
    "host": "imap.example.com",
    "port": 993,
    "encryption": "SSL",
    "userName": "imap-username"
  }
}

응답

{
  "emailAccountId": "12345",
  "fromEmail": "john@yourcompany.com",
  "fromName": "John Doe",
  "type": "gmail",
  "status": "active"
}

이메일 계정 일괄 연결#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/bulk-connect

한 번의 호출로 최대 20개의 계정을 연결합니다. 각 항목은 개별적으로 검증되고 연결되므로 잘못되었거나 중복된 계정 하나가 나머지 처리를 막지 않으며, 응답은 입력한 순서와 동일하게 계정별 성공 또는 실패 결과를 보고합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccounts": [
    {
      "fromEmail": "john@yourcompany.com",
      "fromName": "John Doe",
      "type": "gmail",
      "smtp": { "host": "smtp.example.com", "port": 587, "password": "your-password", "encryption": "TLS", "userName": "smtp-username" },
      "imap": { "host": "imap.example.com", "port": 993, "encryption": "SSL", "userName": "imap-username" }
    },
    {
      "fromEmail": "sales@yourcompany.com",
      "type": "microsoft",
      "smtp": { "password": "app-specific-password" }
    }
  ]
}

응답

{
  "results": [
    {
      "success": true,
      "emailAccountId": "12345",
      "fromEmail": "john@yourcompany.com",
      "fromName": "John Doe",
      "type": "gmail",
      "status": "active"
    },
    {
      "success": false,
      "fromEmail": "sales@yourcompany.com",
      "error_code": "already_connected",
      "message": "This email address is already connected.",
      "details": {}
    }
  ]
}

이메일 계정 연결 해제#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/{emailAccountId}/disconnect

계정을 삭제하지 않고 일시 중지합니다. 나중에 다시 연결할 수 있도록 설정과 기록이 보존됩니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}"
}

응답

{
  "emailAccountId": "12345",
  "status": "disconnected"
}

이메일 계정 삭제#

DELETEhttps://app.inboxwarm.ai/api/v1/email-accounts/{emailAccountId}

계정과 관련된 모든 워밍업 데이터 및 기록을 영구적으로 제거합니다.

인증:쿼리 매개변수api_key

응답

응답 본문 없음

이메일 계정 일괄 삭제#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/bulk-delete

한 번의 호출로 최대 20개의 계정을 영구적으로 제거합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ]
}

응답

{
  "results": [
    {
      "emailAccountId": "12345",
      "deleted": true
    },
    {
      "emailAccountId": "12346",
      "deleted": true
    }
  ]
}

이메일 계정 상태 조회#

GEThttps://app.inboxwarm.ai/api/v1/email-accounts/{emailAccountId}/status

단일 계정에 대한 상세 상태 — 연결 상태, 워밍업 상태, 인증 상태, 활성 오류.

인증:쿼리 매개변수api_key

응답

{
  "emailAccountId": "12345",
  "fromEmail": "john@yourcompany.com",
  "type": "gmail",
  "authStatus": "connected",
  "warmupStatus": "active",
  "healthScore": 92,
  "connectionError": null,
  "lastConnectedAt": "2026-07-15T08:00:00.000Z"
}

이메일 계정 상태 일괄 조회#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/bulk-status

한 번의 호출로 최대 50개 계정의 상태를 조회하며, 입력한 ID와 동일한 순서로 반환됩니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ]
}

응답

{
  "results": [
    {
      "emailAccountId": "12345",
      "fromEmail": "john@yourcompany.com",
      "type": "gmail",
      "authStatus": "connected",
      "warmupStatus": "active",
      "healthScore": 92,
      "connectionError": null,
      "lastConnectedAt": "2026-07-15T08:00:00.000Z"
    },
    {
      "emailAccountId": "12346",
      "fromEmail": "sales@yourcompany.com",
      "type": "microsoft",
      "authStatus": "connected",
      "warmupStatus": "paused",
      "healthScore": 81,
      "connectionError": null,
      "lastConnectedAt": "2026-07-14T22:10:00.000Z"
    }
  ]
}

워밍업

워밍업 설정 조회#

GEThttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}

계정의 현재 워밍업 구성을 가져옵니다.

인증:쿼리 매개변수api_key

응답

{
  "emailAccountId": "12345",
  "displayName": "Ada Lovelace",
  "timeZone": "America/New_York",
  "sendingDays": [1, 2, 3, 4, 5],
  "sendingWindowStartTime": "09:00",
  "sendingWindowEndTime": "17:00",
  "warmupLanguage": "en",
  "targetIndustry": "saas_software",
  "warmupTopics": ["Referral request", "Case study"]
}

워밍업 설정 업데이트#

PATCHhttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}

계정의 워밍업 설정 중 하나 이상을 업데이트합니다 — 발신자 이름, 시간대, 발송 일정, 언어, 업종, 주제. 전송한 필드만 변경됩니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "displayName": "Ada Lovelace",
  "timeZone": "America/New_York",
  "sendingDays": [1, 2, 3, 4, 5],
  "sendingWindowStartTime": "09:00",
  "sendingWindowEndTime": "17:00",
  "warmupLanguage": "en",
  "targetIndustry": "saas_software",
  "warmupTopics": ["Referral request", "Case study"]
}

응답

{
  "emailAccountId": "12345",
  "displayName": "Ada Lovelace",
  "timeZone": "America/New_York",
  "sendingDays": [1, 2, 3, 4, 5],
  "sendingWindowStartTime": "09:00",
  "sendingWindowEndTime": "17:00",
  "warmupLanguage": "en",
  "targetIndustry": "saas_software",
  "warmupTopics": ["Referral request", "Case study"]
}

워밍업 언어 목록#

GEThttps://app.inboxwarm.ai/api/v1/warmup-settings/languages

워밍업 콘텐츠를 생성할 수 있는 모든 언어를 나열하여 warmupLanguage가 허용하는 값을 확인할 수 있습니다.

인증:쿼리 매개변수api_key

응답

{
  "languages": [
    { "code": "en", "name": "English", "nativeName": "English", "script": "Latin" },
    { "code": "es", "name": "Spanish", "nativeName": "Español", "script": "Latin" },
    { "code": "ja", "name": "Japanese", "nativeName": "日本語", "script": "Japanese" }
  ]
}

워밍업 업종 목록#

GEThttps://app.inboxwarm.ai/api/v1/warmup-settings/industries

모든 대상 업종과 추천 주제를 나열하여 targetIndustry와 warmupTopics가 허용하는 값을 확인할 수 있습니다.

인증:쿼리 매개변수api_key

응답

{
  "industries": [
    {
      "key": "e_commerce",
      "name": "E-Commerce",
      "topics": [
        "Abandoned cart follow-up",
        "New product launch",
        "Seasonal sale announcement",
        "Order and shipping update",
        "Customer review request"
      ]
    },
    {
      "key": "saas_software",
      "name": "SaaS / Software",
      "topics": ["Feature announcement", "Onboarding tip", "Case study"]
    }
  ]
}

워밍업 시작#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}/start

계정의 워밍업을 시작합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}"
}

응답

{
  "emailAccountId": "12345",
  "warmupStatus": "active"
}

워밍업 중지#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}/stop

계정의 워밍업을 중지합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}"
}

응답

{
  "emailAccountId": "12345",
  "warmupStatus": "paused"
}

워밍업 일괄 작업#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/bulk-action

한 번의 호출로 최대 50개 계정의 워밍업을 시작하거나 중지합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "action": "start"
}

응답

{
  "results": [
    {
      "emailAccountId": "12345",
      "status": "ok"
    },
    {
      "emailAccountId": "12346",
      "status": "ok"
    }
  ]
}

워밍업 설정 일괄 업데이트#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/bulk-update

한 번의 호출로 최대 50개 계정에 일정 및/또는 콘텐츠 설정을 적용합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "apply": ["language", "window"],
  "warmupLanguage": "es",
  "sendingWindowStartTime": "06:00",
  "sendingWindowEndTime": "10:00"
}

응답

{
  "updatedCount": 2
}

워밍업 활동 기록#

GEThttps://app.inboxwarm.ai/api/v1/warmup-status/{emailAccountId}

계정의 오늘 워밍업 활동: 발신, 수신, 답장, 스팸, 반송.

인증:쿼리 매개변수api_key

응답

{
  "emailAccountId": "12345",
  "date": "2026-07-15",
  "current": "active",
  "dailySendingLimit": 10,
  "sent": 12,
  "received": 10,
  "replied": 7,
  "spam": 1,
  "bounced": 0
}

전달성

설정 점수 조회#

GEThttps://app.inboxwarm.ai/api/v1/setup-score/{emailAccountId}

계정에 대한 캐시된 설정 상태 점수(DMARC, SPF, DKIM, MX, 블랙리스트 검사).

인증:쿼리 매개변수api_key

응답

{
  "emailAccountId": "12345",
  "emailAccountScore": 86,
  "dmarcScore": 15,
  "spfScore": 29,
  "dkimScore": 18,
  "mxRecordScore": 9,
  "ipBlacklistScore": 5,
  "domainBlacklistScore": 10,
  "updatedAt": "2026-07-14T10:30:00.000Z",
  "manualLastRefreshedAt": "2026-07-14T10:30:00.000Z"
}

설정 점수 새로고침#

POSThttps://app.inboxwarm.ai/api/v1/setup-score/{emailAccountId}/refresh

계정의 설정 점수를 동기식으로 다시 계산합니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}"
}

응답

{
  "emailAccountId": "12345",
  "emailAccountScore": 88,
  "dmarcScore": 15,
  "spfScore": 29,
  "dkimScore": 18,
  "mxRecordScore": 9,
  "ipBlacklistScore": 7,
  "domainBlacklistScore": 10,
  "updatedAt": "2026-07-15T09:00:00.000Z",
  "manualLastRefreshedAt": "2026-07-15T09:00:00.000Z"
}

DNS 상태 점검#

GEThttps://app.inboxwarm.ai/api/v1/dns-health/{emailAccountId}

계정의 발신 도메인에 대한 실시간 DNS 조회 — SPF, DKIM, DMARC, MX에 대한 통과/실패.

인증:쿼리 매개변수api_key

응답

{
  "emailAccountId": "12345",
  "spf": "pass",
  "dkim": "pass",
  "dmarc": "pass",
  "mx": "pass",
  "cachedAt": "2026-07-15T09:00:00.000Z"
}

전달성 점수 조회#

POSThttps://app.inboxwarm.ai/api/v1/deliverability-score/{emailAccountId}

지정한 기간에 대한 전체 및 ESP별 받은편지함 대 스팸 전달성 비율.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "startDate": "2026-06-01",
  "endDate": "2026-06-30",
  "esps": [
    "gmail",
    "outlook",
    "other"
  ]
}

응답

{
  "emailAccountId": "12345",
  "totalDeliverabilityRate": 88,
  "totalSentCount": 1500,
  "totalInboxCount": 1320,
  "totalSpamInboxCount": 180,
  "gmail": {
    "deliverabilityRate": 92,
    "sentCount": 500,
    "inboxCount": 460,
    "spamCount": 40
  },
  "outlook": {
    "deliverabilityRate": 92,
    "sentCount": 500,
    "inboxCount": 460,
    "spamCount": 40
  },
  "other": {
    "deliverabilityRate": 92,
    "sentCount": 500,
    "inboxCount": 460,
    "spamCount": 40
  }
}

리포트

대시보드#

GEThttps://app.inboxwarm.ai/api/v1/dashboard

연결된 모든 받은편지함에 걸친 계정 전체 워밍업 요약.

인증:쿼리 매개변수api_key

응답

{
  "totalAccounts": 42,
  "activeWarmups": 30,
  "pausedWarmups": 8,
  "accountsWithErrors": 2,
  "avgSetupScore": 78.5
}

단일 계정 리포트#

POSThttps://app.inboxwarm.ai/api/v1/reports

지정한 기간 동안 한 계정에 대한 일일 워밍업 리포트.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountId": "12345",
  "from": "2026-06-01",
  "to": "2026-06-30"
}

응답

{
  "emailAccountId": "12345",
  "from": "2026-06-01",
  "to": "2026-06-30",
  "days": [
    {
      "date": "2026-06-15",
      "sent": 25,
      "inbox": 20,
      "received": 22,
      "spam": 3,
      "bounced": 1,
      "undelivered": 0,
      "replied": 5,
      "deliverabilityRate": 92.5
    }
  ]
}

일괄 리포트#

POSThttps://app.inboxwarm.ai/api/v1/reports/bulk

지정한 기간 동안 최대 50개 계정에 대한 일일 워밍업 리포트.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "from": "2026-06-01",
  "to": "2026-06-30"
}

응답

{
  "reports": [
    {
      "emailAccountId": "12345",
      "from": "2026-06-01",
      "to": "2026-06-30",
      "days": [
        {
          "date": "2026-06-15",
          "sent": 25,
          "inbox": 20,
          "received": 22,
          "spam": 3,
          "bounced": 1,
          "undelivered": 0,
          "replied": 5,
          "deliverabilityRate": 92.5
        }
      ]
    }
  ]
}

리포트 내보내기#

POSThttps://app.inboxwarm.ai/api/v1/reports/export

워밍업 리포트의 비동기 CSV 내보내기를 시작하며, 준비되면 이메일로 전달됩니다.

인증:본문 필드apiKey

요청 본문

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "from": "2026-06-01",
  "to": "2026-06-30"
}

응답

{
  "jobId": "a1b2c3d4",
  "status": "queued"
}