Banger API 레퍼런스

Banger API로 워크스페이스에서 메일함을 다루고 이메일을 보내며 연락처를 관리하고 캠페인과 여정을 운영하세요.

워크스페이스에 연결하기

기본 URL: https://api.bangermail.com

OpenAPI 다운로드(이 페이지와 동일한 작업을 포함하는 OpenAPI 3.1 JSON). 코드 생성기, API 클라이언트, AI 에이전트에서 사용할 수 있어요.

Banger 앱에서 설정 → 개발자 → API 키 관리을 여세요. API 키 만들기을 선택하고 이름을 입력한 뒤 앱에 필요한 범위를 선택하고 키 만들기을 선택하세요. 키는 한 번만 표시되고 복구할 수 없으니 지금 복사하세요.

워크스페이스 키 형식은 bgr_<12-character prefix>_<secret>예요. 환경에서 키를 BANGER_API_KEY로 설정하고 다음과 같이 워크스페이스 요청을 인증하세요.

Authorization: Bearer <workspace API key>

아래 공개 가입 양식 경로는 인증이 필요 없어요. 각 작업에 Bearer 토큰이 필요한지 표시돼 있어요. 예제를 실행하기 전에 {workspaceId} 같은 경로 자리표시자를 리소스 ID로 바꾸세요.

요청과 응답

JSON 응답은 보통 결과를 { data }, 오류를 { error: { code, message } }로 감싸요. 일부 엔드포인트는 다른 형식이나 내용 없이 반환하니 작업의 응답 정의를 따르세요.

헤더 매개변수에 표시된 경우 Idempotency-Key을 보내고 같은 요청을 재시도할 때 같은 키를 사용하세요. 계약은 작업별로 다른 길이 제한을 정의하니 매개변수 표를 따르세요.

페이지 나누기는 엔드포인트마다 달라요. 공통 매개변수 cursor과 limit이 있으면 커서는 문자열(최대 1,024자)이고 한도 기본값은 50, 범위는 1–100이에요. 다른 엔드포인트는 next_cursor 같은 자체 매개변수와 응답 필드를 정의하니 해당 스키마를 따르세요.

예제는 계약의 예제, 기본값, 열거형, 스키마 유형으로 생성해요. 예시 값을 실제 데이터로 바꾸세요. 본문이나 응답 스키마가 없으면 아래에 표시돼 있어요.

이 기능은 Banger MCP 서버을 통해 AI 어시스턴트에서도 사용할 수 있어요.

제품

GET/v1/workspaces/{workspaceId}/products

워크스페이스 제품 목록 조회

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • namestring필수
  • slugstring필수
  • kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null필수
  • domainsarray필수
  • 각 항목string
  • descriptionstring필수
  • contextobject필수
  • 추가 속성모든 값
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • statusstring필수

    deleting: 사람이 삭제했으며 delete_after까지 복구할 수 있고 이후 영구 삭제돼요.

    enum: "active", "archived", "deleting"

  • delete_afterstring | null

    deleting 상태인 제품이 영구 삭제되는 시점.

    format: "date-time"

  • is_defaultboolean필수
  • route_readyboolean필수
  • setuparray필수
  • 각 항목object
  • keystring필수

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring | null필수

    enum: "system", "person", "agent", null

  • notestring필수
  • updated_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/products

제품 만들기

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    minLength: 1 · maxLength: 160

  • kindstring

    default: "product" · enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null

    maxLength: 2000

  • descriptionstring

    maxLength: 4000

  • contextobject
  • 추가 속성모든 값
  • domainsarray

    maxItems: 20

  • 각 항목string

    maxLength: 253

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • namestring필수
  • slugstring필수
  • kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null필수
  • domainsarray필수
  • 각 항목string
  • descriptionstring필수
  • contextobject필수
  • 추가 속성모든 값
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • statusstring필수

    deleting: 사람이 삭제했으며 delete_after까지 복구할 수 있고 이후 영구 삭제돼요.

    enum: "active", "archived", "deleting"

  • delete_afterstring | null

    deleting 상태인 제품이 영구 삭제되는 시점.

    format: "date-time"

  • is_defaultboolean필수
  • route_readyboolean필수
  • setuparray필수
  • 각 항목object
  • keystring필수

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring | null필수

    enum: "system", "person", "agent", null

  • notestring필수
  • updated_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "kind": "product",
  "website_url": "example",
  "description": "example",
  "context": {},
  "domains": [
    "example"
  ]
}'
GET/v1/workspaces/{workspaceId}/products/{productId}

제품 조회

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • namestring필수
  • slugstring필수
  • kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null필수
  • domainsarray필수
  • 각 항목string
  • descriptionstring필수
  • contextobject필수
  • 추가 속성모든 값
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • statusstring필수

    deleting: 사람이 삭제했으며 delete_after까지 복구할 수 있고 이후 영구 삭제돼요.

    enum: "active", "archived", "deleting"

  • delete_afterstring | null

    deleting 상태인 제품이 영구 삭제되는 시점.

    format: "date-time"

  • is_defaultboolean필수
  • route_readyboolean필수
  • setuparray필수
  • 각 항목object
  • keystring필수

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring | null필수

    enum: "system", "person", "agent", null

  • notestring필수
  • updated_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}/products/{productId}

제품 업데이트

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 160

  • kindstring

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null

    maxLength: 2000

  • descriptionstring

    maxLength: 4000

  • contextobject
  • 추가 속성모든 값
  • brandobject
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • statusstring

    enum: "active", "archived"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • namestring필수
  • slugstring필수
  • kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null필수
  • domainsarray필수
  • 각 항목string
  • descriptionstring필수
  • contextobject필수
  • 추가 속성모든 값
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • statusstring필수

    deleting: 사람이 삭제했으며 delete_after까지 복구할 수 있고 이후 영구 삭제돼요.

    enum: "active", "archived", "deleting"

  • delete_afterstring | null

    deleting 상태인 제품이 영구 삭제되는 시점.

    format: "date-time"

  • is_defaultboolean필수
  • route_readyboolean필수
  • setuparray필수
  • 각 항목object
  • keystring필수

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring | null필수

    enum: "system", "person", "agent", null

  • notestring필수
  • updated_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "kind": "product",
  "website_url": "example",
  "description": "example",
  "context": {},
  "brand": {
    "company_name": "example",
    "logo_url": "example",
    "wordmark_url": "example",
    "website_url": "example",
    "primary_color": "example",
    "accent_color": "example",
    "background_color": "example",
    "surface_color": "example",
    "text_color": "example",
    "muted_text_color": "example",
    "heading_font_family": "example",
    "body_font_family": "example",
    "tone": "example",
    "footer_address": "example",
    "email_style": "example"
  },
  "status": "active"
}'
DELETE/v1/workspaces/{workspaceId}/products/{productId}

삭제 미리보기를 검토한 후 제품 하나(앱의 프로젝트)를 삭제해요. 즉시 사용이 중지되고 발송도 멈추며 24시간 동안 복구할 수 있어요. 이후 Banger가 발송 도메인과 소유한 모든 행을 제거해요. 워크스페이스의 마지막 활성 제품은 삭제할 수 없어요. 워크스페이스 관리자와 로그인 세션이 필요하며 API 키와 OAuth 권한은 거부돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • confirm_namestring필수

    정확한 제품 이름.

    minLength: 1 · maxLength: 160

  • preview_tokenstring필수

    minLength: 64 · maxLength: 64

성공 응답 202

제품은 사용 중지 상태이며 먼저 복구하지 않으면 delete_after에 영구 삭제돼요. 멱등 재실행은 같은 결과를 반환해요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수

    enum: "deleting"

  • delete_afterstring필수

    제품이 영구 삭제되는 시점이며 그전까지 복구할 수 있어요.

    format: "date-time"

  • next_product_idstring필수

    현재 워크스페이스 기본 제품.

    format: "uuid"

  • replayedboolean

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "confirm_name": "example",
  "preview_token": "examplexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}'
GET/v1/workspaces/{workspaceId}/products/{productId}/deletion-preview

아무것도 삭제하지 않고 제품 하나와 소유한 모든 항목의 삭제를 미리 봐요. 로그인하거나 사용자가 승인한 OAuth를 사용하는 워크스페이스 관리자가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 삭제로 제거되고 중지되는 항목.

application/json

  • valueobject
  • dataobject필수
  • productobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • is_defaultboolean필수
  • next_default_product지정되지 않음필수

    기본 제품 삭제 시 워크스페이스 기본이 되는 제품.

  • oneOf 1null
  • oneOf 2object
  • idstring필수

    format: "uuid"

  • namestring필수
  • last_productboolean필수

    유일한 활성 제품은 삭제할 수 없어요.

  • mailboxesarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • addressstring필수
  • domainsarray필수

    복구 기간이 지나면 Banger가 제거하는 발송 도메인.

  • 각 항목object
  • idstring필수

    format: "uuid"

  • domainstring필수
  • journeysinteger필수
  • broadcastsinteger필수
  • signup_formsinteger필수
  • contactsinteger필수
  • api_keysinteger필수
  • webhooksinteger필수
  • pending_sendsinteger필수
  • impactarray필수
  • 각 항목string
  • preview_tokenstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}/deletion-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/products/{productId}/restore

삭제된 제품을 delete_after 전에 복구해요. 메일함, 여정, 가입 양식, 웹훅, 연동은 다시 켜지며 단체 발송은 일시 중지 상태로 유지돼요. 로그인하거나 사용자가 승인한 OAuth를 사용하는 워크스페이스 관리자가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품이 다시 활성화됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수

    enum: "active"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}/restore' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/products/{productId}/setup/{key}

제품 설정 항목 업데이트

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

key
path · 필수
  • valuestring

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

요청 본문 필수

application/json

  • valueobject
  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring

    default: "person" · enum: "system", "person", "agent"

  • notestring

    maxLength: 1000

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • keystring필수

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring | null필수

    enum: "system", "person", "agent", null

  • notestring필수
  • updated_atstring | null필수

    format: "date-time"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}/setup/{key}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "status": "todo",
  "completion_source": "person",
  "note": "example"
}'
POST/v1/workspaces/{workspaceId}/products/{productId}/domains

도메인을 제품에 연결

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

productId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • domainstring필수

    minLength: 3 · maxLength: 253

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • namestring필수
  • slugstring필수
  • kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • website_urlstring | null필수
  • domainsarray필수
  • 각 항목string
  • descriptionstring필수
  • contextobject필수
  • 추가 속성모든 값
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • statusstring필수

    deleting: 사람이 삭제했으며 delete_after까지 복구할 수 있고 이후 영구 삭제돼요.

    enum: "active", "archived", "deleting"

  • delete_afterstring | null

    deleting 상태인 제품이 영구 삭제되는 시점.

    format: "date-time"

  • is_defaultboolean필수
  • route_readyboolean필수
  • setuparray필수
  • 각 항목object
  • keystring필수

    enum: "context", "domain", "mailboxes", "journeys", "broadcasts", "compliance"

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • completion_sourcestring | null필수

    enum: "system", "person", "agent", null

  • notestring필수
  • updated_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/products/{productId}/domains' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example"
}'

메일함

GET/v1/workspaces/{workspaceId}/mailboxes

listMailboxes

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

작업자에게 보이는 메일함.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/mailboxes

워크스페이스 발송 도메인에 Banger 기본 업무 메일함을 만들어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • local_partstring필수

    minLength: 1 · maxLength: 64

  • display_namestring

    maxLength: 200

성공 응답 200

기본 메일함 생성의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain_id": "00000000-0000-4000-8000-000000000001",
  "local_part": "example",
  "display_name": "example"
}'
GET/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}/deletion-preview

메일함 영구 삭제와 종속 발송 흐름을 미리 봐요. 워크스페이스 관리자와 제품 범위가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailboxId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

아무것도 삭제하지 않고 정확한 메일함과 현재 삭제 영향을 확인해요.

application/json

  • valueobject
  • dataobject필수
  • mailboxobject필수
  • idstring필수

    format: "uuid"

  • addressstring필수
  • providerstring필수
  • domain_idstring | null필수

    format: "uuid"

  • provider_connection_idstring | null필수

    format: "uuid"

  • messagesinteger필수
  • draftsinteger필수
  • pending_sendsinteger필수
  • broadcastsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수
  • journeysarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수
  • signup_formsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수
  • impactarray필수
  • 각 항목string
  • preview_tokenstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}/deletion-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}

Banger 메일함 하나에서 보낸 메일에 수신자가 보는 보낸 사람 이름("Name <address>")을 설정해요. Gmail 메일함은 Gmail에서 설정한 이름을 유지해요. 워크스페이스 관리자가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailboxId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • display_namestring필수

    한 줄이에요. 비어 있으면 주소만 보내요.

    maxLength: 200

성공 응답 200

보낸 사람 이름이 포함된 메일함.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "display_name": "example"
}'
DELETE/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}

도메인과 다른 메일함을 유지하면서 메일함 하나를 영구 삭제해요. 워크스페이스 관리자와 제품 범위가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailboxId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • confirm_addressstring필수

    minLength: 3 · maxLength: 320

  • preview_tokenstring필수

    minLength: 64 · maxLength: 64

성공 응답 200

삭제됐거나 멱등 재실행이에요. 저장된 파일은 영구 정리 대기열에 추가돼요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • addressstring필수
  • deletedboolean필수
  • replayedboolean

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "confirm_address": "example",
  "preview_token": "examplexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}'
POST/v1/workspaces/{workspaceId}/mailboxes/starter

같은 제품의 호스팅 받은편지함과 워크스페이스 가입 수신자로 제한된 호스팅 메일함을 만들어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • create_newboolean

    최초 메일함을 재개하는 대신 추가 호스팅 메일함을 만들어요.

  • local_partstring

    @bangermail.com 앞의 이름이에요. 없으면 quiet-maple-harbor 같은 단어형 이름이 부여돼요.

    minLength: 3 · maxLength: 40

  • display_namestring

    maxLength: 200

성공 응답 200

시작 ID 생성의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes/starter' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "create_new": true,
  "local_part": "example",
  "display_name": "example"
}'
POST/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}/reactivate

resumeSending의 셀프서비스 재개 규칙에 따라 메일함 하나의 보낸 사람 평판에 따른 일시 중지를 해제해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailboxId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • acknowledge_recipient_complaintboolean필수

    const: true

  • reasonstring

    발송을 재개하는 이유로 감사 로그에 기록돼요.

    maxLength: 500

성공 응답 200

메일함이 재활성화됐거나 이전 요청 성공 후 이미 활성 상태예요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailboxes/{mailboxId}/reactivate' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "acknowledge_recipient_complaint": true,
  "reason": "example"
}'

임시저장

GET/v1/workspaces/{workspaceId}/drafts

listDrafts

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailbox_id
query
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring | null필수

    format: "uuid"

  • versioninteger필수
  • toarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • ccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • bccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • subjectstring필수
  • body_textstring필수
  • statusstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • attachmentsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • filenamestring필수
  • content_typestring필수
  • size_bytesinteger필수
  • sha256string
  • created_atstring

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts?mailbox_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/drafts

createDraft

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring

    format: "uuid"

  • toarray

    maxItems: 500

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • ccarray

    maxItems: 500

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • bccarray

    maxItems: 500

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    maxLength: 2000000

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring | null필수

    format: "uuid"

  • versioninteger필수
  • toarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • ccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • bccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • subjectstring필수
  • body_textstring필수
  • statusstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • attachmentsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • filenamestring필수
  • content_typestring필수
  • size_bytesinteger필수
  • sha256string
  • created_atstring

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "thread_id": "00000000-0000-4000-8000-000000000001",
  "to": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "cc": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "bcc": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "subject": "example",
  "body_text": "example",
  "body_html": "example"
}'
GET/v1/workspaces/{workspaceId}/drafts/{draftId}

getDraft

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 전달률 성능, 상태, 사고.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring | null필수

    format: "uuid"

  • versioninteger필수
  • toarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • ccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • bccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • subjectstring필수
  • body_textstring필수
  • statusstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • attachmentsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • filenamestring필수
  • content_typestring필수
  • size_bytesinteger필수
  • sha256string
  • created_atstring

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/drafts/{draftId}

updateDraft

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • value지정되지 않음
  • allOf 1object

    추가 속성 없음

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring

    format: "uuid"

  • toarray

    maxItems: 500

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • ccarray

    maxItems: 500

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • bccarray

    maxItems: 500

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    maxLength: 2000000

  • allOf 2object
  • versioninteger필수

    minimum: 1

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring | null필수

    format: "uuid"

  • versioninteger필수
  • toarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • ccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • bccarray필수
  • 각 항목object
  • emailstring필수
  • namestring
  • subjectstring필수
  • body_textstring필수
  • statusstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • attachmentsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • filenamestring필수
  • content_typestring필수
  • size_bytesinteger필수
  • sha256string
  • created_atstring

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "thread_id": "00000000-0000-4000-8000-000000000001",
  "to": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "cc": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "bcc": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "subject": "example",
  "body_text": "example",
  "body_html": "example",
  "version": 1
}'
DELETE/v1/workspaces/{workspaceId}/drafts/{draftId}

deleteDraft

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

임시저장과 참조 객체가 삭제 예약됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/drafts/{draftId}/send

sendDraft

호출자가 접근할 수 있는 메일함에서 임시저장을 보내요. 발송에 승인이 필요한 호출자는 대신 대기 중인 승인을 받으며 임시저장을 직접 보낼 수 있는 사람이 결정해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 202

발송이 대기열에 있거나 승인을 기다려요.

application/json

  • valueobject
  • data지정되지 않음필수
  • oneOf 1object
  • idstring필수

    format: "uuid"

  • typestring필수
  • statusstring필수

    enum: "accepted", "executing", "succeeded", "failed"

  • workspace_revisioninteger필수

    format: "int64"

  • created_atstring필수

    format: "date-time"

  • oneOf 2object

    추가 속성 없음

  • approvalobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string

    추가 중첩 생략

  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string

    추가 중첩 생략

  • checksarray필수
  • 각 항목string

    추가 중첩 생략

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}/send' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx'
POST/v1/workspaces/{workspaceId}/drafts/{draftId}/attachments

uploadDraftAttachment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Filename
header · 필수
  • valuestring

    minLength: 1 · maxLength: 500

요청 본문 필수

application/octet-stream

  • valuestring

    format: "binary" · maxLength: 26214400

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • filenamestring필수
  • content_typestring필수
  • size_bytesinteger필수
  • sha256string
  • created_atstring

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}/attachments' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Filename: example' \
  --header 'Content-Type: application/octet-stream' \
  --data-binary @request-body
DELETE/v1/workspaces/{workspaceId}/drafts/{draftId}/attachments/{attachmentId}

deleteDraftAttachment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

attachmentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

첨부 파일은 버전을 고려한 B2 삭제가 예약됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}/attachments/{attachmentId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/drafts/{draftId}/html

임시저장 HTML 본문 읽기

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

draftId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

임시저장 HTML.

text/html

  • valuestring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/drafts/{draftId}/html' \
  --header "Authorization: Bearer $BANGER_API_KEY"

발송

GET/v1/workspaces/{workspaceId}/send-intents

listSendIntents

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최근 기준 발송과 공급자 상태.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "accepted", "scheduled", "queued", "executing", "partially_succeeded", "succeeded", "failed", "canceled"

  • traffic_classstring필수

    enum: "mailbox", "product", "broadcast"

  • recipient_countinteger필수

    minimum: 1

  • provider_keystring필수
  • provider_statestring필수

    enum: "pending", "leased", "submitted", "accepted", "ambiguous", "reconciling", "succeeded", "failed", "canceled"

  • provider_message_idstring | null
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/send-intents?limit=50' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/send-intents/{sendIntentId}

getSendIntent

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendIntentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 비동기 발송 상태.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "accepted", "scheduled", "queued", "executing", "partially_succeeded", "succeeded", "failed", "canceled"

  • traffic_classstring필수

    enum: "mailbox", "product", "broadcast"

  • recipient_countinteger필수

    minimum: 1

  • provider_keystring필수
  • provider_statestring필수

    enum: "pending", "leased", "submitted", "accepted", "ambiguous", "reconciling", "succeeded", "failed", "canceled"

  • provider_message_idstring | null
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/send-intents/{sendIntentId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

트랜잭션 발송

GET/v1/workspaces/{workspaceId}/transactional-sends

listTransactionalSends

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

limit
query
  • valueinteger

    minimum: 1 · maximum: 500 · default: 200

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • command_idstring | null필수

    format: "uuid"

  • statusstring필수
  • command_statusstring | null필수
  • subjectstring
  • recipientsarray
  • 각 항목object
  • emailstring필수
  • namestring
  • recipient_countinteger필수
  • error_codestring | null
  • send_intent_idstring

    format: "uuid"

  • providerstring | null
  • route_kindstring | null
  • sourcestring
  • from_addressstring
  • recipient_statesobject
  • 추가 속성integer
  • provider_message_idstring | null
  • language지정되지 않음

    이메일이 발송된 언어이며 번역되지 않았으면 null이에요.

  • anyOf 1object

    사람이 이메일을 받은 언어예요. 번역된 관리형 콘텐츠 이메일에만 있어요.

  • localestring필수

    이메일 작성 언어의 BCP 47 태그.

  • requested_localestring

    다른 언어로 보낸 이전 발송에만 있으며 수신자가 받아야 했던 언어예요.

  • fallback_reasonstring

    enum: "translation_missing", "translation_pending", "translation_review_required", "translation_failed", "translation_timeout"

  • anyOf 2null
  • journeyobject | null

    이 이메일을 보낸 여정 단계와 등록이며 다른 발송은 null이에요.

  • journey_idstring필수

    format: "uuid"

  • step_idstring필수

    format: "uuid"

  • enrollment_idstring필수

    format: "uuid"

  • experimentobject | null

    이 이메일의 실험 변형이며 해당하지 않으면 null이에요.

  • experiment_idstring필수

    format: "uuid"

  • variant_keystring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • template_idstring | null

    format: "uuid"

  • template_versioninteger | null
  • workspace_revisioninteger | null
  • command_resultobject
  • 추가 속성모든 값
  • command_started_atstring | null

    format: "date-time"

  • command_completed_atstring | null

    format: "date-time"

  • body_textstring
  • body_htmlstring
  • reply_toarray
  • 각 항목object
  • emailstring필수
  • namestring
  • headersobject
  • 추가 속성string
  • tagsarray
  • 각 항목object
  • namestring필수
  • valuestring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/transactional-sends?limit=200' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/transactional-sends

createTransactionalSend

여정 발송마다 수신자는 한 명이에요. To는 모든 RecipientInput 형식("a@example.com", "Pat <a@example.com>", { email, name }, 또는 요소 하나인 목록)으로 수신자 한 명을 받으며 Cc와 Bcc는 비어 있어야 해요. reply_to 기본값은 여정 메일함이고 빈 목록도 기본값을 뜻해요. 제품 이메일에는 정확히 하나가 필요해요. 새 API 여정은 관리형 원본 콘텐츠가 기본이고 기존 코드 여정은 전체 콘텐츠 발송을 유지해요. 거부(4xx)는 수신자에 대해 동결된 항목을 남기지 않으므로 새 멱등성 키로 수정한 호출은 발송돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject
  • mailbox_idstring필수

    format: "uuid"

  • to지정되지 않음필수

    to, cc, bcc, reply_to 수신자: 주소("a@example.com" 또는 "Pat <a@example.com>"), { email, name } 객체, 또는 둘을 섞은 목록이에요. Banger는 이메일을 소문자로 바꾼 { email, name } 객체로 저장해요. 멱등성 해시는 발송된 본문을 포함하므로 같은 형식으로 재시도하세요.

  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • oneOf 3array

    maxItems: 500

  • 각 항목지정되지 않음
  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • ccarray

    maxItems: 0

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • bccarray

    maxItems: 0

  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • subjectstring

    maxLength: 10000

  • expires_atstring

    이 시점 이후 지연된 여정 발송을 폐기하며 원래 요청부터 최대 7일이에요.

    format: "date-time"

  • expires_after_secondsinteger

    minimum: 1 · maximum: 604800

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    maxLength: 2000000

  • reply_to지정되지 않음

    to, cc, bcc, reply_to 수신자: 주소("a@example.com" 또는 "Pat <a@example.com>"), { email, name } 객체, 또는 둘을 섞은 목록이에요. Banger는 이메일을 소문자로 바꾼 { email, name } 객체로 저장해요. 멱등성 해시는 발송된 본문을 포함하므로 같은 형식으로 재시도하세요.

  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • oneOf 3array

    maxItems: 500

  • 각 항목지정되지 않음
  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • headersobject
  • 추가 속성string

    maxLength: 5000

  • tagsarray

    maxItems: 49

  • 각 항목object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 256

  • valuestring필수

    minLength: 1 · maxLength: 256

성공 응답 202

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • action_kindstring필수

    enum: "transactional.send"

  • idstring

    format: "uuid"

  • send_intent_idstring

    format: "uuid"

  • provider_attempt_idstring

    format: "uuid"

  • statusstring필수

    전달에 따른 sent/queued 상태 또는 동결된 요청의 상태: deferred(정책 예약 또는 번역 대기), processing(발송 중), discarded.

  • replayedboolean
  • journey지정되지 않음필수
  • anyOf 1object
  • journey_idstring필수

    format: "uuid"

  • enrollment_idstring필수

    format: "uuid"

  • step_idstring필수

    format: "uuid"

  • step_positioninteger필수
  • originstring

    enum: "journey"

  • journey_identitystring
  • anyOf 2null
  • ignored_variablesarray필수
  • 각 항목string
  • scheduled_atstring

    format: "date-time"

  • reasonstring
  • communication_reservation_idstring

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/transactional-sends' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "to": "example",
  "cc": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "bcc": [
    {
      "name": "example",
      "email": "person@example.com"
    }
  ],
  "subject": "example",
  "expires_at": "2026-01-01T00:00:00Z",
  "expires_after_seconds": 1,
  "body_text": "example",
  "body_html": "example",
  "reply_to": "example",
  "headers": {},
  "tags": [
    {
      "name": "example",
      "value": "example"
    }
  ]
}'
GET/v1/workspaces/{workspaceId}/transactional-sends/{transactionalSendId}

getTransactionalSend

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

transactionalSendId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • command_idstring | null필수

    format: "uuid"

  • statusstring필수
  • command_statusstring | null필수
  • subjectstring
  • recipientsarray
  • 각 항목object
  • emailstring필수
  • namestring
  • recipient_countinteger필수
  • error_codestring | null
  • send_intent_idstring

    format: "uuid"

  • providerstring | null
  • route_kindstring | null
  • sourcestring
  • from_addressstring
  • recipient_statesobject
  • 추가 속성integer
  • provider_message_idstring | null
  • language지정되지 않음

    이메일이 발송된 언어이며 번역되지 않았으면 null이에요.

  • anyOf 1object

    사람이 이메일을 받은 언어예요. 번역된 관리형 콘텐츠 이메일에만 있어요.

  • localestring필수

    이메일 작성 언어의 BCP 47 태그.

  • requested_localestring

    다른 언어로 보낸 이전 발송에만 있으며 수신자가 받아야 했던 언어예요.

  • fallback_reasonstring

    enum: "translation_missing", "translation_pending", "translation_review_required", "translation_failed", "translation_timeout"

  • anyOf 2null
  • journeyobject | null

    이 이메일을 보낸 여정 단계와 등록이며 다른 발송은 null이에요.

  • journey_idstring필수

    format: "uuid"

  • step_idstring필수

    format: "uuid"

  • enrollment_idstring필수

    format: "uuid"

  • experimentobject | null

    이 이메일의 실험 변형이며 해당하지 않으면 null이에요.

  • experiment_idstring필수

    format: "uuid"

  • variant_keystring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • template_idstring | null

    format: "uuid"

  • template_versioninteger | null
  • workspace_revisioninteger | null
  • command_resultobject
  • 추가 속성모든 값
  • command_started_atstring | null

    format: "date-time"

  • command_completed_atstring | null

    format: "date-time"

  • body_textstring
  • body_htmlstring
  • reply_toarray
  • 각 항목object
  • emailstring필수
  • namestring
  • headersobject
  • 추가 속성string
  • tagsarray
  • 각 항목object
  • namestring필수
  • valuestring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/transactional-sends/{transactionalSendId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/transactional-sends/{transactionalSendId}/timeline

listTransactionalSendTimeline

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

transactionalSendId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

접수, 공급자 시도, 수신자 이벤트의 순서별 타임라인.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • occurred_atstring필수

    format: "date-time"

  • event_typestring필수
  • labelstring필수
  • providerstring | null
  • recipient_domainstring | null
  • error_codestring | null

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/transactional-sends/{transactionalSendId}/timeline' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/transactional-sends/{transactionalSendId}/retry

retryTransactionalSend

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

transactionalSendId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 202

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • action_kindstring필수

    enum: "transactional.send"

  • idstring필수

    format: "uuid"

  • send_intent_idstring필수

    format: "uuid"

  • provider_attempt_idstring필수

    format: "uuid"

  • statusstring필수
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/transactional-sends/{transactionalSendId}/retry' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx'

스레드

GET/v1/workspaces/{workspaceId}/threads

listThreads

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

mailbox_id
query
  • valuestring

    format: "uuid"

label_id
query

이 메일함 라벨이 있는 스레드만 반환해요.

  • valuestring

    format: "uuid"

view
query
  • valuestring

    default: "inbox" · enum: "inbox", "sent", "drafts", "archive", "trash", "spam", "all"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

키셋으로 페이지를 나눈 워크스페이스 스레드.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • subjectstring필수
  • snippetstring필수
  • last_message_atstring필수

    format: "date-time"

  • message_countinteger필수
  • unread_countinteger필수
  • is_archivedboolean필수
  • is_trashboolean필수
  • is_spamboolean필수
  • is_starredboolean필수
  • is_sentboolean필수
  • has_attachmentsboolean필수
  • labelsarray필수
  • 각 항목string
  • participantsarray
  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/threads?cursor=example&limit=50&mailbox_id=00000000-0000-4000-8000-000000000001&label_id=00000000-0000-4000-8000-000000000001&view=inbox' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/threads/{threadId}

getThread

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

threadId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

스레드와 정렬된 메시지.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • subjectstring필수
  • snippetstring필수
  • last_message_atstring필수

    format: "date-time"

  • message_countinteger필수
  • unread_countinteger필수
  • is_archivedboolean필수
  • is_trashboolean필수
  • is_spamboolean필수
  • is_starredboolean필수
  • is_sentboolean필수
  • has_attachmentsboolean필수
  • labelsarray필수
  • 각 항목string
  • participantsarray
  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • allOf 2object
  • messagesarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring필수

    format: "uuid"

  • sent_atstring필수

    format: "date-time"

  • received_atstring

    format: "date-time"

  • envelope_recipientsarray

    수신 전용 별칭 라우팅 전에 SMTP 에지에서 대소문자를 정규화한 원래 SMTP 봉투 수신자예요. 이전 메시지나 SMTP 외 소스에서는 비어 있으며 표시되는 To/Cc 헤더와는 독립적이에요.

  • 각 항목string

    format: "email"

    추가 중첩 생략

  • fromobject필수
  • namestring

    추가 중첩 생략

  • emailstring필수

    format: "email"

    추가 중첩 생략

  • toarray필수
  • 각 항목object

    추가 중첩 생략

  • ccarray
  • 각 항목object

    추가 중첩 생략

  • reply_toarray
  • 각 항목object

    추가 중첩 생략

  • is_sentboolean

    별칭을 포함해 메일함에서 보낸 메시지인지 여부.

  • body_textstring
  • body_html_urlstring

    format: "uri"

  • reply_originobject
  • send_intent_idstring필수

    format: "uuid"

    추가 중첩 생략

  • sourcestring필수

    enum: "gateway", "transactional", "marketing", "mailbox", "agent"

    추가 중첩 생략

  • source_idstring

    format: "uuid"

    추가 중첩 생략

  • traffic_classstring필수

    enum: "transactional", "marketing", "mailbox"

    추가 중첩 생략

  • kindstring필수

    enum: "campaign", "sequence", "transactional", "mailbox", "agent"

    추가 중첩 생략

  • namestring

    추가 중첩 생략

  • has_attachmentsboolean필수
  • attachmentsarray
  • 각 항목object

    추가 중첩 생략

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/threads/{threadId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

메시지

GET/v1/workspaces/{workspaceId}/messages/{messageId}/html

getMessageHtml

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

messageId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

인증되고 샌드박스 제약을 받는 HTML 메시지 본문.

text/html

  • valuestring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/messages/{messageId}/html' \
  --header "Authorization: Bearer $BANGER_API_KEY"

첨부 파일

GET/v1/workspaces/{workspaceId}/attachments/{attachmentId}/content

downloadAttachment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

attachmentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

인증된 첨부 파일 스트림.

application/octet-stream

  • valuestring

    format: "binary"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/attachments/{attachmentId}/content' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/search

searchMail

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

q
query · 필수
  • valuestring

    minLength: 1 · maxLength: 512

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

mailbox_id
query
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 전체 검색 결과.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • subjectstring필수
  • snippetstring필수
  • last_message_atstring필수

    format: "date-time"

  • message_countinteger필수
  • unread_countinteger필수
  • is_archivedboolean필수
  • is_trashboolean필수
  • is_spamboolean필수
  • is_starredboolean필수
  • is_sentboolean필수
  • has_attachmentsboolean필수
  • labelsarray필수
  • 각 항목string
  • participantsarray
  • 각 항목object
  • namestring
  • emailstring필수

    format: "email"

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/search?q=example&cursor=example&limit=50&mailbox_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"

연락처

GET/v1/workspaces/{workspaceId}/contacts

listContacts

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

q
query
  • valuestring

    maxLength: 512

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수

    format: "email"

  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts?cursor=example&limit=50&q=example' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/contacts

upsertContact

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • emailstring필수

    format: "email"

  • display_namestring

    maxLength: 1000

  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • consent_confirmedboolean

    주소를 새로 구독 등록할 때 필수예요.

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • emailstring필수

    format: "email"

  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "email": "person@example.com",
  "display_name": "example",
  "status": "subscribed",
  "attributes": {},
  "consent_confirmed": true
}'
GET/v1/workspaces/{workspaceId}/contacts/{contactId}

getContact

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

contactId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • emailstring필수

    format: "email"

  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • suppressedboolean필수
  • suppression_reasonstring | null필수
  • sourcesarray필수
  • 각 항목object
  • kindstring필수
  • referencestring필수
  • connection_idstring | null필수

    format: "uuid"

  • metadataobject필수
  • 추가 속성모든 값
  • first_seen_atstring필수

    format: "date-time"

  • last_seen_atstring필수

    format: "date-time"

  • listsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • subscription_statusstring필수
  • consent_evidencearray필수
  • 각 항목object
  • kindstring필수
  • referencestring필수
  • connection_idstring | null필수

    format: "uuid"

  • metadataobject필수
  • 추가 속성모든 값
  • first_seen_atstring필수

    format: "date-time"

  • last_seen_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/{contactId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
DELETE/v1/workspaces/{workspaceId}/contacts/{contactId}

deleteContact

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

contactId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

연락처가 삭제됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/{contactId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/contacts/imports

listContactImports

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring

    format: "uuid"

  • filenamestring
  • list_idstring | null

    format: "uuid"

  • list_namestring | null
  • statusstring
  • total_rowsinteger
  • imported_rowsinteger
  • invalid_rowsinteger
  • error_summaryarray
  • 각 항목string
  • consent_confirmedboolean
  • consent_confirmed_atstring | null

    format: "date-time"

  • processed_rowsinteger
  • attempt_countinteger
  • last_error_codestring | null
  • created_atstring

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/imports' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/contacts/imports

importContacts

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • filenamestring필수

    minLength: 1 · maxLength: 500

  • list_idstring

    format: "uuid"

  • consent_confirmedboolean

    가져온 행 중 구독 상태인 행이 있으면 필수예요.

  • rowsarray필수

    minItems: 1 · maxItems: 5000

  • 각 항목object
  • emailstring필수

    format: "email"

  • display_namestring

    maxLength: 1000

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "queued"

  • total_rowsinteger필수
  • imported_rowsinteger필수
  • invalid_rowsinteger필수
  • list_idstring | null필수

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/imports' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "filename": "example",
  "list_id": "00000000-0000-4000-8000-000000000001",
  "consent_confirmed": true,
  "rows": [
    {
      "email": "person@example.com",
      "display_name": "example",
      "status": "subscribed",
      "attributes": {}
    }
  ]
}'
PATCH/v1/workspaces/{workspaceId}/contacts/{contactId}/attributes

구독이나 동의를 바꾸지 않고 유형이 있는 속성 병합

contacts:write와 contacts:read가 필요해요. 기존 연락처만 업데이트해요. 생략한 속성은 유지하고 명시적 false는 저장하며 null은 필드를 제거해요. 검증된 원본 사실을 제공하세요. 없는 데이터는 false가 아니에요. 구독, 발송 억제, ID, 소스 이력은 바뀌지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contactId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • attributesobject필수
  • 추가 속성모든 값

성공 응답 200

현재 연락처 다시 읽기이며 이 변경이 이미 적용됐으면 replayed가 true예요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • attributesobject필수
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • replayedboolean필수
  • 추가 속성모든 값

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/{contactId}/attributes' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "attributes": {}
}'
POST/v1/workspaces/{workspaceId}/contacts/upsert

upsertProductContact

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • emailstring필수

    format: "email" · maxLength: 320

  • display_namestring

    minLength: 0 · maxLength: 1000

  • attributesobject
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • consent_evidenceobject

    추가 속성 없음

  • sourcestring

    minLength: 1 · maxLength: 2000

  • referencestring

    minLength: 1 · maxLength: 2000

  • observed_atstring

    format: "date-time"

  • statementstring

    minLength: 1 · maxLength: 2000

  • consent_confirmedboolean

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • emailstring필수

    format: "email"

  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • suppressedboolean필수
  • suppression_reasonstring | null필수
  • sourcesarray필수
  • 각 항목object
  • kindstring필수
  • referencestring필수
  • connection_idstring | null필수

    format: "uuid"

  • metadataobject필수
  • 추가 속성모든 값
  • first_seen_atstring필수

    format: "date-time"

  • last_seen_atstring필수

    format: "date-time"

  • listsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • subscription_statusstring필수
  • consent_evidencearray필수
  • 각 항목object
  • kindstring필수
  • referencestring필수
  • connection_idstring | null필수

    format: "uuid"

  • metadataobject필수
  • 추가 속성모든 값
  • first_seen_atstring필수

    format: "date-time"

  • last_seen_atstring필수

    format: "date-time"

  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/upsert' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "email": "person@example.com",
  "display_name": "example",
  "attributes": {},
  "status": "subscribed",
  "consent_evidence": {
    "source": "example",
    "reference": "example",
    "observed_at": "2026-01-01T00:00:00Z",
    "statement": "example"
  },
  "consent_confirmed": true
}'
POST/v1/workspaces/{workspaceId}/contacts/import-validation

validateProductContactImport

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • rowsarray필수

    minItems: 1 · maxItems: 5000

  • 각 항목object

    추가 속성 없음

  • emailstring필수

    format: "email" · maxLength: 320

  • display_namestring

    minLength: 0 · maxLength: 1000

  • attributesobject
  • 추가 속성모든 값
  • statusstring필수

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • consent_evidenceobject

    추가 속성 없음

  • sourcestring

    minLength: 1 · maxLength: 2000

  • referencestring

    minLength: 1 · maxLength: 2000

  • observed_atstring

    format: "date-time"

  • statementstring

    minLength: 1 · maxLength: 2000

  • consent_confirmedboolean

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataobject필수
  • validboolean필수
  • total_rowsinteger필수
  • valid_rowsinteger필수
  • errorsarray필수
  • 각 항목object
  • rowinteger필수
  • codestring필수
  • messagestring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/import-validation' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "rows": [
    {
      "email": "person@example.com",
      "display_name": "example",
      "attributes": {},
      "status": "subscribed",
      "consent_evidence": {
        "source": "example",
        "reference": "example",
        "observed_at": "2026-01-01T00:00:00Z",
        "statement": "example"
      }
    }
  ],
  "consent_confirmed": true
}'
GET/v1/workspaces/{workspaceId}/contacts/imports/{importId}

getProductContactImport

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

importId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataobject필수
  • idstring

    format: "uuid"

  • filenamestring
  • list_idstring | null

    format: "uuid"

  • list_namestring | null
  • statusstring
  • total_rowsinteger
  • imported_rowsinteger
  • invalid_rowsinteger
  • error_summaryarray
  • 각 항목string
  • consent_confirmedboolean
  • consent_confirmed_atstring | null

    format: "date-time"

  • processed_rowsinteger
  • attempt_countinteger
  • last_error_codestring | null
  • created_atstring

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/imports/{importId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/contacts/fields

저장된 연락처 속성 키 목록 조회

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목string

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/fields' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/contacts/import-mapping

연락처 가져오기 열 매핑 제안

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • filenamestring

    maxLength: 500

  • columnsarray필수

    minItems: 1 · maxItems: 100

  • 각 항목object
  • namestring필수

    minLength: 1 · maxLength: 200

  • samplesarray

    maxItems: 8

  • 각 항목string

    maxLength: 120

  • filledinteger

    minimum: 0

  • rowsinteger

    minimum: 0

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • mappingobject필수
  • columnsarray필수
  • 각 항목object
  • columnstring필수
  • targetstring필수

    enum: "email", "display_name", "first_name", "last_name", "locale", "time_zone", "status", "unsubscribed_flag", "subscribed_flag", "field", "ignore"

  • field_keystring
  • field_typestring

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • confidencenumber필수
  • sourcestring필수

    enum: "saved", "ai", "rules", "person"

  • alternativesarray
  • 각 항목object

    추가 중첩 생략

  • locale_valuesobject필수
  • 추가 속성string | null
  • reviewobject필수
  • neededboolean필수
  • reasonsarray필수
  • 각 항목string
  • columnsarray필수
  • 각 항목string
  • sourcestring필수

    enum: "saved", "ai", "rules"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/import-mapping' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "filename": "example",
  "columns": [
    {
      "name": "example",
      "samples": [
        "example"
      ],
      "filled": 0,
      "rows": 0
    }
  ]
}'

연락처 목록

GET/v1/workspaces/{workspaceId}/contact-lists

listContactLists

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • member_countinteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/contact-lists

createContactList

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • member_countinteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "description": "example"
}'
GET/v1/workspaces/{workspaceId}/contact-lists/{listId}

getContactList

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • membersarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • statusstring필수
  • attributesobject필수
  • 추가 속성모든 값
  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists/{listId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
DELETE/v1/workspaces/{workspaceId}/contact-lists/{listId}

deleteContactList

이 목록과 이 목록에만 속한 연락처를 삭제해요. 다른 목록에도 속한 연락처는 유지돼요. contacts:write가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

삭제됐거나 삭제할 전용 연락처 수와 유지된 공유 연락처 수.

application/json

  • valueobject
  • dataobject필수
  • deleted_contactsinteger필수

    minimum: 0

  • kept_contactsinteger필수

    minimum: 0

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists/{listId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/contact-lists/{listId}/deletion-preview

previewContactListDeletion

목록 삭제 수를 미리 봐요. 삭제 시 소속을 다시 확인해요. contacts:read가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

삭제됐거나 삭제할 전용 연락처 수와 유지된 공유 연락처 수.

application/json

  • valueobject
  • dataobject필수
  • deleted_contactsinteger필수

    minimum: 0

  • kept_contactsinteger필수

    minimum: 0

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists/{listId}/deletion-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/contact-lists/{listId}/members

addContactListMembers

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • contact_idsarray필수

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 204

목록 소속이 업데이트됐어요.

응답 본문 없음.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists/{listId}/members' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "contact_ids": [
    "00000000-0000-4000-8000-000000000001"
  ]
}'
DELETE/v1/workspaces/{workspaceId}/contact-lists/{listId}/members

removeContactListMembers

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • contact_idsarray필수

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 204

목록 소속이 업데이트됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-lists/{listId}/members' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "contact_ids": [
    "00000000-0000-4000-8000-000000000001"
  ]
}'

연락처 필드

GET/v1/workspaces/{workspaceId}/contact-fields

제품 연락처 필드(기본, 선언, 발견)와 유형, 선택지, 소스, 값이 있는 연락처 수, 지원하는 세그먼트 연산자예요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    maxLength: 80

  • descriptionstring필수

    maxLength: 500

  • typestring필수

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • optionsarray필수

    maxItems: 50

  • 각 항목string
  • originstring필수

    enum: "system", "person", "agent", "form", "import", "api", "event", "discovered"

  • statusstring필수

    enum: "active", "hidden"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • operatorsarray
  • 각 항목string
  • contacts_with_valueinteger

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-fields' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/contact-fields

연락처 필드 선언: 라벨, 유형(text, number, boolean, date, choice, choices), 선택적 key, 선택지, 설명.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • descriptionstring

    maxLength: 500

  • typestring

    default: "text" · enum: "text", "number", "boolean", "date", "choice", "choices"

  • optionsarray

    maxItems: 50

  • 각 항목string

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • keystring필수

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    maxLength: 80

  • descriptionstring필수

    maxLength: 500

  • typestring필수

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • optionsarray필수

    maxItems: 50

  • 각 항목string
  • originstring필수

    enum: "system", "person", "agent", "form", "import", "api", "event", "discovered"

  • statusstring필수

    enum: "active", "hidden"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • operatorsarray
  • 각 항목string
  • contacts_with_valueinteger

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-fields' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "key": "example",
  "label": "example",
  "description": "example",
  "type": "text",
  "options": [
    "example"
  ]
}'
PATCH/v1/workspaces/{workspaceId}/contact-fields/{key}

필드 이름, 설명, 유형(저장된 값을 변환하거나 맞지 않는 예제와 409 반환), 선택지를 변경하거나 숨겨요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

key
path · 필수
  • valuestring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

요청 본문 필수

application/json

  • valueobject
  • labelstring

    maxLength: 80

  • descriptionstring

    maxLength: 500

  • typestring

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • optionsarray

    maxItems: 50

  • 각 항목string
  • statusstring

    enum: "active", "hidden"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • keystring필수

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    maxLength: 80

  • descriptionstring필수

    maxLength: 500

  • typestring필수

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • optionsarray필수

    maxItems: 50

  • 각 항목string
  • originstring필수

    enum: "system", "person", "agent", "form", "import", "api", "event", "discovered"

  • statusstring필수

    enum: "active", "hidden"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • operatorsarray
  • 각 항목string
  • contacts_with_valueinteger

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/contact-fields/{key}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "label": "example",
  "description": "example",
  "type": "text",
  "options": [
    "example"
  ],
  "status": "active"
}'

세그먼트

GET/v1/workspaces/{workspaceId}/segments

listSegments

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • filterobject필수

    조건은 선언된 연락처 필드를 참조하고 유형이 지원하는 연산자를 사용해야 해요. set과 not_set은 value를 생략하고 within_days는 1–3650일을 사용해요.

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • conditionsarray

    maxItems: 20

  • 각 항목object
  • fieldstring필수

    추가 중첩 생략

  • opstring필수

    enum: "is", "is_not", "contains", "set", "not_set", "gt", "gte", "lt", "lte", "within_days", "any_of", "includes"

    추가 중첩 생략

  • value지정되지 않음

    추가 중첩 생략

  • matchstring

    enum: "all", "any"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/segments' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/segments

createSegment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    minLength: 1 · maxLength: 200

  • filterobject

    조건은 선언된 연락처 필드를 참조하고 유형이 지원하는 연산자를 사용해야 해요. set과 not_set은 value를 생략하고 within_days는 1–3650일을 사용해요.

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • conditionsarray

    maxItems: 20

  • 각 항목object
  • fieldstring필수
  • opstring필수

    enum: "is", "is_not", "contains", "set", "not_set", "gt", "gte", "lt", "lte", "within_days", "any_of", "includes"

  • value지정되지 않음
  • anyOf 1string
  • anyOf 2number
  • anyOf 3boolean
  • anyOf 4array
  • 각 항목string

    추가 중첩 생략

  • matchstring

    enum: "all", "any"

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • filterobject필수

    조건은 선언된 연락처 필드를 참조하고 유형이 지원하는 연산자를 사용해야 해요. set과 not_set은 value를 생략하고 within_days는 1–3650일을 사용해요.

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • conditionsarray

    maxItems: 20

  • 각 항목object
  • fieldstring필수
  • opstring필수

    enum: "is", "is_not", "contains", "set", "not_set", "gt", "gte", "lt", "lte", "within_days", "any_of", "includes"

  • value지정되지 않음
  • anyOf 1string

    추가 중첩 생략

  • anyOf 2number

    추가 중첩 생략

  • anyOf 3boolean

    추가 중첩 생략

  • anyOf 4array

    추가 중첩 생략

  • matchstring

    enum: "all", "any"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/segments' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "filter": {
    "status": "subscribed",
    "attributes": {},
    "conditions": [
      {
        "field": "example",
        "op": "is",
        "value": "example"
      }
    ],
    "match": "all"
  }
}'
GET/v1/workspaces/{workspaceId}/segments/{segmentId}/preview

previewSegment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

segmentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • filterobject필수

    조건은 선언된 연락처 필드를 참조하고 유형이 지원하는 연산자를 사용해야 해요. set과 not_set은 value를 생략하고 within_days는 1–3650일을 사용해요.

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • conditionsarray

    maxItems: 20

  • 각 항목object
  • fieldstring필수

    추가 중첩 생략

  • opstring필수

    enum: "is", "is_not", "contains", "set", "not_set", "gt", "gte", "lt", "lte", "within_days", "any_of", "includes"

    추가 중첩 생략

  • value지정되지 않음

    추가 중첩 생략

  • matchstring

    enum: "all", "any"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/segments/{segmentId}/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY"
DELETE/v1/workspaces/{workspaceId}/segments/{segmentId}

세그먼트 삭제

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

segmentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • deletedboolean필수

    const: true

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/segments/{segmentId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

대상

POST/v1/workspaces/{workspaceId}/audience/lists

createProductContactList

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    minLength: 0 · maxLength: 2000

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • membersarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • statusstring필수
  • attributesobject필수
  • 추가 속성모든 값
  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/lists' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "description": "example"
}'
GET/v1/workspaces/{workspaceId}/audience/lists/{listId}

getProductContactList

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • membersarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • statusstring필수
  • attributesobject필수
  • 추가 속성모든 값
  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/lists/{listId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/audience/lists/{listId}/members

addProductContactListMembers

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • contact_idsarray필수

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • membersarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • statusstring필수
  • attributesobject필수
  • 추가 속성모든 값
  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/lists/{listId}/members' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "contact_ids": [
    "00000000-0000-4000-8000-000000000001"
  ]
}'
DELETE/v1/workspaces/{workspaceId}/audience/lists/{listId}/members

removeProductContactListMembers

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

listId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • contact_idsarray필수

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • descriptionstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • membersarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • statusstring필수
  • attributesobject필수
  • 추가 속성모든 값
  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/lists/{listId}/members' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "contact_ids": [
    "00000000-0000-4000-8000-000000000001"
  ]
}'
POST/v1/workspaces/{workspaceId}/audience/segments

createProductSegment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • filterobject필수

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • filterobject필수

    조건은 선언된 연락처 필드를 참조하고 유형이 지원하는 연산자를 사용해야 해요. set과 not_set은 value를 생략하고 within_days는 1–3650일을 사용해요.

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • conditionsarray

    maxItems: 20

  • 각 항목object

    추가 중첩 생략

  • matchstring

    enum: "all", "any"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • emailstring필수

    추가 중첩 생략

  • display_namestring | null필수

    추가 중첩 생략

  • attributesobject필수

    추가 중첩 생략

  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수
  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/segments' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "filter": {
    "status": "subscribed",
    "attributes": {}
  }
}'
GET/v1/workspaces/{workspaceId}/audience/segments/{segmentId}/preview

previewProductSegment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

segmentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • filterobject필수

    조건은 선언된 연락처 필드를 참조하고 유형이 지원하는 연산자를 사용해야 해요. set과 not_set은 value를 생략하고 within_days는 1–3650일을 사용해요.

    추가 속성 없음

  • statusstring

    enum: "subscribed", "unsubscribed", "bounced", "complained"

  • attributesobject
  • 추가 속성모든 값
  • conditionsarray

    maxItems: 20

  • 각 항목object
  • fieldstring필수

    추가 중첩 생략

  • opstring필수

    enum: "is", "is_not", "contains", "set", "not_set", "gt", "gte", "lt", "lte", "within_days", "any_of", "includes"

    추가 중첩 생략

  • value지정되지 않음

    추가 중첩 생략

  • matchstring

    enum: "all", "any"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/segments/{segmentId}/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/audience/approvals

listProductApprovalEvidence

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

status
query
  • valuestring

    enum: "pending", "approved", "rejected", "cancelled", "expired", "undecided"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string

    추가 중첩 생략

  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string

    추가 중첩 생략

  • checksarray필수
  • 각 항목string

    추가 중첩 생략

  • allOf 2object
  • approval_idstring필수

    format: "uuid"

  • broadcast_idstring | null필수

    format: "uuid"

  • import_idstring | null필수

    format: "uuid"

  • blockersarray필수
  • 각 항목object
  • codestring필수

    추가 중첩 생략

  • messagestring필수

    추가 중첩 생략

  • executionsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • resultobject필수

    추가 중첩 생략

  • error_codestring | null필수

    추가 중첩 생략

  • execution_job_idsarray필수
  • 각 항목string

    format: "uuid"

  • execution_statusstring필수

    enum: "completed", "failed", "queued", "awaiting_review", "not_queued"

  • human_review_urlstring | null필수
  • human_review_instructionstring | null필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/approvals?status=pending' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/audience/approvals/{approvalId}

getProductApprovalEvidence

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string
  • allOf 2object
  • approval_idstring필수

    format: "uuid"

  • broadcast_idstring | null필수

    format: "uuid"

  • import_idstring | null필수

    format: "uuid"

  • blockersarray필수
  • 각 항목object
  • codestring필수
  • messagestring필수
  • executionsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • statusstring필수
  • resultobject필수
  • 추가 속성모든 값
  • error_codestring | null필수
  • execution_job_idsarray필수
  • 각 항목string

    format: "uuid"

  • execution_statusstring필수

    enum: "completed", "failed", "queued", "awaiting_review", "not_queued"

  • human_review_urlstring | null필수
  • human_review_instructionstring | null필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/audience/approvals/{approvalId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'

가입 양식

GET/v1/workspaces/{workspaceId}/signup-forms

제품 가입 양식과 삽입 코드, 호스팅 링크, 조회 수, 가입 수, 확인 수, 구독자 수, 전환율이에요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

include_archived
query
  • valueboolean

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • public_idstring필수

    pattern: "^f_[a-z0-9]{16}$"

  • namestring필수
  • kindstring필수

    enum: "inline", "popup", "bar", "slide_in", "page"

  • list_idstring필수

    format: "uuid"

  • list_namestring필수
  • mailbox_idstring | null필수

    format: "uuid"

  • double_opt_inboolean필수
  • configobject필수

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

    추가 중첩 생략

  • labelstring필수

    minLength: 1 · maxLength: 80

    추가 중첩 생략

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

    추가 중첩 생략

  • requiredboolean

    default: false

    추가 중첩 생략

  • placeholderstring

    maxLength: 80

    추가 중첩 생략

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

    추가 중첩 생략

  • statusstring필수

    enum: "active", "paused", "archived"

  • viewsinteger필수
  • submissionsinteger필수
  • confirmationsinteger필수
  • subscribersinteger필수
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • hosted_urlstring필수
  • embed_codestring필수
  • embed_slotstring필수
  • open_buttonstring필수
  • conversion_ratenumber필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms?include_archived=true' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/signup-forms

양식 만들기: kind(inline, popup, bar, slide_in, page), list_id 또는 list_name, 선택적 mailbox_id, double_opt_in(기본 true), 부분 config.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 200

  • kindstring

    default: "inline" · enum: "inline", "popup", "bar", "slide_in", "page"

  • list_idstring

    format: "uuid"

  • list_namestring

    maxLength: 200

  • mailbox_idstring | null

    format: "uuid"

  • double_opt_inboolean

    default: true

  • configobject

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring

    format: "uuid"

  • product_idstring

    format: "uuid"

  • public_idstring

    pattern: "^f_[a-z0-9]{16}$"

  • namestring
  • kindstring

    enum: "inline", "popup", "bar", "slide_in", "page"

  • list_idstring

    format: "uuid"

  • list_namestring
  • mailbox_idstring | null

    format: "uuid"

  • double_opt_inboolean
  • configobject

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

    추가 중첩 생략

  • statusstring

    enum: "active", "paused", "archived"

  • viewsinteger
  • submissionsinteger
  • confirmationsinteger
  • subscribersinteger
  • versioninteger
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • hosted_urlstring
  • embed_codestring
  • embed_slotstring
  • open_buttonstring
  • conversion_ratenumber
  • replayedboolean

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "kind": "inline",
  "list_id": "00000000-0000-4000-8000-000000000001",
  "list_name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "double_opt_in": true,
  "config": {
    "eyebrow": "example",
    "headline": "example",
    "body": "example",
    "button_label": "example",
    "email_placeholder": "example",
    "name_placeholder": "example",
    "fine_print": "example",
    "incentive": "example",
    "success_headline": "example",
    "success_body": "example",
    "redirect_url": "example",
    "image_url": "example",
    "art": "arcs",
    "style": "",
    "count_noun": "example",
    "confirm_promise": "example",
    "locale": "example",
    "collect_name": true,
    "show_logo": true,
    "show_count": true,
    "exit_intent": true,
    "delay_seconds": 0,
    "scroll_percent": 0,
    "frequency_days": 0,
    "image": "none",
    "layout": "stacked",
    "theme": "light",
    "position": "bottom",
    "fields": [
      {
        "key": "example",
        "label": "example",
        "type": "text",
        "required": false,
        "placeholder": "example",
        "options": [
          "example"
        ]
      }
    ]
  }
}'
GET/v1/workspaces/{workspaceId}/signup-forms/readiness

이 제품이 양식을 켤 수 있는지 여부(제품 레인이 검증된 도메인에서 발송).

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • forms_enabledboolean필수
  • reasonstring

    enum: "verified_domain_required"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms/readiness' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/signup-forms/preview

저장하지 않은 양식 설정을 가상 웹사이트의 완전한 HTML 페이지로 렌더링해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • kindstring

    enum: "inline", "popup", "bar", "slide_in", "page"

  • configobject

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

  • double_opt_inboolean
  • statestring

    enum: "form", "success"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • kindstring필수

    enum: "inline", "popup", "bar", "slide_in", "page"

  • statestring필수

    enum: "form", "success"

  • htmlstring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "kind": "inline",
  "config": {
    "eyebrow": "example",
    "headline": "example",
    "body": "example",
    "button_label": "example",
    "email_placeholder": "example",
    "name_placeholder": "example",
    "fine_print": "example",
    "incentive": "example",
    "success_headline": "example",
    "success_body": "example",
    "redirect_url": "example",
    "image_url": "example",
    "art": "arcs",
    "style": "",
    "count_noun": "example",
    "confirm_promise": "example",
    "locale": "example",
    "collect_name": true,
    "show_logo": true,
    "show_count": true,
    "exit_intent": true,
    "delay_seconds": 0,
    "scroll_percent": 0,
    "frequency_days": 0,
    "image": "none",
    "layout": "stacked",
    "theme": "light",
    "position": "bottom",
    "fields": [
      {
        "key": "example",
        "label": "example",
        "type": "text",
        "required": false,
        "placeholder": "example",
        "options": [
          "example"
        ]
      }
    ]
  },
  "double_opt_in": true,
  "state": "form"
}'
GET/v1/workspaces/{workspaceId}/signup-forms/{formId}

getSignupForm

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

formId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • public_idstring필수

    pattern: "^f_[a-z0-9]{16}$"

  • namestring필수
  • kindstring필수

    enum: "inline", "popup", "bar", "slide_in", "page"

  • list_idstring필수

    format: "uuid"

  • list_namestring필수
  • mailbox_idstring | null필수

    format: "uuid"

  • double_opt_inboolean필수
  • configobject필수

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

    추가 중첩 생략

  • statusstring필수

    enum: "active", "paused", "archived"

  • viewsinteger필수
  • submissionsinteger필수
  • confirmationsinteger필수
  • subscribersinteger필수
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • hosted_urlstring필수
  • embed_codestring필수
  • embed_slotstring필수
  • open_buttonstring필수
  • conversion_ratenumber필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms/{formId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}/signup-forms/{formId}

부분 업데이트이며 config는 저장된 설정에 병합돼요. status는 active, paused, archived이고 expected_version은 동시 편집을 방지해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

formId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 200

  • kindstring

    default: "inline" · enum: "inline", "popup", "bar", "slide_in", "page"

  • list_idstring

    format: "uuid"

  • list_namestring

    maxLength: 200

  • mailbox_idstring | null

    format: "uuid"

  • double_opt_inboolean

    default: true

  • configobject

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

  • statusstring

    enum: "active", "paused", "archived"

  • expected_versioninteger

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • public_idstring필수

    pattern: "^f_[a-z0-9]{16}$"

  • namestring필수
  • kindstring필수

    enum: "inline", "popup", "bar", "slide_in", "page"

  • list_idstring필수

    format: "uuid"

  • list_namestring필수
  • mailbox_idstring | null필수

    format: "uuid"

  • double_opt_inboolean필수
  • configobject필수

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

    추가 중첩 생략

  • statusstring필수

    enum: "active", "paused", "archived"

  • viewsinteger필수
  • submissionsinteger필수
  • confirmationsinteger필수
  • subscribersinteger필수
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • hosted_urlstring필수
  • embed_codestring필수
  • embed_slotstring필수
  • open_buttonstring필수
  • conversion_ratenumber필수
  • replayedboolean필수

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms/{formId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "kind": "inline",
  "list_id": "00000000-0000-4000-8000-000000000001",
  "list_name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "double_opt_in": true,
  "config": {
    "eyebrow": "example",
    "headline": "example",
    "body": "example",
    "button_label": "example",
    "email_placeholder": "example",
    "name_placeholder": "example",
    "fine_print": "example",
    "incentive": "example",
    "success_headline": "example",
    "success_body": "example",
    "redirect_url": "example",
    "image_url": "example",
    "art": "arcs",
    "style": "",
    "count_noun": "example",
    "confirm_promise": "example",
    "locale": "example",
    "collect_name": true,
    "show_logo": true,
    "show_count": true,
    "exit_intent": true,
    "delay_seconds": 0,
    "scroll_percent": 0,
    "frequency_days": 0,
    "image": "none",
    "layout": "stacked",
    "theme": "light",
    "position": "bottom",
    "fields": [
      {
        "key": "example",
        "label": "example",
        "type": "text",
        "required": false,
        "placeholder": "example",
        "options": [
          "example"
        ]
      }
    ]
  },
  "status": "active",
  "expected_version": 1
}'
POST/v1/workspaces/{workspaceId}/signup-forms/{formId}/preview

저장된 양식을 양식 또는 성공 상태로 렌더링하며 저장하지 않은 변경도 적용할 수 있어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

formId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • kindstring

    enum: "inline", "popup", "bar", "slide_in", "page"

  • configobject

    추가 속성 없음

  • eyebrowstring

    maxLength: 60

  • headlinestring

    minLength: 1 · maxLength: 140

  • bodystring

    maxLength: 400

  • button_labelstring

    minLength: 1 · maxLength: 40

  • email_placeholderstring

    maxLength: 80

  • name_placeholderstring

    maxLength: 60

  • fine_printstring

    maxLength: 160

  • incentivestring

    maxLength: 160

  • success_headlinestring

    maxLength: 120

  • success_bodystring

    maxLength: 400

  • redirect_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • image_urlstring

    maxLength: 2000 · pattern: "^(|https://[^\\s\"'<>]+)$"

  • artstring

    enum: "arcs", "blocks", "horizon", "confetti", "frame", "bands", "dots"

  • stylestring

    enum: "", "brand", "material", "clarity", "editorial", "bold", "luxe", "playful", "plain"

  • count_nounstring

    maxLength: 30

  • confirm_promisestring

    maxLength: 200

  • localestring
  • collect_nameboolean
  • show_logoboolean
  • show_countboolean
  • exit_intentboolean
  • delay_secondsinteger

    minimum: 0 · maximum: 600

  • scroll_percentinteger

    minimum: 0 · maximum: 100

  • frequency_daysinteger

    minimum: 0 · maximum: 365

  • imagestring

    enum: "none", "photo", "art"

  • layoutstring

    enum: "stacked", "split"

  • themestring

    enum: "light", "dark", "brand", "auto"

  • positionstring

    enum: "bottom", "top", "right", "left"

  • fieldsarray

    maxItems: 6

  • 각 항목object

    선택형 질문은 선택지가 필요하고 다른 질문 유형은 선택지를 받지 않아요. 키는 고유해야 하며 예약된 양식 필드를 사용할 수 없어요. 생략된 키는 라벨에서 만들어요.

    추가 속성 없음

  • keystring

    pattern: "^[a-z][a-z0-9_]{0,39}$"

  • labelstring필수

    minLength: 1 · maxLength: 80

  • typestring

    default: "text" · enum: "text", "select", "checkbox"

  • requiredboolean

    default: false

  • placeholderstring

    maxLength: 80

  • optionsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 80

  • double_opt_inboolean
  • statestring

    enum: "form", "success"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • kindstring필수

    enum: "inline", "popup", "bar", "slide_in", "page"

  • statestring필수

    enum: "form", "success"

  • htmlstring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms/{formId}/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "kind": "inline",
  "config": {
    "eyebrow": "example",
    "headline": "example",
    "body": "example",
    "button_label": "example",
    "email_placeholder": "example",
    "name_placeholder": "example",
    "fine_print": "example",
    "incentive": "example",
    "success_headline": "example",
    "success_body": "example",
    "redirect_url": "example",
    "image_url": "example",
    "art": "arcs",
    "style": "",
    "count_noun": "example",
    "confirm_promise": "example",
    "locale": "example",
    "collect_name": true,
    "show_logo": true,
    "show_count": true,
    "exit_intent": true,
    "delay_seconds": 0,
    "scroll_percent": 0,
    "frequency_days": 0,
    "image": "none",
    "layout": "stacked",
    "theme": "light",
    "position": "bottom",
    "fields": [
      {
        "key": "example",
        "label": "example",
        "type": "text",
        "required": false,
        "placeholder": "example",
        "options": [
          "example"
        ]
      }
    ]
  },
  "double_opt_in": true,
  "state": "form"
}'

공개 가입 양식

GET/v1/forms/embed.js

가입 양식 로더예요. 양식별 script 태그 하나(data-banger-form="f_…")가 shadow root에 위젯을 렌더링하고 트리거와 제출을 처리해요.

공개 엔드포인트: 인증이 필요 없어요.

매개변수

지정된 매개변수가 없어요.

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

삽입 가능한 가입 양식 로더.

text/javascript

  • valuestring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/forms/embed.js'
OPTIONS/v1/forms/embed.js

공개 가입 CORS 정책 읽기

공개 엔드포인트: 인증이 필요 없어요.

매개변수

지정된 매개변수가 없어요.

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

성공 응답.

응답 본문 없음.

curl 예제

curl --request OPTIONS --globoff 'https://api.bangermail.com/v1/forms/embed.js'
HEAD/v1/forms/embed.js

삽입 스크립트 헤더 읽기

공개 엔드포인트: 인증이 필요 없어요.

매개변수

지정된 매개변수가 없어요.

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

계약에 응답 스키마가 지정돼 있지 않아요.

curl 예제

curl --request HEAD --globoff 'https://api.bangermail.com/v1/forms/embed.js'
GET/v1/forms/{publicId}/widget

활성 양식의 렌더링된 위젯(html, css, 글꼴 링크)과 팝업 동작이에요. 공개이고 CORS가 개방되며 1분 캐시돼요.

공개 엔드포인트: 인증이 필요 없어요.

매개변수

이름 / 위치스키마
publicId
path · 필수
  • valuestring

    pattern: "^f_[a-z0-9]{16}$"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • kindstring필수

    enum: "inline", "popup", "bar", "slide_in", "page"

  • langstring필수
  • htmlstring필수
  • cssstring필수
  • font_hrefstring필수
  • redirect_urlstring필수
  • behaviorobject필수
  • delay_secondsnumber필수
  • scroll_percentnumber필수
  • exit_intentboolean필수
  • frequency_daysnumber필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/forms/{publicId}/widget'
OPTIONS/v1/forms/{publicId}/widget

공개 가입 CORS 정책 읽기

공개 엔드포인트: 인증이 필요 없어요.

매개변수

이름 / 위치스키마
publicId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

성공 응답.

응답 본문 없음.

curl 예제

curl --request OPTIONS --globoff 'https://api.bangermail.com/v1/forms/{publicId}/widget'
POST/v1/forms/{publicId}/subscribe

방문자가 가입해요. 브라우저가 preflight를 생략하도록 양식 인코딩(email, name, page, 선택적 lang)을 사용하며 JSON도 받아요. 메시지와 확인 이메일은 양식 언어, 없으면 lang, 없으면 Accept-Language를 따라요. 이중 수신 동의 시 확인 이메일을 보내고 확인 후 목록에 가입해요.

공개 엔드포인트: 인증이 필요 없어요.

매개변수

이름 / 위치스키마
publicId
path · 필수
  • valuestring

    pattern: "^f_[a-z0-9]{16}$"

요청 본문 필수

application/x-www-form-urlencoded

  • valueobject

    사용자 지정 답변은 x_<field key>(또는 접두사 없는 키)를 사용해요. 필수 답변은 양식 설정에 따라 달라요. 처리기는 본문 첫 8000자를 읽어요.

  • emailstring필수

    format: "email" · maxLength: 320

  • namestring

    maxLength: 100

  • pagestring

    maxLength: 2000

  • elapsednumber | string

    양식 표시 후 경과한 밀리초.

  • langstring

    maxLength: 35

  • localestring

    maxLength: 35

  • websitestring

    허니팟이며 비워 두세요.

    maxLength: 200

  • 추가 속성string | number

application/json

  • valueobject

    사용자 지정 답변은 x_<field key>(또는 접두사 없는 키)를 사용해요. 필수 답변은 양식 설정에 따라 달라요. 처리기는 본문 첫 8000자를 읽어요.

  • emailstring필수

    format: "email" · maxLength: 320

  • namestring

    maxLength: 100

  • pagestring

    maxLength: 2000

  • elapsednumber | string

    양식 표시 후 경과한 밀리초.

  • langstring

    maxLength: 35

  • localestring

    maxLength: 35

  • websitestring

    허니팟이며 비워 두세요.

    maxLength: 200

  • 추가 속성string | number

성공 응답 200

가입이 접수됐어요.

application/json

  • valueobject
  • okboolean필수

    const: true

  • statusstring필수

    enum: "pending_confirmation", "subscribed", "already_subscribed"

  • redirect_urlstring

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/forms/{publicId}/subscribe' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "email": "person@example.com",
  "name": "example",
  "page": "example",
  "elapsed": 1,
  "lang": "example",
  "locale": "example",
  "website": "example"
}'
OPTIONS/v1/forms/{publicId}/subscribe

공개 가입 CORS 정책 읽기

공개 엔드포인트: 인증이 필요 없어요.

매개변수

이름 / 위치스키마
publicId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

성공 응답.

응답 본문 없음.

curl 예제

curl --request OPTIONS --globoff 'https://api.bangermail.com/v1/forms/{publicId}/subscribe'
POST/v1/forms/{publicId}/view

위젯 표시 한 번을 집계해요.

공개 엔드포인트: 인증이 필요 없어요.

매개변수

이름 / 위치스키마
publicId
path · 필수
  • valuestring

    pattern: "^f_[a-z0-9]{16}$"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

집계됐어요.

응답 본문 없음.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/forms/{publicId}/view'
OPTIONS/v1/forms/{publicId}/view

공개 가입 CORS 정책 읽기

공개 엔드포인트: 인증이 필요 없어요.

매개변수

이름 / 위치스키마
publicId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

성공 응답.

응답 본문 없음.

curl 예제

curl --request OPTIONS --globoff 'https://api.bangermail.com/v1/forms/{publicId}/view'

템플릿

GET/v1/workspaces/{workspaceId}/templates

listTemplates

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • subjectstring필수
  • body_textstring필수
  • contentobject필수
  • 추가 속성string
  • slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • statusstring필수

    enum: "active", "archived"

  • originstring필수

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/templates

createTemplate

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    minLength: 1 · maxLength: 200

  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    maxLength: 2000000

  • contentobject
  • 추가 속성string
  • slotsarray
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • originstring

    enum: "person", "agent", "starter", "import"

  • message_kindstring
  • starter_idstring

    maxLength: 80

  • starter_versioninteger

    minimum: 1

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • subjectstring필수
  • body_textstring필수
  • contentobject필수
  • 추가 속성string
  • slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • statusstring필수

    enum: "active", "archived"

  • originstring필수

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "subject": "example",
  "body_text": "example",
  "body_html": "example",
  "content": {},
  "slots": [
    {
      "key": "example",
      "label": "example",
      "type": "text",
      "help": "example"
    }
  ],
  "origin": "person",
  "message_kind": "example",
  "starter_id": "example",
  "starter_version": 1
}'
POST/v1/workspaces/{workspaceId}/templates/preview

previewDesign

저장하지 않은 디자인을 샘플 또는 대상 값으로 렌더링하고 자리표시자 누락을 보고해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    maxLength: 2000000

  • contentobject
  • 추가 속성string
  • audienceobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • sample_emailstring

    기존 연락처 이메일이에요. 알 수 없는 주소는 sample_recipient_not_found를 반환해요. 생략하면 샘플 또는 대상 값을 사용해요.

    maxLength: 320

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • subjectstring필수
  • body_textstring필수
  • body_htmlstring
  • font_renderingarray필수
  • 각 항목object
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

  • sample_recipient지정되지 않음필수
  • anyOf 1object
  • emailstring필수
  • display_namestring | null필수
  • anyOf 2null
  • required_variablesarray필수
  • 각 항목string
  • effective_slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • audience_countinteger
  • gapsarray
  • 각 항목object
  • variablestring필수
  • missing_countinteger필수
  • sample_emailsarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "subject": "example",
  "body_text": "example",
  "body_html": "example",
  "content": {},
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "sample_email": "example"
}'
GET/v1/workspaces/{workspaceId}/templates/{templateId}

getTemplate

디자인 하나와 인라인 HTML, 채울 콘텐츠, 실제 슬롯.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

templateId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • subjectstring필수
  • body_textstring필수
  • contentobject필수
  • 추가 속성string
  • slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • statusstring필수

    enum: "active", "archived"

  • originstring필수

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates/{templateId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}/templates/{templateId}

updateTemplate

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

templateId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 200

  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    minLength: 1 · maxLength: 2000000

  • contentobject
  • 추가 속성string

    maxLength: 20000

  • slotsarray

    maxItems: 100

  • 각 항목object
  • keystring필수

    maxLength: 200

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • statusstring

    enum: "active", "archived"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • subjectstring필수
  • body_textstring필수
  • contentobject필수
  • 추가 속성string
  • slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • statusstring필수

    enum: "active", "archived"

  • originstring필수

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates/{templateId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "subject": "example",
  "body_text": "example",
  "body_html": "example",
  "content": {},
  "slots": [
    {
      "key": "example",
      "label": "example",
      "type": "text",
      "help": "example"
    }
  ],
  "status": "active"
}'
POST/v1/workspaces/{workspaceId}/templates/{templateId}/duplicate

duplicateTemplate

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

templateId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 200

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • subjectstring필수
  • body_textstring필수
  • contentobject필수
  • 추가 속성string
  • slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • statusstring필수

    enum: "active", "archived"

  • originstring필수

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • body_html_urlstring

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates/{templateId}/duplicate' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example"
}'
POST/v1/workspaces/{workspaceId}/templates/{templateId}/preview

previewTemplate

저장된 디자인을 샘플 또는 대상 값으로 렌더링하고 자리표시자 누락을 보고해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

templateId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • contentobject
  • 추가 속성string
  • audienceobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • sample_emailstring

    기존 연락처 이메일이에요. 알 수 없는 주소는 sample_recipient_not_found를 반환해요. 생략하면 샘플 또는 대상 값을 사용해요.

    maxLength: 320

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • subjectstring필수
  • body_textstring필수
  • body_htmlstring
  • font_renderingarray필수
  • 각 항목object
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

  • sample_recipient지정되지 않음필수
  • anyOf 1object
  • emailstring필수
  • display_namestring | null필수
  • anyOf 2null
  • required_variablesarray필수
  • 각 항목string
  • effective_slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • audience_countinteger
  • gapsarray
  • 각 항목object
  • variablestring필수
  • missing_countinteger필수
  • sample_emailsarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates/{templateId}/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "content": {},
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "sample_email": "example"
}'
GET/v1/workspaces/{workspaceId}/templates/{templateId}/html

getTemplateHtml

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

templateId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

스크립트 없는 HTML 이메일 템플릿 본문.

text/html

  • valuestring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/templates/{templateId}/html' \
  --header "Authorization: Bearer $BANGER_API_KEY"

캠페인

POST/v1/workspaces/{workspaceId}/campaigns/coverage-preview

previewCampaignCoverage

단체 발송을 저장하기 전에 확인하는, 대상이 채울 수 없는 필수 자리표시자.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • body_htmlstring

    maxLength: 2000000

  • contentobject
  • 추가 속성string
  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • sample_emailstring

    maxLength: 320

  • template_idstring

    format: "uuid"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • required_variablesarray필수
  • 각 항목string
  • audience_countinteger필수
  • gapsarray필수
  • 각 항목object
  • variablestring필수
  • missing_countinteger필수
  • sample_emailsarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/coverage-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "subject": "example",
  "body_text": "example",
  "body_html": "example",
  "content": {},
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "sample_email": "example",
  "template_id": "00000000-0000-4000-8000-000000000001"
}'
GET/v1/workspaces/{workspaceId}/campaigns

listCampaigns

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring필수
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns

createCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    maxLength: 200

  • mailbox_idstring

    format: "uuid"

  • template_idstring필수

    format: "uuid"

  • subject_variantsarray

    maxItems: 8

  • 각 항목string

    minLength: 1 · maxLength: 998

  • selected_subject_variantinteger

    minimum: 0

  • audienceobject필수
  • all_subscribedboolean

    default: false

  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring필수
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "template_id": "00000000-0000-4000-8000-000000000001",
  "subject_variants": [
    "example"
  ],
  "selected_subject_variant": 0,
  "audience": {
    "all_subscribed": false,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  }
}'
POST/v1/workspaces/{workspaceId}/campaigns/audience-preview

previewCampaignAudience

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/audience-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  }
}'
GET/v1/workspaces/{workspaceId}/campaigns/{campaignId}

getCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring필수
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}/campaigns/{campaignId}

updateCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    maxLength: 200

  • mailbox_idstring필수

    format: "uuid"

  • template_idstring

    format: "uuid"

  • subject_variantsarray

    maxItems: 8

  • 각 항목string

    minLength: 1 · maxLength: 998

  • selected_subject_variantinteger

    minimum: 0

  • audienceobject필수

    계약에 지정되지 않은 속성

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring필수
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "template_id": "00000000-0000-4000-8000-000000000001",
  "subject_variants": [
    "example"
  ],
  "selected_subject_variant": 0,
  "audience": {}
}'
DELETE/v1/workspaces/{workspaceId}/campaigns/{campaignId}

발송하지 않은 캠페인 삭제

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • deletedboolean필수

    const: true

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/campaigns/{campaignId}/recipients

listCampaignRecipients

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

status
query
  • valuestring

    enum: "pending", "queued", "sent", "failed", "skipped", "delivered", "deferred", "bounced", "complained", "unsubscribed"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • contact_idstring | null

    format: "uuid"

  • recipient_emailstring
  • recipient_namestring | null
  • recipient_hashstring
  • statusstring
  • dispatch_statusstring
  • command_idstring | null

    format: "uuid"

  • error_codestring | null
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • delivery_statestring | null
  • provider_message_keystring | null
  • last_event_atstring | null

    format: "date-time"

  • first_delivered_atstring | null

    format: "date-time"

  • first_opened_atstring | null

    format: "date-time"

  • first_clicked_atstring | null

    format: "date-time"

  • first_human_likely_opened_atstring | null

    format: "date-time"

  • first_human_likely_clicked_atstring | null

    format: "date-time"

  • first_replied_atstring | null

    format: "date-time"

  • machine_open_countinteger
  • machine_click_countinteger
  • privacy_proxy_open_countinteger
  • unknown_open_countinteger
  • unknown_click_countinteger
  • first_unsubscribed_atstring | null

    format: "date-time"

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/recipients?cursor=example&limit=50&status=pending' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/campaigns/{campaignId}/timeline

listCampaignTimeline

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수
  • typestring필수
  • occurred_atstring필수

    format: "date-time"

  • actor_idstring | null필수
  • detailobject필수
  • 추가 속성모든 값

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/timeline' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/pause

pauseCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • mailbox_idstring필수

    format: "uuid"

  • template_idstring | null필수

    format: "uuid"

  • statusstring필수
  • audience_queryobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • scheduled_atstring | null필수

    format: "date-time"

  • started_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/pause' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/resume

resumeCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • mailbox_idstring필수

    format: "uuid"

  • template_idstring | null필수

    format: "uuid"

  • statusstring필수
  • audience_queryobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • scheduled_atstring | null필수

    format: "date-time"

  • started_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/resume' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/cancel

cancelCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • mailbox_idstring필수

    format: "uuid"

  • template_idstring | null필수

    format: "uuid"

  • statusstring필수
  • audience_queryobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • scheduled_atstring | null필수

    format: "date-time"

  • started_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/cancel' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/schedule

scheduleCampaign

사용 중단 예정

사용 중단 예정인 직접 예약 경계예요. 항상 governed_review_required를 반환하니 워크스페이스 수신자 임계값을 적용하려면 캠페인 검토 엔드포인트를 사용하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답

계약에 성공 응답이 지정돼 있지 않아요.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/schedule' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/test

testCampaign

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject
  • tostring필수

    minLength: 3 · maxLength: 320

  • data_modestring

    default: "contact" · enum: "sample", "fallback", "contact"

  • contact_emailstring

    maxLength: 320

  • variant_keystring

    maxLength: 80

  • localestring

성공 응답 202

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • action_kindstring필수

    enum: "transactional.send"

  • idstring필수

    format: "uuid"

  • send_intent_idstring필수

    format: "uuid"

  • provider_attempt_idstring필수

    format: "uuid"

  • statusstring필수
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/test' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "to": "example",
  "data_mode": "contact",
  "contact_email": "example",
  "variant_key": "example",
  "locale": "example"
}'
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/review

requestCampaignReview

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • expected_versioninteger

    minimum: 1

  • expected_design_versioninteger

    minimum: 1

  • recipient_selectionobject

    추가 속성 없음

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • scheduled_atstring

    format: "date-time"

  • send_nowboolean

    const: true

  • approve_as_launcherboolean

    검토 정책이 사람을 요구하면 보내기를 누른 사람이 정확히 이 요청을 승인해요. API 키와 에이전트에서는 무시되며 승인에서 기다려요.

  • oneOf 1지정되지 않음
  • oneOf 2지정되지 않음

성공 응답 201

캠페인 예약 승인이 생성됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/review' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '"example"'
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/archive

캠페인 보관

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수
  • archived_atstring | null필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/archive' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/campaigns/{campaignId}/unarchive

캠페인 보관 해제

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수
  • archived_atstring | null필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/unarchive' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/campaigns/{campaignId}/design-test

캠페인 이메일 디자인 1~4개 저장

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

campaignId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    minLength: 1 · maxLength: 200

  • mailbox_idstring필수

    format: "uuid"

  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • automatic_translationboolean
  • variantsarray필수

    minItems: 1 · maxItems: 4

  • 각 항목object
  • body_htmlstring필수

    minLength: 1 · maxLength: 2000000

  • subjectstring

    maxLength: 10000

  • body_textstring

    maxLength: 2000000

  • contentobject
  • 추가 속성string

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring필수
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값
  • design_template_idstring필수

    format: "uuid"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/campaigns/{campaignId}/design-test' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "automatic_translation": true,
  "variants": [
    {
      "body_html": "example",
      "subject": "example",
      "body_text": "example",
      "content": {}
    }
  ]
}'

단체 발송

POST/v1/workspaces/{workspaceId}/broadcasts

createBroadcast

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • mailbox_idstring

    기존 보낸 사람 주소예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 사용해요.

    format: "uuid"

  • template_idstring

    format: "uuid"

  • audienceobject

    추가 속성 없음

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • subject_variantsarray

    maxItems: 8

  • 각 항목string

    minLength: 1 · maxLength: 998

  • selected_subject_variantinteger

    minimum: 0 · maximum: 7

  • expires_after_secondsinteger

    예약 시점부터 이 초 수가 지나면 미발송 수신자를 폐기하며 기본값은 7일이에요.

    minimum: 1 · maximum: 604800

  • content_overridesobject
  • 추가 속성string

    maxLength: 20000

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값
  • broadcast_idstring필수

    format: "uuid"

  • sender_addressstring | null필수
  • sending_blocker지정되지 않음필수
  • anyOf 1object
  • codestring필수

    추가 중첩 생략

  • messagestring필수

    추가 중첩 생략

  • anyOf 2null
  • design지정되지 않음필수
  • anyOf 1object
  • idstring

    format: "uuid"

    추가 중첩 생략

  • product_idstring

    format: "uuid"

    추가 중첩 생략

  • namestring

    추가 중첩 생략

  • subjectstring

    추가 중첩 생략

  • body_textstring

    추가 중첩 생략

  • contentobject

    추가 중첩 생략

  • slotsarray

    추가 중첩 생략

  • statusstring

    enum: "active", "archived"

    추가 중첩 생략

  • originstring

    enum: "person", "agent", "starter", "import"

    추가 중첩 생략

  • created_by_actor_idstring | null

    추가 중첩 생략

  • campaign_idstring | null

    format: "uuid"

    추가 중첩 생략

  • message_kindstring

    추가 중첩 생략

  • starter_idstring | null

    추가 중첩 생략

  • starter_versioninteger | null

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • created_atstring

    format: "date-time"

    추가 중첩 생략

  • updated_atstring

    format: "date-time"

    추가 중첩 생략

  • body_html_urlstring

    format: "uri"

    추가 중첩 생략

  • body_htmlstring | null

    추가 중첩 생략

  • body_html_b2_keystring | null

    추가 중첩 생략

  • anyOf 2null
  • managed_content지정되지 않음필수
  • anyOf 1지정되지 않음
  • allOf 1object

    추가 중첩 생략

  • allOf 2object

    추가 중첩 생략

  • anyOf 2null
  • subjectstring | null필수
  • sender_mailbox지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • addressstring필수

    추가 중첩 생략

  • display_namestring필수

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • anyOf 2null
  • reply_mailbox지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • addressstring필수

    추가 중첩 생략

  • display_namestring필수

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • anyOf 2null
  • design_versioninteger | null필수
  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • allOf 2object
  • replayedboolean필수
  • allOf 2object
  • previewobject
  • subjectstring필수
  • preheaderstring
  • htmlstring필수
  • textstring필수
  • localestring필수
  • directionstring필수

    enum: "ltr", "rtl"

  • warningsarray
  • 각 항목string
  • 추가 속성모든 값
  • translation_jobsarray필수
  • 각 항목string

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "template_id": "00000000-0000-4000-8000-000000000001",
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "subject_variants": [
    "example"
  ],
  "selected_subject_variant": 0,
  "expires_after_seconds": 1,
  "content_overrides": {}
}'
GET/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}

getBroadcast

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

broadcastId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값
  • broadcast_idstring필수

    format: "uuid"

  • sender_addressstring | null필수
  • sending_blocker지정되지 않음필수
  • anyOf 1object
  • codestring필수
  • messagestring필수
  • anyOf 2null
  • design지정되지 않음필수
  • anyOf 1object
  • idstring

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring
  • subjectstring
  • body_textstring
  • contentobject
  • 추가 속성string
  • slotsarray
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

    추가 중첩 생략

  • labelstring

    maxLength: 120

    추가 중첩 생략

  • typestring

    enum: "text", "paragraph", "url", "image"

    추가 중첩 생략

  • helpstring

    maxLength: 300

    추가 중첩 생략

  • statusstring

    enum: "active", "archived"

  • originstring

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • body_html_urlstring

    format: "uri"

  • body_htmlstring | null
  • body_html_b2_keystring | null
  • anyOf 2null
  • managed_content지정되지 않음필수
  • anyOf 1지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object

    추가 중첩 생략

  • translation_jobsarray
  • 각 항목object

    추가 중첩 생략

  • allOf 2object
  • source_revision지정되지 않음필수
  • anyOf 1object

    추가 중첩 생략

  • anyOf 2null

    추가 중첩 생략

  • published_source_revision지정되지 않음필수
  • anyOf 1object

    추가 중첩 생략

  • anyOf 2null

    추가 중첩 생략

  • translationsarray필수
  • 각 항목object

    추가 중첩 생략

  • anyOf 2null
  • subjectstring | null필수
  • sender_mailbox지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

  • addressstring필수
  • display_namestring필수
  • statusstring필수
  • anyOf 2null
  • reply_mailbox지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

  • addressstring필수
  • display_namestring필수
  • statusstring필수
  • anyOf 2null
  • design_versioninteger | null필수
  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
PATCH/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}

updateBroadcast

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

broadcastId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring

    minLength: 1 · maxLength: 200

  • mailbox_idstring

    format: "uuid"

  • template_idstring

    format: "uuid"

  • audienceobject

    추가 속성 없음

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • subject_variantsarray

    maxItems: 8

  • 각 항목string

    minLength: 1 · maxLength: 998

  • selected_subject_variantinteger

    minimum: 0 · maximum: 7

  • expires_after_secondsinteger

    예약 시점부터 이 초 수가 지나면 미발송 수신자를 폐기해요.

    minimum: 1 · maximum: 604800

  • content_overridesobject
  • 추가 속성string

    maxLength: 20000

  • expected_versioninteger필수

    minimum: 1

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • mailbox_idstring

    format: "uuid"

  • template_idstring | null

    format: "uuid"

  • managed_content_idstring | null

    format: "uuid"

  • managed_source_revision_idstring | null

    format: "uuid"

  • managed_publication_idstring | null

    format: "uuid"

  • managed_locales_snapshotarray
  • 각 항목string
  • expires_after_secondsinteger | null
  • statusstring
  • versioninteger필수
  • subject_variantsarray
  • 각 항목string
  • selected_subject_variantinteger
  • content_overridesobject
  • 추가 속성string
  • audience_queryobject

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • audience_frozen_atstring | null

    format: "date-time"

  • audience_recipient_countinteger | null
  • audience_snapshot_sha256string | null
  • audience_snapshot_campaign_versioninteger | null
  • scheduled_atstring | null

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • archived_atstring | null

    format: "date-time"

  • statsobject
  • 추가 속성모든 값
  • broadcast_idstring필수

    format: "uuid"

  • sender_addressstring | null필수
  • sending_blocker지정되지 않음필수
  • anyOf 1object
  • codestring필수
  • messagestring필수
  • anyOf 2null
  • design지정되지 않음필수
  • anyOf 1object
  • idstring

    format: "uuid"

  • product_idstring

    format: "uuid"

  • namestring
  • subjectstring
  • body_textstring
  • contentobject
  • 추가 속성string

    추가 중첩 생략

  • slotsarray
  • 각 항목object

    추가 중첩 생략

  • statusstring

    enum: "active", "archived"

  • originstring

    enum: "person", "agent", "starter", "import"

  • created_by_actor_idstring | null
  • campaign_idstring | null

    format: "uuid"

  • message_kindstring
  • starter_idstring | null
  • starter_versioninteger | null
  • versioninteger
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • body_html_urlstring

    format: "uri"

  • body_htmlstring | null
  • body_html_b2_keystring | null
  • anyOf 2null
  • managed_content지정되지 않음필수
  • anyOf 1지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • versioninteger필수

    minimum: 1

    추가 중첩 생략

  • review_requiredboolean필수

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • submitted_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • approved_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revisionobject

    추가 중첩 생략

  • translationsarray

    추가 중첩 생략

  • translation_jobsarray

    추가 중첩 생략

  • allOf 2object
  • source_revision지정되지 않음필수

    추가 중첩 생략

  • published_source_revision지정되지 않음필수

    추가 중첩 생략

  • translationsarray필수

    추가 중첩 생략

  • anyOf 2null
  • subjectstring | null필수
  • sender_mailbox지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

  • addressstring필수
  • display_namestring필수
  • statusstring필수
  • anyOf 2null
  • reply_mailbox지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

  • addressstring필수
  • display_namestring필수
  • statusstring필수
  • anyOf 2null
  • design_versioninteger | null필수
  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "template_id": "00000000-0000-4000-8000-000000000001",
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "subject_variants": [
    "example"
  ],
  "selected_subject_variant": 0,
  "expires_after_seconds": 1,
  "content_overrides": {},
  "expected_version": 1
}'
POST/v1/workspaces/{workspaceId}/broadcasts/audience-preview

previewBroadcastAudience

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • audienceobject필수

    추가 속성 없음

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • template_idstring

    format: "uuid"

  • subjectstring

    minLength: 0 · maxLength: 10000

  • content_overridesobject
  • 추가 속성string

    maxLength: 20000

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수
  • allOf 2object
  • eligible_countinteger필수
  • required_variablesarray필수
  • 각 항목string
  • missing_personalization_fieldsarray필수
  • 각 항목object
  • variablestring필수
  • missingCountinteger필수
  • sampleEmailsarray필수
  • 각 항목string

    추가 중첩 생략

  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/audience-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  },
  "template_id": "00000000-0000-4000-8000-000000000001",
  "subject": "example",
  "content_overrides": {}
}'
POST/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/audience-preview

previewSavedBroadcastAudience

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

broadcastId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • audienceobject

    추가 속성 없음

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • attributesobject필수
  • 추가 속성모든 값
  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수
  • allOf 2object
  • eligible_countinteger필수
  • required_variablesarray필수
  • 각 항목string
  • missing_personalization_fieldsarray필수
  • 각 항목object
  • variablestring필수
  • missingCountinteger필수
  • sampleEmailsarray필수
  • 각 항목string

    추가 중첩 생략

  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/audience-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "audience": {
    "all_subscribed": true,
    "contact_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "list_ids": [
      "00000000-0000-4000-8000-000000000001"
    ],
    "segment_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  }
}'
GET/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/readiness

checkBroadcastReadiness

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

broadcastId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataobject필수
  • broadcast_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • readyboolean필수
  • blockersarray필수
  • 각 항목object
  • codestring필수
  • messagestring필수
  • audience지정되지 않음필수
  • allOf 1object
  • countinteger필수
  • missing_consent_evidence_countinteger필수
  • samplearray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • emailstring필수

    추가 중첩 생략

  • display_namestring | null필수

    추가 중첩 생략

  • attributesobject필수

    추가 중첩 생략

  • excludedobject필수
  • suppressedinteger필수
  • not_subscribedinteger필수
  • missing_recipient_hashinteger필수
  • missing_consent_evidenceinteger필수
  • allOf 2object
  • eligible_countinteger필수
  • required_variablesarray필수
  • 각 항목string
  • missing_personalization_fieldsarray필수
  • 각 항목object
  • variablestring필수

    추가 중첩 생략

  • missingCountinteger필수

    추가 중첩 생략

  • sampleEmailsarray필수

    추가 중첩 생략

  • audienceobject필수

    모든 구독 연락처 또는 비어 있지 않은 contact_ids, list_ids, segment_ids 목록을 하나 이상 선택하세요.

  • all_subscribedboolean
  • contact_idsarray

    maxItems: 10000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • list_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • segment_idsarray

    maxItems: 1000

  • 각 항목string

    format: "uuid"

    추가 중첩 생략

  • campaign_versioninteger필수
  • design_versioninteger | null필수
  • languages지정되지 않음필수
  • anyOf 1object

    아직 번역 중인 대상 언어는 단체 발송을 지연시키지 않아요. 해당 독자는 번역이 준비되면 받고 발송 후 하루 안에 준비되지 않으면 건너뛰어요(translation_failed, translation_awaiting_review, translation_still_preparing).

  • requestedarray필수
  • 각 항목object
  • localestring필수

    추가 중첩 생략

  • countinteger필수

    추가 중첩 생략

  • pending_localesarray필수
  • 각 항목string
  • waiting_localesarray필수
  • 각 항목string
  • anyOf 2null
  • sendingobject필수
  • route_kindstring | null
  • sending_stream_idstring | null

    format: "uuid"

  • banger_send_limitinteger | string | null
  • daily_send_limitinteger | string | null
  • usedinteger | string | null
  • daily_usedinteger | string | null
  • delivery_pace지정되지 않음필수
  • anyOf 1object
  • daysinteger필수
  • daily_limitinteger필수
  • messagestring필수
  • anyOf 2null
  • approval_requirementsobject필수
  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수
  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string
  • footerobject필수
  • identity_presentboolean필수
  • address_presentboolean필수
  • checks_are_advisoryboolean필수

    const: true

  • next_actionstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/readiness' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/recipients

listBroadcastRecipients

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

broadcastId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    minLength: 0 · maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100

status
query
  • valuestring

    enum: "pending", "queued", "sent", "delivered", "failed", "skipped", "bounced", "complained"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • contact_idstring | null

    format: "uuid"

  • recipient_emailstring
  • recipient_namestring | null
  • recipient_hashstring
  • statusstring
  • dispatch_statusstring
  • command_idstring | null

    format: "uuid"

  • error_codestring | null
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • delivery_statestring | null
  • provider_message_keystring | null
  • last_event_atstring | null

    format: "date-time"

  • first_delivered_atstring | null

    format: "date-time"

  • first_opened_atstring | null

    format: "date-time"

  • first_clicked_atstring | null

    format: "date-time"

  • first_human_likely_opened_atstring | null

    format: "date-time"

  • first_human_likely_clicked_atstring | null

    format: "date-time"

  • first_replied_atstring | null

    format: "date-time"

  • machine_open_countinteger
  • machine_click_countinteger
  • privacy_proxy_open_countinteger
  • unknown_open_countinteger
  • unknown_click_countinteger
  • first_unsubscribed_atstring | null

    format: "date-time"

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수
  • delivery_semanticsstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/recipients?cursor=example&limit=1&status=pending' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/timeline

listBroadcastTimeline

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

broadcastId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수
  • typestring필수
  • occurred_atstring필수

    format: "date-time"

  • actor_idstring | null필수
  • detailobject필수
  • 추가 속성모든 값
  • delivery_semanticsstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/broadcasts/{broadcastId}/timeline' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'

여정

GET/v1/workspaces/{workspaceId}/journeys

listJourneys

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

status
query
  • valuestring

    enum: "draft", "discovered", "active", "paused", "archived"

trigger_kind
query
  • valuestring
testing
query
  • valuestring

    enum: "1"

q
query
  • valuestring

    maxLength: 200

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 여정.

application/json

  • valueobject
  • dataarray필수
  • 각 항목지정되지 않음
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring

    추가 중첩 생략

  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

    추가 중첩 생략

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

    추가 중첩 생략

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object

    추가 중첩 생략

  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string

    추가 중첩 생략

  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

    추가 중첩 생략

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

    추가 중첩 생략

  • preheaderstring

    maxLength: 100000

    추가 중첩 생략

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

    추가 중첩 생략

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

    추가 중첩 생략

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

    추가 중첩 생략

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

    추가 중첩 생략

  • variablesobject필수

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object

    추가 중첩 생략

  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

    추가 중첩 생략

  • positioninteger

    minimum: 1 · maximum: 100

    추가 중첩 생략

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

    추가 중첩 생략

  • namestring필수

    minLength: 1 · maxLength: 200

    추가 중첩 생략

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

    추가 중첩 생략

  • armsarray

    minItems: 2 · maxItems: 4

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys?status=draft&trigger_kind=example&testing=1&q=example' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/journeys

createJourney

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • body_textstring

    maxLength: 100000

  • layoutstring

    maxLength: 100000

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

  • oneOf 1object

    추가 속성 없음

  • typestring필수

    enum: "string", "text", "url", "image_url", "html", "date", "datetime", "number", "boolean", "money"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • default지정되지 않음

    필드 유형과 일치해야 해요.

    추가 중첩 생략

  • oneOf 2object

    추가 속성 없음

  • type지정되지 않음필수

    const: "object"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultobject

    추가 중첩 생략

  • propertiesobject필수

    추가 중첩 생략

  • oneOf 3object

    추가 속성 없음

  • type지정되지 않음필수

    const: "list"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultarray

    추가 중첩 생략

  • items지정되지 않음필수

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string
  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

  • versioninteger
  • draft_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revision_idstring | null

    format: "uuid"

  • layout_revision_idstring | null

    format: "uuid"

  • published_layout_revision_idstring | null

    format: "uuid"

  • source_localestring | null
  • configured_localesarray
  • 각 항목string
  • variablesobject
  • 추가 속성모든 값
  • published_variablesobject
  • 추가 속성모든 값
  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

  • keystring필수

    enum: "A", "B", "C", "D"

  • labelstring필수

    maxLength: 120

  • allocationnumber필수

    minimum: 0 · maximum: 100

  • stepsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

성공 응답 201

여정이 생성됐어요.

application/json

  • valueobject
  • data지정되지 않음
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "description": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "from_local_part": "example",
  "trigger": {
    "kind": "manual",
    "connection_id": "00000000-0000-4000-8000-000000000001",
    "config": {
      "event": "example",
      "once_per_person": true,
      "reentry_days": 1
    },
    "conditions": [
      {}
    ]
  },
  "audience": {},
  "goal": {
    "kind": "none",
    "connection_id": "00000000-0000-4000-8000-000000000001",
    "config": {}
  },
  "exit": {
    "on_reply": true,
    "on_unsubscribe": true,
    "on_suppression": true,
    "event": "example"
  },
  "approval_mode": "policy",
  "api": {
    "key": "example",
    "content_mode": "code",
    "identity": "example"
  },
  "managed_content": {
    "source_locale": "example",
    "configured_locales": [
      "example"
    ],
    "fallback_locale": "example",
    "layout_id": "00000000-0000-4000-8000-000000000001",
    "localization_policy": {
      "manual_review": false
    },
    "source": {
      "subject": "example",
      "preheader": "example",
      "body_text": "example",
      "body_html": "example",
      "layout": "example",
      "variants": {},
      "variables": {}
    },
    "samples": {},
    "translations": {}
  },
  "steps": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "position": 1,
      "kind": "email",
      "name": "example",
      "config": {},
      "arms": [
        {
          "key": "A",
          "label": "example",
          "allocation": 0,
          "steps": [
            {
              "id": null,
              "position": null,
              "kind": null,
              "name": null,
              "config": null,
              "arms": null
            }
          ]
        }
      ]
    }
  ]
}'
GET/v1/workspaces/{workspaceId}/journeys/{journeyId}

getJourney

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

여정 정의, 등록 활동, 테스트.

application/json

  • valueobject
  • data지정되지 않음
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/journeys/{journeyId}

updateJourney

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • body_textstring

    maxLength: 100000

  • layoutstring

    maxLength: 100000

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

  • oneOf 1object

    추가 속성 없음

  • typestring필수

    enum: "string", "text", "url", "image_url", "html", "date", "datetime", "number", "boolean", "money"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • default지정되지 않음

    필드 유형과 일치해야 해요.

    추가 중첩 생략

  • oneOf 2object

    추가 속성 없음

  • type지정되지 않음필수

    const: "object"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultobject

    추가 중첩 생략

  • propertiesobject필수

    추가 중첩 생략

  • oneOf 3object

    추가 속성 없음

  • type지정되지 않음필수

    const: "list"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultarray

    추가 중첩 생략

  • items지정되지 않음필수

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string
  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

  • versioninteger
  • draft_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revision_idstring | null

    format: "uuid"

  • layout_revision_idstring | null

    format: "uuid"

  • published_layout_revision_idstring | null

    format: "uuid"

  • source_localestring | null
  • configured_localesarray
  • 각 항목string
  • variablesobject
  • 추가 속성모든 값
  • published_variablesobject
  • 추가 속성모든 값
  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

  • keystring필수

    enum: "A", "B", "C", "D"

  • labelstring필수

    maxLength: 120

  • allocationnumber필수

    minimum: 0 · maximum: 100

  • stepsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

성공 응답 200

여정이 업데이트됐어요.

application/json

  • valueobject
  • data지정되지 않음
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "description": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "from_local_part": "example",
  "trigger": {
    "kind": "manual",
    "connection_id": "00000000-0000-4000-8000-000000000001",
    "config": {
      "event": "example",
      "once_per_person": true,
      "reentry_days": 1
    },
    "conditions": [
      {}
    ]
  },
  "audience": {},
  "goal": {
    "kind": "none",
    "connection_id": "00000000-0000-4000-8000-000000000001",
    "config": {}
  },
  "exit": {
    "on_reply": true,
    "on_unsubscribe": true,
    "on_suppression": true,
    "event": "example"
  },
  "approval_mode": "policy",
  "api": {
    "key": "example",
    "content_mode": "code",
    "identity": "example"
  },
  "managed_content": {
    "source_locale": "example",
    "configured_locales": [
      "example"
    ],
    "fallback_locale": "example",
    "layout_id": "00000000-0000-4000-8000-000000000001",
    "localization_policy": {
      "manual_review": false
    },
    "source": {
      "subject": "example",
      "preheader": "example",
      "body_text": "example",
      "body_html": "example",
      "layout": "example",
      "variants": {},
      "variables": {}
    },
    "samples": {},
    "translations": {}
  },
  "steps": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "position": 1,
      "kind": "email",
      "name": "example",
      "config": {},
      "arms": [
        {
          "key": "A",
          "label": "example",
          "allocation": 0,
          "steps": [
            {
              "id": null,
              "position": null,
              "kind": null,
              "name": null,
              "config": null,
              "arms": null
            }
          ]
        }
      ]
    }
  ]
}'
PATCH/v1/workspaces/{workspaceId}/journeys/{journeyId}

다른 정의 필드를 유지하면서 선택한 여정 필드를 업데이트해요.

name, description, mailbox_id, from_local_part, trigger, audience, goal, exit, approval_mode, api, steps를 지원해요. trigger, goal, api, exit 객체는 한 단계 병합하고 steps는 제공된 트리를 교체해요. 오래된 편집을 거부하려면 expected_version을 포함하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • expected_versioninteger

    minimum: 1

  • namestring
  • descriptionstring
  • mailbox_idstring

    format: "uuid"

  • from_local_partstring
  • triggerobject
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject
  • 추가 속성모든 값
  • exitobject
  • 추가 속성모든 값
  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • 추가 속성모든 값
  • stepsarray
  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

  • versioninteger
  • draft_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revision_idstring | null

    format: "uuid"

  • layout_revision_idstring | null

    format: "uuid"

  • published_layout_revision_idstring | null

    format: "uuid"

  • source_localestring | null
  • configured_localesarray
  • 각 항목string
  • variablesobject
  • 추가 속성모든 값
  • published_variablesobject
  • 추가 속성모든 값
  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

  • keystring필수

    enum: "A", "B", "C", "D"

  • labelstring필수

    maxLength: 120

  • allocationnumber필수

    minimum: 0 · maximum: 100

  • stepsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

성공 응답 200

여정이 업데이트됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "expected_version": 1,
  "name": "example",
  "description": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "from_local_part": "example",
  "trigger": {},
  "audience": {},
  "goal": {},
  "exit": {},
  "approval_mode": "policy",
  "api": {},
  "steps": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "position": 1,
      "kind": "email",
      "name": "example",
      "config": {},
      "arms": [
        {
          "key": "A",
          "label": "example",
          "allocation": 0,
          "steps": [
            {
              "id": null,
              "position": null,
              "kind": null,
              "name": null,
              "config": null,
              "arms": null
            }
          ]
        }
      ]
    }
  ]
}'
DELETE/v1/workspaces/{workspaceId}/journeys/{journeyId}

deleteJourney

보관하여 기본 목록에서 여정을 제거하고 활성 등록을 중지해요. 발송 이력은 유지해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

여정이 제거됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/convert-managed

일시 중지되거나 임시저장 상태인 기존 여정을 준비된 관리형 콘텐츠로 변환해요.

단방향 변환이에요. 이메일 단계가 하나인 여정은 contract를 제공하세요. 분할 분기를 포함한 여러 이메일은 이메일마다 정확히 하나의 저장된 step_id와 준비된 HTML/Liquid 계약이 있는 step_contents를 제공하세요. 변환은 원자적이며 여정을 임시저장으로 바꿔요. 새 관리형 콘텐츠 개정판마다 자체 관리 게시 검토를 받으며 변환 중 이메일을 보내거나 게시하지 않아요. Banger는 소스 코드를 가져오거나 실행하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • expected_versioninteger필수

    minimum: 1

  • contractobject

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • body_textstring

    maxLength: 100000

  • layoutstring

    maxLength: 100000

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

  • oneOf 1object

    추가 속성 없음

  • typestring필수

    enum: "string", "text", "url", "image_url", "html", "date", "datetime", "number", "boolean", "money"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • default지정되지 않음

    필드 유형과 일치해야 해요.

    추가 중첩 생략

  • oneOf 2object

    추가 속성 없음

  • type지정되지 않음필수

    const: "object"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultobject

    추가 중첩 생략

  • propertiesobject필수

    추가 중첩 생략

  • oneOf 3object

    추가 속성 없음

  • type지정되지 않음필수

    const: "list"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultarray

    추가 중첩 생략

  • items지정되지 않음필수

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string
  • step_contentsarray

    minItems: 1

  • 각 항목object

    추가 속성 없음

  • step_idstring필수

    format: "uuid"

  • contractobject필수

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • oneOf 1지정되지 않음
  • oneOf 2지정되지 않음

성공 응답 200

같은 변환의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수
  • journey_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft"

  • review_requiredboolean필수

    const: true

  • managed_content_stepsarray필수
  • 각 항목object
  • step_idstring필수

    format: "uuid"

  • managed_content_idstring필수

    format: "uuid"

  • content_versioninteger필수
  • source_revision_idstring | null필수

    format: "uuid"

  • previewobject필수
  • subjectstring필수
  • preheaderstring
  • htmlstring필수
  • textstring필수
  • localestring필수
  • directionstring필수

    enum: "ltr", "rtl"

  • warningsarray
  • 각 항목string

    추가 중첩 생략

  • 추가 속성모든 값
  • translation_jobsarray필수
  • 각 항목string

    format: "uuid"

  • managed_content_idstring

    format: "uuid"

  • content_versioninteger
  • source_revision_idstring | null

    format: "uuid"

  • previewobject
  • subjectstring필수
  • preheaderstring
  • htmlstring필수
  • textstring필수
  • localestring필수
  • directionstring필수

    enum: "ltr", "rtl"

  • warningsarray
  • 각 항목string
  • 추가 속성모든 값
  • replayedboolean필수
  • approvalsarray필수
  • 각 항목object
  • step_idstring필수

    format: "uuid"

  • approvalobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string

    추가 중첩 생략

  • resource_scopeobject필수
  • 추가 속성array

    추가 중첩 생략

  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

    추가 중첩 생략

  • recipient_countinteger | null필수

    minimum: 0

    추가 중첩 생략

  • reasonsarray필수

    추가 중첩 생략

  • checksarray필수

    추가 중첩 생략

  • approvalobject
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/convert-managed' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '"example"'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/render

저장된 여정 이메일 단계 하나를 발송 없이 렌더링해요.

분할 분기를 포함해 여정에 이메일 단계가 여러 개면 step_id를 지정하세요. 선택한 임시저장 또는 게시된 불변 콘텐츠 개정판을 사용해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • step_idstring

    format: "uuid"

  • content_statestring

    default: "draft" · enum: "draft", "published"

  • localestring
  • timezonestring
  • sample_setstring
  • variablesobject
  • 추가 속성모든 값

성공 응답 200

렌더링된 제목, HTML, 일반 텍스트, 로캘, 개정판 ID, 추출 경고.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • subjectstring필수
  • preheaderstring
  • htmlstring필수
  • textstring필수
  • localestring필수
  • directionstring필수

    enum: "ltr", "rtl"

  • warningsarray
  • 각 항목string
  • 추가 속성모든 값
  • allOf 2object
  • source_revision_idstring필수

    format: "uuid"

  • layout_revision_idstring | null필수

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/render' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "step_id": "00000000-0000-4000-8000-000000000001",
  "content_state": "draft",
  "locale": "example",
  "timezone": "example",
  "sample_set": "example",
  "variables": {}
}'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/simulate

선택적 트리거 시점 자격과 관리형 단체 발송을 포함해 저장된 여정을 시험 실행해요.

읽기 전용 시뮬레이션이에요. enrollment를 생략하면 등록 후 미리보기이고 명시적 트리거 시나리오를 제공하면 현재 저장된 연락처 자격을 확인해요. enrollment가 있으면 scope는 from_trigger이고 첫 타임라인 항목 kind는 enrollment예요. 자격 없는 수신자는 여정 단계를 건너뛰지만 독립 단체 발송 후보는 계속돼요. assume_active는 가상 활성화를 모델링하며 관리 승인이 아니에요. 공급자 이벤트 수신/중복 제거, 전달과 지연, 과거 대상 상태, 예약 및 수신 이메일 트리거는 시뮬레이션하지 않아요. 발견된 API 여정은 특수 온보딩 upsert 경로를 사용하며 이후 전달 억제는 별도예요. 활성 API 여정은 연락처 upsert 전에 저장된 대상을 확인하고 시뮬레이션은 쓰기 없이 그 순서를 모델링해요. 따라서 억제된 API 수신자도 적격 등록 뒤 exit/suppress가 올 수 있으며 렌더링된 발송은 없고 대기 중인 단체 발송은 취소돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • atstring필수

    format: "date-time"

  • enrollment_idstring
  • content_statestring

    default: "draft" · enum: "draft", "published"

  • localestring
  • variablesobject
  • 추가 속성모든 값
  • communication_historyarray

    이 시뮬레이션 수신자의 이전 발송 또는 예약.

    maxItems: 10000

  • 각 항목string

    format: "date-time"

  • contactobject필수
  • emailstring필수

    format: "email"

  • display_namestring필수
  • attributesobject필수
  • 추가 속성모든 값
  • enrollmentobject

    최상위 at 타임스탬프의 선택적 트리거 시도예요. 저장된 연락처는 현재 구독, 억제, 대상 소속을 사용해요. 가상 API/이벤트 연락처는 명시적 subscribed 및 suppressed=false 상태와 all_subscribed 대상이 필요해요.

    추가 속성 없음

  • kindstring필수

    enum: "manual", "api", "contact_created", "audience_joined", "event"

  • eventstring

    maxLength: 200

  • assume_activeboolean

    default: false

  • contact_statusstring

    enum: "subscribed", "unsubscribed"

  • suppressedboolean
  • eventsarray

    maxItems: 1000

  • 각 항목object
  • atstring필수

    format: "date-time"

  • kindstring필수

    enum: "attributes", "reply", "unsubscribe", "suppress", "goal"

  • attributesobject
  • 추가 속성모든 값
  • broadcastsarray

    같은 수신자 타임라인에서 평가되는 저장된 예약 단체 발송 또는 명시적 관리형 콘텐츠 후보.

    maxItems: 20

  • 각 항목object

    추가 속성 없음

  • idstring

    maxLength: 100

  • atstring

    format: "date-time"

  • expires_atstring

    format: "date-time"

  • campaign_idstring

    format: "uuid"

  • content_idstring

    format: "uuid"

  • source_revision_idstring

    format: "uuid"

  • localestring
  • variablesobject
  • 추가 속성모든 값
  • oneOf 1지정되지 않음
  • oneOf 2지정되지 않음

성공 응답 200

정렬된 타임라인, 렌더링된 이메일 상세, scope, 시뮬레이션 경고예요. 등록 결과에는 eligible, eligible_assuming_activation, trigger_mismatch, event_mismatch, journey_not_active_or_reviewed, contact_unsubscribed, recipient_hash_missing, contact_suppressed, outside_journey_audience, already_enrolled, contact_predates_enrollment_scan, saved_contact_required, contact_state_unverified, audience_unverified가 있어요. 상세는 트리거와 연락처 상태 소스를 식별하며 저장된 트리거 조건을 현재 런타임이 평가하지 않는다고 표시할 수 있어요. 이미 발송 대기열에 있는 저장된 단체 발송 수신자는 already_queued이고 already_sent는 접수된 발송에만 사용해요.

application/json

  • valueobject
  • dataobject필수
  • journey_idstring필수

    format: "uuid"

  • journey_versioninteger필수
  • content_statestring필수

    enum: "draft", "published"

  • scopestring필수

    enum: "from_trigger", "after_enrollment"

  • communication_policy_versioninteger필수
  • timelinearray필수
  • 각 항목object
  • atstring필수

    format: "date-time"

  • step_idstring

    format: "uuid"

  • kindstring필수
  • outcomestring필수
  • details지정되지 않음

    결과별 시뮬레이션 증거.

  • emailsarray필수
  • 각 항목object
  • step_idstring | null필수

    format: "uuid"

  • namestring필수
  • armobject
  • split_step_idstring

    format: "uuid"

  • keystring필수
  • labelstring필수
  • sourcestring필수

    enum: "managed", "design", "inline", "empty"

  • statusstring필수

    enum: "rendered", "blocked"

  • subjectstring
  • previewstring
  • codestring
  • messagestring
  • warningsarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/simulate' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "at": "2026-01-01T00:00:00Z",
  "enrollment_id": "example",
  "content_state": "draft",
  "locale": "example",
  "variables": {},
  "communication_history": [
    "2026-01-01T00:00:00Z"
  ],
  "contact": {
    "email": "person@example.com",
    "display_name": "example",
    "attributes": {}
  },
  "enrollment": {
    "kind": "manual",
    "event": "example",
    "assume_active": false,
    "contact_status": "subscribed",
    "suppressed": true
  },
  "events": [
    {
      "at": "2026-01-01T00:00:00Z",
      "kind": "attributes",
      "attributes": {}
    }
  ],
  "broadcasts": [
    "example"
  ]
}'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/status

setJourneyStatus

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • statusstring필수

    enum: "draft", "active", "paused", "archived"

성공 응답 200

여정 상태가 업데이트됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/status' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "status": "draft"
}'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/preview

previewJourney

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

여정 대상과 준비 상태 미리보기.

application/json

  • valueobject
  • dataobject필수
  • sequence_idstring필수

    format: "uuid"

  • recipient_countinteger필수
  • sample_recipientsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring | null필수
  • stepsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

  • versioninteger
  • draft_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revision_idstring | null

    format: "uuid"

  • layout_revision_idstring | null

    format: "uuid"

  • published_layout_revision_idstring | null

    format: "uuid"

  • source_localestring | null
  • configured_localesarray
  • 각 항목string

    추가 중첩 생략

  • variablesobject
  • 추가 속성모든 값
  • published_variablesobject
  • 추가 속성모든 값
  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

  • keystring필수

    enum: "A", "B", "C", "D"

    추가 중첩 생략

  • labelstring필수

    maxLength: 120

    추가 중첩 생략

  • allocationnumber필수

    minimum: 0 · maximum: 100

    추가 중첩 생략

  • stepsarray필수

    추가 중첩 생략

  • readyboolean필수
  • exit_configobject필수

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • emailsarray필수
  • 각 항목object
  • step_idstring | null필수

    format: "uuid"

  • namestring필수
  • armobject
  • split_step_idstring

    format: "uuid"

  • keystring필수
  • labelstring필수
  • sourcestring필수

    enum: "managed", "design", "inline", "empty"

  • template_idstring

    format: "uuid"

  • managed_content_idstring

    format: "uuid"

  • subjectstring필수
  • previewstring필수
  • blockersarray필수
  • 각 항목object
  • codestring필수

    추가 중첩 생략

  • messagestring필수

    추가 중첩 생략

  • blockersarray필수
  • 각 항목object
  • codestring필수
  • messagestring필수
  • step_idstring | null필수

    format: "uuid"

  • step_namestring필수
  • armstring

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/enroll

관리 승인을 통해 명시한 연락처를 여정에 등록해요.

action_kind sequence.enroll과 payload {sequence_id, contact_ids, sequence_version?, sequence_definition_sha256?}를 사용하는 POST /approvals의 별칭이에요. 같은 Idempotency-Key를 사용하므로 두 경로 모두 같은 키로 같은 승인을 반환해요. campaigns:send와 제품이 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • contact_idsarray필수

    minItems: 1 · maxItems: 2000

  • 각 항목string

    format: "uuid"

  • sequence_versioninteger

    minimum: 1

  • sequence_definition_sha256string

    pattern: "^[a-f0-9]{64}$"

성공 응답 200

같은 Idempotency-Key로 기존 승인을 재실행했어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/enroll' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "contact_ids": [
    "00000000-0000-4000-8000-000000000001"
  ],
  "sequence_version": 1,
  "sequence_definition_sha256": "example"
}'
GET/v1/workspaces/{workspaceId}/journeys/{journeyId}/executions

listJourneyExecutions

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

여정 단계 실행.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • enrollment_idstring필수

    format: "uuid"

  • step_idstring필수

    format: "uuid"

  • positioninteger필수
  • kindstring필수
  • namestring필수
  • statusstring필수
  • attempt_countinteger필수
  • send_intent_idstring | null필수

    format: "uuid"

  • error_codestring | null필수
  • started_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/executions' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/journeys/{journeyId}/people

listJourneyPeople

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 200 · default: 50

state
query
  • valuestring

    enum: "in_progress", "finished", "goal_reached", "exited", "failed"

query
query
  • valuestring

    maxLength: 320

step_id
query
  • valuestring

    format: "uuid"

at
query
  • valuestring

    default: "now" · enum: "now", "received"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최근 진입 순으로 정렬된 여정 참여자와 각 이메일 단계 결과.

application/json

  • valueobject
  • dataobject필수
  • stepsobject필수

    누군가 도달한 모든 단계에 대해 단계 ID를 키로 해요.

  • 추가 속성object
  • receivedinteger필수
  • skippedinteger필수
  • failedinteger필수
  • nowinteger필수
  • emailsarray필수
  • 각 항목object
  • step_idstring필수

    format: "uuid"

  • namestring필수
  • subjectstring필수
  • split_step_idstring

    format: "uuid"

  • arm_keystring
  • countsobject필수
  • allinteger필수
  • in_progressinteger필수
  • finishedinteger필수
  • goal_reachedinteger필수
  • exitedinteger필수
  • failedinteger필수
  • peoplearray필수
  • 각 항목object
  • enrollment_idstring필수

    format: "uuid"

  • contact_idstring필수

    format: "uuid"

  • emailstring필수
  • display_namestring필수
  • statestring필수

    enum: "in_progress", "finished", "goal_reached", "exited", "failed"

  • stop_reasonstring
  • error_codestring
  • current_stepobject
  • idstring필수

    format: "uuid"

  • namestring필수
  • kindstring필수
  • next_action_atstring

    format: "date-time"

  • enrolled_atstring필수

    format: "date-time"

  • completed_atstring

    format: "date-time"

  • pathsobject필수
  • 추가 속성string
  • emailsobject필수

    이메일 단계 ID를 키로 하며 항목이 없는 단계는 아직 도달하지 않았어요.

  • 추가 속성object
  • statestring필수

    translating은 그 사람의 번역을 기다린다는 뜻이에요. skipped에는 제시간에 번역이 준비되지 않은 이유인 error_code translation_failed, translation_awaiting_review, translation_still_preparing이 포함되며 이정표에 먼저 도달했으면 none이에요.

    enum: "pending", "translating", "skipped", "failed", "queued", "sent", "delivered", "opened", "clicked", "replied", "bounced", "complained"

    추가 중첩 생략

  • atstring필수

    format: "date-time"

    추가 중첩 생략

  • send_intent_idstring

    GET /transactional-sends/{send_intent_id}로 이 사람이 받은 정확한 메시지를 읽어요.

    format: "uuid"

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • language지정되지 않음

    이 사람이 이메일을 받은 언어 또는 translating 중 기다리는 언어.

    추가 중첩 생략

  • variant_keystring

    단계에서 실험할 때 그 사람이 받은 이메일의 실험 변형.

    추가 중첩 생략

  • pageobject필수
  • has_moreboolean필수
  • next_cursorstring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/people?cursor=example&limit=50&state=in_progress&query=example&step_id=00000000-0000-4000-8000-000000000001&at=now' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/journeys/{journeyKey}/send

sendJourney

여정을 통해 이메일 한 통을 보내요. reply_to 기본값은 여정 메일함이며 빈 목록도 기본값을 뜻해요. 거부(4xx)는 수신자에 대해 동결된 항목을 남기지 않으므로 새 멱등성 키로 수정한 호출은 발송돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyKey
path · 필수
  • valuestring

    minLength: 1 · maxLength: 100

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject
  • to지정되지 않음

    to, cc, bcc, reply_to 수신자: 주소("a@example.com" 또는 "Pat <a@example.com>"), { email, name } 객체, 또는 둘을 섞은 목록이에요. Banger는 이메일을 소문자로 바꾼 { email, name } 객체로 저장해요. 멱등성 해시는 발송된 본문을 포함하므로 같은 형식으로 재시도하세요.

  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • oneOf 3array

    maxItems: 500

  • 각 항목지정되지 않음
  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • reply_to지정되지 않음

    to, cc, bcc, reply_to 수신자: 주소("a@example.com" 또는 "Pat <a@example.com>"), { email, name } 객체, 또는 둘을 섞은 목록이에요. Banger는 이메일을 소문자로 바꾼 { email, name } 객체로 저장해요. 멱등성 해시는 발송된 본문을 포함하므로 같은 형식으로 재시도하세요.

  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • oneOf 3array

    maxItems: 500

  • 각 항목지정되지 않음
  • oneOf 1string

    minLength: 3 · maxLength: 1000

  • oneOf 2object
  • namestring
  • emailstring필수

    format: "email"

  • expires_atstring

    format: "date-time"

  • expires_after_secondsinteger

    minimum: 1 · maximum: 604800

  • 추가 속성모든 값

성공 응답 202

여정 이메일이 접수됐어요.

application/json

  • valueobject
  • dataobject필수
  • action_kindstring필수

    enum: "transactional.send"

  • idstring

    format: "uuid"

  • send_intent_idstring

    format: "uuid"

  • provider_attempt_idstring

    format: "uuid"

  • statusstring필수

    전달에 따른 sent/queued 상태 또는 동결된 요청의 상태: deferred(정책 예약 또는 번역 대기), processing(발송 중), discarded.

  • replayedboolean
  • journey지정되지 않음필수
  • anyOf 1object
  • journey_idstring필수

    format: "uuid"

  • enrollment_idstring필수

    format: "uuid"

  • step_idstring필수

    format: "uuid"

  • step_positioninteger필수
  • originstring

    enum: "journey"

  • journey_identitystring
  • anyOf 2null
  • ignored_variablesarray필수
  • 각 항목string
  • scheduled_atstring

    format: "date-time"

  • reasonstring
  • communication_reservation_idstring

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyKey}/send' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "to": "example",
  "reply_to": "example",
  "expires_at": "2026-01-01T00:00:00Z",
  "expires_after_seconds": 1
}'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/claim

claimJourney

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • namestring필수

    minLength: 1 · maxLength: 200

  • mailbox_idstring필수

    format: "uuid"

  • delivery_classstring필수

    enum: "product", "broadcast"

  • content_modestring필수

    enum: "code", "managed"

  • template_idstring

    format: "uuid"

  • from_sampleboolean
  • variablesarray

    maxItems: 50

  • 각 항목object
  • literalstring필수

    minLength: 1 · maxLength: 10000

  • namestring필수

    pattern: "^[a-z][a-z0-9_]{0,63}$"

  • activateboolean

성공 응답 200

발견된 여정을 인수했어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/claim' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "delivery_class": "product",
  "content_mode": "code",
  "template_id": "00000000-0000-4000-8000-000000000001",
  "from_sample": true,
  "variables": [
    {
      "literal": "example",
      "name": "example"
    }
  ],
  "activate": true
}'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/merge

mergeJourneys

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • loser_idstring필수

    format: "uuid"

성공 응답 200

여정이 병합됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/merge' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "loser_id": "00000000-0000-4000-8000-000000000001"
}'
POST/v1/workspaces/{workspaceId}/journeys/{journeyId}/splits/{stepId}/decide

decideJourneySplit

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

stepId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • arm_keystring필수

성공 응답 200

승리 분기가 승격됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • descriptionstring

    maxLength: 2000

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

  • triggerobject필수
  • kindstring필수

    enum: "manual", "contact_created", "audience_joined", "event", "schedule", "inbound_email", "api"

  • connection_idstring

    format: "uuid"

  • configobject
  • eventstring
  • once_per_personboolean

    각 사람은 한 번만 진입해요. 완료 후 다시 진입하게 하려면 false로 설정하세요.

    default: true

  • reentry_daysinteger

    once_per_person이 false이면 마지막 진입 후 재진입까지 필요한 일수.

    minimum: 1 · maximum: 365

  • 추가 속성모든 값
  • conditionsarray
  • 각 항목object
  • 추가 속성모든 값
  • audienceobject
  • 추가 속성모든 값
  • goalobject

    추가 속성 없음

  • kindstring필수

    enum: "none", "event", "reply", "conversion"

  • connection_idstring

    format: "uuid"

  • configobject필수
  • 추가 속성모든 값
  • exitobject

    추가 속성 없음

  • on_replyboolean

    default: true

  • on_unsubscribeboolean

    default: true

  • on_suppressionboolean

    default: true

  • eventstring

    maxLength: 200

  • approval_modestring

    enum: "policy", "required"

  • apiobject
  • keystring

    maxLength: 100

  • content_modestring

    enum: "code", "managed"

  • identitystring

    maxLength: 300

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

  • 각 항목object

    추가 속성 없음

  • idstring

    format: "uuid"

  • positioninteger

    minimum: 1 · maximum: 100

  • kindstring필수

    enum: "email", "wait", "condition", "action", "split"

  • namestring필수

    minLength: 1 · maxLength: 200

  • managed_contentobject

    이메일 단계의 유형이 있는 원본 계약과 임시저장/게시 개정판 ID.

  • idstring

    format: "uuid"

    추가 중첩 생략

  • versioninteger

    추가 중첩 생략

  • draft_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_publication_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • published_layout_revision_idstring | null

    format: "uuid"

    추가 중첩 생략

  • source_localestring | null

    추가 중첩 생략

  • configured_localesarray

    추가 중첩 생략

  • variablesobject

    추가 중첩 생략

  • published_variablesobject

    추가 중첩 생략

  • configobject필수

    대기 단계는 선택적으로 name, path, operator(equals, not_equals, contains, exists), value가 있는 until과 필수 on_met(continue, end_journey)을 받아요. continue는 다음 알림 이메일을 건너뛰고 end_journey는 여정을 완료해요. 같은 분기에서 알림 이메일이 바로 뒤따라야 해요. 대기는 amount/unit까지 매분 현재 고객 데이터를 확인해요. 없는 필드는 알 수 없음으로 처리해 알림을 보류해요. 일반 대기와 독립 조건은 기존 동작을 유지해요. 검증된 고객 이정표로 검사 이름을 지으세요. 관리형 이메일 단계는 managed_content_id로 게시된 콘텐츠를 참조하며 활성화는 미게시 참조를 거부해요. 이메일 단계는 expires_after_seconds(1-604800)를 설정해 원래 시작부터 그 간격 후 지연 발송을 폐기할 수 있고 기본값은 7일이에요.

  • 추가 속성모든 값
  • armsarray

    minItems: 2 · maxItems: 4

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

  • api_keystring | null
  • content_modestring | null

    enum: "code", "managed", null

  • identitystring | null
  • identity_aliasesarray
  • 각 항목string
  • samplesarray
  • 각 항목object
  • 추가 속성모든 값
  • versioninteger필수

    minimum: 1

  • statsobject필수
  • 추가 속성모든 값
  • stepStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • armStatsarray
  • 각 항목object
  • 추가 속성모든 값
  • healthobject필수
  • 추가 속성모든 값
  • indicatorobject필수
  • 추가 속성모든 값
  • sparklinearray필수
  • 각 항목number
  • activated_atstring | null

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • last_activity_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/splits/{stepId}/decide' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "arm_key": "example"
}'
GET/v1/workspaces/{workspaceId}/journeys/{journeyId}/splits/recommend

recommendJourneyArms

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

journeyId
path · 필수
  • valuestring

    format: "uuid"

position
query
  • valueinteger

    minimum: 1 · maximum: 100

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

권장 테스트 분기 수와 결정 시점.

application/json

  • valueobject
  • dataobject필수
  • arms_maxinteger필수
  • weekly_arrivalsinteger필수
  • per_arm_eta_daysobject필수
  • 추가 속성number

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/journeys/{journeyId}/splits/recommend?position=1' \
  --header "Authorization: Bearer $BANGER_API_KEY"

승인

GET/v1/workspaces/{workspaceId}/approvals/{approvalId}/managed-layout-preview/{contentId}

레이아웃 승인 하나에 연결된 콘텐츠의 원본 로캘 전체 변경 전후 렌더링을 읽어요.

불변 개정판으로 재구성하고 두 원본 해시를 승인 스냅샷과 검증해요. 로캘 재정의는 받지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

sample
query
  • valuestring

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

해시 검증된 전체 변경 전후 제목, HTML, 일반 텍스트.

application/json

  • valueobject
  • dataobject필수
  • content_idstring필수

    format: "uuid"

  • sample_namestring | null필수
  • localestring필수
  • old_source_hashstring필수
  • new_source_hashstring필수
  • beforeobject필수
  • subjectstring필수
  • htmlstring필수
  • textstring필수
  • afterobject필수
  • subjectstring필수
  • htmlstring필수
  • textstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/managed-layout-preview/{contentId}?sample=example' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/approvals/{approvalId}/journey-preview

여정 활성화 또는 등록 승인의 모든 이메일을 연결된 검토 스냅샷에서 렌더링해요.

정확히 검토된 정의(불변 HTML 키의 저장된 디자인, 고정된 관리 개정판)로 샘플 개인화를 렌더링하며 실행 중 여정은 사용하지 않아요. 스냅샷이 참조하는 대상 목록, 세그먼트, 트리거/목표 연결 이름도 표시해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

단계 위치(분기 단계는 parent.arm.position)를 키로 하는 렌더링된 이메일과 대상 및 연결 이름.

application/json

  • valueobject
  • dataobject필수
  • approval_idstring필수

    format: "uuid"

  • sequence_idstring | null

    format: "uuid"

  • emailsarray필수
  • 각 항목object
  • keystring필수
  • positioninteger필수
  • parent_positioninteger | null필수
  • arm_keystring | null필수
  • sourcestring필수

    enum: "managed", "design", "inline", "empty"

  • subjectstring필수
  • preview_textstring필수
  • body_htmlstring
  • body_textstring필수
  • publishedboolean
  • errorstring
  • listsarray필수
  • 각 항목object
  • idstring필수
  • namestring필수
  • member_countinteger필수
  • segmentsarray필수
  • 각 항목object
  • idstring필수
  • namestring필수
  • connectionsarray필수
  • 각 항목object
  • idstring필수
  • namestring필수
  • image_assetsobject필수
  • 추가 속성string
  • sample_valuesboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/journey-preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/approvals

listApprovalRequests

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

status
query
  • valuestring

    enum: "undecided", "pending", "approved", "rejected", "cancelled", "expired"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 자동 및 사람 검토 감사 받은편지함.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals?status=undecided' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/approvals

createApprovalRequest

기준 Banger 작업에서는 Banger가 정확한 범위를 도출하고 워크스페이스 검토 정책을 적용하며 불변 감사 요청을 기록하고 설정 한도 내 작업을 자동 대기열에 넣어요. 관리형 이메일 원본 게시에는 action_kind managed_email.publish와 payload {content_id, expected_version}을 사용하세요. Banger는 원본 개정판/해시를 연결하고 필요할 때 사람 검토를 적용해요. 일반 승인 유형은 항상 대기 중이며 summary, capabilities, resources를 제공해야 해요. mail.draft 및 transactional.send payload의 to, cc, bcc, reply_to는 모든 RecipientInput 형식을 받고 { email, name } 객체로 저장돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header

인식된 Banger 작업에 필수이며 사용자 지정 승인 요청은 이 헤더를 사용하지 않아요.

  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • action_kindstring필수

    minLength: 1 · maxLength: 100

  • summarystring

    minLength: 1 · maxLength: 500

  • capabilitiesarray

    minItems: 1 · maxItems: 50

  • 각 항목string

    maxLength: 100

  • resourcesobject
  • 추가 속성array

    maxItems: 500

  • 각 항목string

    maxLength: 200

  • payloadobject필수
  • 추가 속성모든 값
  • expires_in_secondsinteger

    minimum: 60 · maximum: 86400 · default: 3600

  • approve_as_launcherboolean

    sequence.activate의 경우 검토 정책이 사람을 요구하면 켜기를 누른 사람이 정확히 이 요청을 승인해요. API 키와 에이전트에서는 무시되며 승인에서 기다려요.

성공 응답 201

관리 요청이 생성됐으며 이미 자동 승인돼 대기열에 있을 수도 있어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "action_kind": "example",
  "summary": "example",
  "capabilities": [
    "example"
  ],
  "resources": {},
  "payload": {},
  "expires_in_seconds": 3600,
  "approve_as_launcher": true
}'
GET/v1/workspaces/{workspaceId}/approvals/count

결정을 기다리거나 결정 전에 놓친 승인을 집계해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 범위 미결정 승인 수.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • pendinginteger필수

    minimum: 0

  • missedinteger필수

    minimum: 0

  • totalinteger필수

    minimum: 0

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/count' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/approvals/{approvalId}

getApprovalRequest

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

정확한 승인 요청과 연결된 작업 payload.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/approvals/{approvalId}/decision

decideApprovalRequest

사람의 브라우저 세션만 가능해요. 워크스페이스 API 키는 승인을 결정할 수 없어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • decisionstring필수

    enum: "approved", "rejected"

  • reasonstring

    maxLength: 500

  • expected_payload_sha256string

    검토자에게 표시한 정확한 승인 payload 해시이며 불일치하면 409를 반환해요.

    pattern: "^[a-f0-9]{64}$"

성공 응답 200

승인 결정이 기록됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/decision' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "decision": "approved",
  "reason": "example",
  "expected_payload_sha256": "example"
}'
POST/v1/workspaces/{workspaceId}/approvals/{approvalId}/cancel

cancelApprovalRequest

아직 대기 중인 승인을 실행 없이 취소해요. 사람의 브라우저 세션만 가능해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • reasonstring

    maxLength: 500

성공 응답 200

승인이 취소됐고 대기 중인 에이전트 실행은 작업 없이 재개됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/cancel' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "reason": "example"
}'
POST/v1/workspaces/{workspaceId}/approvals/{approvalId}/dismiss

dismissApprovalRequest

결정 기간을 놓친 승인을 닫아요. 사람의 브라우저 세션만 가능해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

놓친 승인이 닫히고 취소로 기록됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/dismiss' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/approvals/{approvalId}/rerequest

rerequestApprovalRequest

새 결정 기간으로 놓친 승인을 복제하고 이전 요청을 취소해요. 사람의 브라우저 세션만 가능해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 201

새 승인 요청이 생성됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/rerequest' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/approvals/{approvalId}/revise

reviseApprovalRequest

대기 중인 관리 Banger 작업을 새로 정규화한 승인으로 교체해요. 이전 요청은 취소 상태로 이력에 남아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

approvalId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • payloadobject필수
  • 추가 속성모든 값

성공 응답 201

사람 검토용 대체 승인이 생성됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/approvals/{approvalId}/revise' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "payload": {}
}'

에이전트 실행

GET/v1/workspaces/{workspaceId}/agent-runs

워크스페이스 최근 내부 에이전트 실행 목록을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최신순 최근 실행.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • execution_job_idstring

    format: "uuid"

  • requested_by_actor_idstring필수
  • taskstring필수
  • modelstring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • statusstring필수

    enum: "queued", "running", "waiting_approval", "waiting_external", "succeeded", "failed", "cancelled"

  • max_stepsinteger필수
  • max_runtime_secondsinteger필수
  • current_generationinteger필수
  • latest_checkpointobject | null
  • 추가 속성모든 값
  • latest_checkpoint_sequenceinteger필수
  • resultobject | null
  • 추가 속성모든 값
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • replayedboolean필수
  • stepsarray
  • 각 항목object
  • sequenceinteger필수

    minimum: 1

  • attempt_generationinteger필수

    minimum: 1

  • kindstring필수

    enum: "model", "tool", "checkpoint", "approval", "output", "system"

  • statusstring필수

    enum: "started", "succeeded", "failed", "waiting_approval", "waiting_external"

  • namestring | null
  • input지정되지 않음
  • output지정되지 않음
  • error_codestring | null
  • input_tokensinteger | null

    minimum: 0

  • output_tokensinteger | null

    minimum: 0

  • created_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/agent-runs?limit=50' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/agent-runs

격리된 Banger 내부 에이전트 실행을 시작해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • taskstring필수

    minLength: 1 · maxLength: 32000

  • modelstring

    minLength: 1 · maxLength: 200

  • max_stepsinteger

    minimum: 1 · maximum: 50 · default: 12

  • max_runtime_secondsinteger

    minimum: 30 · maximum: 3600 · default: 900

  • connection_toolsarray

    maxItems: 20

  • 각 항목object

    추가 속성 없음

  • connection_idstring필수

    format: "uuid"

  • adapter_keystring필수

    minLength: 1 · maxLength: 63

  • operationsarray필수

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    minLength: 1 · maxLength: 100

  • action_toolsarray

    maxItems: 6 · uniqueItems: true

  • 각 항목string

    enum: "mailbox.create", "mail.draft", "transactional.send", "template.update", "campaign.draft", "campaign.schedule"

성공 응답 200

기존 실행의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • execution_job_idstring

    format: "uuid"

  • requested_by_actor_idstring필수
  • taskstring필수
  • modelstring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • statusstring필수

    enum: "queued", "running", "waiting_approval", "waiting_external", "succeeded", "failed", "cancelled"

  • max_stepsinteger필수
  • max_runtime_secondsinteger필수
  • current_generationinteger필수
  • latest_checkpointobject | null
  • 추가 속성모든 값
  • latest_checkpoint_sequenceinteger필수
  • resultobject | null
  • 추가 속성모든 값
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • replayedboolean필수
  • stepsarray
  • 각 항목object
  • sequenceinteger필수

    minimum: 1

  • attempt_generationinteger필수

    minimum: 1

  • kindstring필수

    enum: "model", "tool", "checkpoint", "approval", "output", "system"

  • statusstring필수

    enum: "started", "succeeded", "failed", "waiting_approval", "waiting_external"

  • namestring | null
  • input지정되지 않음
  • output지정되지 않음
  • error_codestring | null
  • input_tokensinteger | null

    minimum: 0

  • output_tokensinteger | null

    minimum: 0

  • created_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/agent-runs' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "task": "example",
  "model": "example",
  "max_steps": 12,
  "max_runtime_seconds": 900,
  "connection_tools": [
    {
      "connection_id": "00000000-0000-4000-8000-000000000001",
      "adapter_key": "example",
      "operations": [
        "example"
      ]
    }
  ],
  "action_tools": [
    "mailbox.create"
  ]
}'
GET/v1/workspaces/{workspaceId}/agent-runs/{runId}

getAgentRun

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

runId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 실행, 체크포인트, 최종 결과, 정렬된 단계.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • execution_job_idstring

    format: "uuid"

  • requested_by_actor_idstring필수
  • taskstring필수
  • modelstring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • statusstring필수

    enum: "queued", "running", "waiting_approval", "waiting_external", "succeeded", "failed", "cancelled"

  • max_stepsinteger필수
  • max_runtime_secondsinteger필수
  • current_generationinteger필수
  • latest_checkpointobject | null
  • 추가 속성모든 값
  • latest_checkpoint_sequenceinteger필수
  • resultobject | null
  • 추가 속성모든 값
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • replayedboolean필수
  • stepsarray
  • 각 항목object
  • sequenceinteger필수

    minimum: 1

  • attempt_generationinteger필수

    minimum: 1

  • kindstring필수

    enum: "model", "tool", "checkpoint", "approval", "output", "system"

  • statusstring필수

    enum: "started", "succeeded", "failed", "waiting_approval", "waiting_external"

  • namestring | null
  • input지정되지 않음
  • output지정되지 않음
  • error_codestring | null
  • input_tokensinteger | null

    minimum: 0

  • output_tokensinteger | null

    minimum: 0

  • created_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/agent-runs/{runId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/agent-runs/{runId}/cancel

cancelAgentRun

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

runId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

에이전트 실행이 취소됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • execution_job_idstring

    format: "uuid"

  • requested_by_actor_idstring필수
  • taskstring필수
  • modelstring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • statusstring필수

    enum: "queued", "running", "waiting_approval", "waiting_external", "succeeded", "failed", "cancelled"

  • max_stepsinteger필수
  • max_runtime_secondsinteger필수
  • current_generationinteger필수
  • latest_checkpointobject | null
  • 추가 속성모든 값
  • latest_checkpoint_sequenceinteger필수
  • resultobject | null
  • 추가 속성모든 값
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • started_atstring | null

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • replayedboolean필수
  • stepsarray
  • 각 항목object
  • sequenceinteger필수

    minimum: 1

  • attempt_generationinteger필수

    minimum: 1

  • kindstring필수

    enum: "model", "tool", "checkpoint", "approval", "output", "system"

  • statusstring필수

    enum: "started", "succeeded", "failed", "waiting_approval", "waiting_external"

  • namestring | null
  • input지정되지 않음
  • output지정되지 않음
  • error_codestring | null
  • input_tokensinteger | null

    minimum: 0

  • output_tokensinteger | null

    minimum: 0

  • created_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/agent-runs/{runId}/cancel' \
  --header "Authorization: Bearer $BANGER_API_KEY"

에이전트

GET/v1/workspaces/{workspaceId}/agents

이 워크스페이스에서 작업할 수 있는 AI 에이전트(MCP 클라이언트) 목록을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최신순 활성 에이전트 연결.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • client_namestring필수
  • client_surfacestring필수

    클라이언트 이름과 리디렉션 URI로 확인한 OAuth 연결의 에이전트 플랫폼.

    enum: "codex", "chatgpt", "claude", "grok", "gemini", "other_agent"

  • scopesarray필수
  • 각 항목string
  • connected_atstring필수

    format: "date-time"

  • last_active_atstring필수

    format: "date-time"

  • connected_by_youboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/agents' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/agents/{agentId}/revoke

에이전트 하나의 접근을 취소해요. 약 30초 내 작동이 중지돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

agentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

에이전트 접근이 취소됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • revokedboolean필수

    const: true

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/agents/{agentId}/revoke' \
  --header "Authorization: Bearer $BANGER_API_KEY"

AI 명령

POST/v1/workspaces/{workspaceId}/ai/command-runs

읽기와 확인 필수 제안을 포함하는 메일 어시스턴트 명령 시작

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

X-Banger-Product-Id
header
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • commandTextstring필수

    minLength: 1 · maxLength: 8000

성공 응답 200

읽기 요청, 답변 또는 확인이 필요한 작업

application/json

  • valueobject
  • runIdstring필수

    format: "uuid"

  • statusstring필수

    enum: "requires_tool_results", "completed", "requires_confirmation"

  • assistantMessagestring필수
  • toolCallsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • toolNamestring필수
  • argumentsobject필수
  • 추가 속성모든 값
  • reasonstring필수
  • proposedActionsarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • toolNamestring필수
  • argumentsobject필수
  • 추가 속성모든 값
  • reasonstring필수
  • allOf 2object
  • confirmationRequiredboolean필수

    const: true

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/ai/command-runs' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "commandText": "example"
}'
POST/v1/workspaces/{workspaceId}/ai/command-runs/{runId}/tool-results

작업자 소유 명령을 원래 제품 범위에서 계속

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

runId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • toolResultsarray필수

    minItems: 1 · maxItems: 8

  • 각 항목object
  • toolCallIdstring필수

    format: "uuid"

  • toolNamestring필수

    enum: "list_mailboxes", "search_mail", "list_unread", "list_work_items", "get_thread"

  • okboolean필수
  • result지정되지 않음
  • errorstring

성공 응답 200

다음 명령 응답이며 반복 결과는 추가 추론 호출 없이 재생돼요

application/json

  • valueobject
  • runIdstring필수

    format: "uuid"

  • statusstring필수

    enum: "requires_tool_results", "completed", "requires_confirmation"

  • assistantMessagestring필수
  • toolCallsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • toolNamestring필수
  • argumentsobject필수
  • 추가 속성모든 값
  • reasonstring필수
  • proposedActionsarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • toolNamestring필수
  • argumentsobject필수
  • 추가 속성모든 값
  • reasonstring필수
  • allOf 2object
  • confirmationRequiredboolean필수

    const: true

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/ai/command-runs/{runId}/tool-results' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "toolResults": [
    {
      "toolCallId": "00000000-0000-4000-8000-000000000001",
      "toolName": "list_mailboxes",
      "ok": true,
      "result": "example",
      "error": "example"
    }
  ]
}'
POST/v1/workspaces/{workspaceId}/ai/email/revise

저장하거나 보내지 않고 검토할 수 있는 이메일 개정판을 생성해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • connection_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "openai", "anthropic"

  • modelstring

    maxLength: 200

  • instructionstring필수

    minLength: 1 · maxLength: 40000

  • currentobject필수

    추가 속성 없음

  • subjectstring필수

    maxLength: 998

  • body_textstring필수

    maxLength: 100000

  • body_htmlstring필수

    maxLength: 200000

성공 응답 200

선택된 고객 소유 AI 연결의 구조화된 개정 제안.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • dataobject필수

    추가 속성 없음

  • subjectstring필수
  • subject_optionsarray필수
  • 각 항목string
  • body_textstring필수
  • body_htmlstring필수
  • change_summarystring필수
  • provider_response_idstring
  • modelstring필수
  • usageobject
  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/ai/email/revise' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "connection_id": "00000000-0000-4000-8000-000000000001",
  "provider": "openai",
  "model": "example",
  "instruction": "example",
  "current": {
    "subject": "example",
    "body_text": "example",
    "body_html": "example"
  }
}'
GET/v1/workspaces/{workspaceId}/ai/email/capabilities

getAiEmailCapabilities

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • categorizationobject필수
  • availableboolean필수

    const: false

  • enabledboolean필수

    const: false

  • reasonstring필수

    enum: "not_configured"

  • managed지정되지 않음필수
  • oneOf 1object
  • availableboolean필수

    const: false

  • oneOf 2object
  • availableboolean필수

    const: true

  • providerstring필수

    enum: "openai", "anthropic"

  • modelstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/ai/email/capabilities' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/ai/email/generate

generateEmailWithAi

요약 요구사항으로 브랜드에 맞는 완전한 이메일 디자인을 생성해요. 제안만 해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject
  • briefstring필수

    minLength: 1 · maxLength: 40000

  • audiencestring

    maxLength: 4000

  • starterobject
  • subjectstring

    maxLength: 998

  • body_textstring

    maxLength: 100000

  • body_htmlstring

    maxLength: 200000

  • connection_idstring

    format: "uuid"

  • providerstring

    enum: "openai", "anthropic"

  • modelstring

    maxLength: 200

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • dataobject필수
  • subjectstring필수
  • subject_optionsarray필수
  • 각 항목string
  • body_textstring필수
  • body_htmlstring필수
  • change_summarystring필수
  • provider_response_idstring
  • modelstring필수
  • usageobject
  • 추가 속성모든 값
  • managedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/ai/email/generate' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "brief": "example",
  "audience": "example",
  "starter": {
    "subject": "example",
    "body_text": "example",
    "body_html": "example"
  },
  "connection_id": "00000000-0000-4000-8000-000000000001",
  "provider": "openai",
  "model": "example"
}'

분석

POST/v1/workspaces/{workspaceId}/analytics/visitor

웹사이트 방문을 로그인한 사람과 연결

로그인한 사람의 세션이 필요하며 API 키는 거부돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • visitor_idstring필수

    pattern: "^[A-Za-z0-9-]{8,64}$"

성공 응답 204

성공 응답.

응답 본문 없음.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/analytics/visitor' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "visitor_id": "example"
}'

응답 에이전트

GET/v1/workspaces/{workspaceId}/answer-agents

listAnswerAgents

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 응답 에이전트.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • identityIdstring필수

    format: "uuid"

  • workspaceIdstring필수

    format: "uuid"

  • originstring필수

    const: "internal"

  • namestring필수
  • systemPromptstring
  • enabledboolean필수
  • sendPolicystring필수

    enum: "draft_only", "reviewed_send", "direct_send"

  • mailboxIdsarray필수
  • 각 항목string

    format: "uuid"

  • createdAtstring필수

    format: "date-time"

  • updatedAtstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/answer-agents' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/answer-agents

createAnswerAgent

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 100

  • system_promptstring

    maxLength: 32000

  • enabledboolean

    default: true

  • send_policystring

    default: "draft_only" · enum: "draft_only", "reviewed_send", "direct_send"

  • mailbox_idsarray

    maxItems: 250

  • 각 항목string

    format: "uuid"

성공 응답 201

응답 에이전트가 생성됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • identityIdstring필수

    format: "uuid"

  • workspaceIdstring필수

    format: "uuid"

  • originstring필수

    const: "internal"

  • namestring필수
  • systemPromptstring
  • enabledboolean필수
  • sendPolicystring필수

    enum: "draft_only", "reviewed_send", "direct_send"

  • mailboxIdsarray필수
  • 각 항목string

    format: "uuid"

  • createdAtstring필수

    format: "date-time"

  • updatedAtstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/answer-agents' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "system_prompt": "example",
  "enabled": true,
  "send_policy": "draft_only",
  "mailbox_ids": [
    "00000000-0000-4000-8000-000000000001"
  ]
}'

자산

GET/v1/workspaces/{workspaceId}/assets

제품 이메일 이미지와 불변 공개 URL 목록을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최신 제품 이메일 이미지 최대 100개.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • filenamestring필수
  • mime_typestring필수

    enum: "image/png", "image/jpeg", "image/gif", "image/webp"

  • size_bytesinteger필수

    minimum: 1 · maximum: 2097152

  • sha256string필수

    pattern: "^[a-f0-9]{64}$"

  • created_atstring필수

    format: "date-time"

  • public_urlstring필수

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/assets' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/assets

관리형 이메일 콘텐츠용 불변 이미지를 저장해요.

PNG, JPEG, GIF, WebP 원시 바이트를 일치하는 Content-Type과 선택적 X-File-Name으로 보내거나 base64, mime_type, filename이 있는 JSON을 보내세요. 두 형식 모두 디코딩한 이미지 바이트 최대 2 MiB를 허용해요. 응답 URL은 HTML에서 직접 사용할 수 있으며 현지화 대상 레지스트리는 만들지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

image/png

  • valuestring

    format: "binary"

image/jpeg

  • valuestring

    format: "binary"

image/gif

  • valuestring

    format: "binary"

image/webp

  • valuestring

    format: "binary"

application/json

  • valueobject

    추가 속성 없음

  • base64string필수

    이미지 바이트

  • mime_typestring필수

    enum: "image/png", "image/jpeg", "image/gif", "image/webp"

  • filenamestring

    maxLength: 200

성공 응답 201

불변 공개 URL이 있는 등록된 이미지.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • filenamestring필수
  • mime_typestring필수

    enum: "image/png", "image/jpeg", "image/gif", "image/webp"

  • size_bytesinteger필수

    minimum: 1 · maximum: 2097152

  • sha256string필수

    pattern: "^[a-f0-9]{64}$"

  • created_atstring필수

    format: "date-time"

  • public_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/assets' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "base64": "example",
  "mime_type": "image/png",
  "filename": "example"
}'
GET/v1/workspaces/{workspaceId}/assets/{assetId}

제품 이메일 이미지 하나의 메타데이터와 공개 URL을 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

assetId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 이미지 메타데이터.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • filenamestring필수
  • mime_typestring필수

    enum: "image/png", "image/jpeg", "image/gif", "image/webp"

  • size_bytesinteger필수

    minimum: 1 · maximum: 2097152

  • sha256string필수

    pattern: "^[a-f0-9]{64}$"

  • created_atstring필수

    format: "date-time"

  • public_urlstring필수

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/assets/{assetId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'

자동화

POST/v1/workspaces/{workspaceId}/automation/jobs

createExecutionJob

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • kindstring필수

    minLength: 1 · maxLength: 100

  • approval_idstring

    format: "uuid"

  • capabilitiesarray필수

    API 키는 이미 가진 기능만 위임할 수 있어요.

    minItems: 1 · maxItems: 50

  • 각 항목string

    maxLength: 100

  • resourcesobject필수
  • 추가 속성array

    maxItems: 500

  • 각 항목string

    maxLength: 200

  • inputobject필수
  • 추가 속성모든 값

성공 응답 200

기존 격리 실행 작업의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • placement_idstring필수

    format: "uuid"

  • placement_generationinteger필수

    format: "int64"

  • kindstring필수
  • requested_by_actor_idstring필수
  • approval_idstring | null

    format: "uuid"

  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • statusstring필수

    enum: "queued", "leased", "succeeded", "failed", "cancelled"

  • attempt_countinteger필수
  • result지정되지 않음
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/automation/jobs' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "kind": "example",
  "approval_id": "00000000-0000-4000-8000-000000000001",
  "capabilities": [
    "example"
  ],
  "resources": {},
  "input": {}
}'
GET/v1/workspaces/{workspaceId}/automation/jobs/{jobId}

getExecutionJob

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

jobId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 기준 실행 상태.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • placement_idstring필수

    format: "uuid"

  • placement_generationinteger필수

    format: "int64"

  • kindstring필수
  • requested_by_actor_idstring필수
  • approval_idstring | null

    format: "uuid"

  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • statusstring필수

    enum: "queued", "leased", "succeeded", "failed", "cancelled"

  • attempt_countinteger필수
  • result지정되지 않음
  • error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • completed_atstring | null

    format: "date-time"

  • replayedboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/automation/jobs/{jobId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

브랜드

POST/v1/workspaces/{workspaceId}/brand/discover

discoverProductBrand

제품 웹사이트를 읽고 명시된 브랜드 값을 덮어쓰지 않고 발견한 브랜드 제안을 저장해요. 캠페인 쓰기 범위가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

product_id
query · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • sourcesobject필수
  • 추가 속성string

    enum: "product", "discovery", "default"

  • discovery_domainstring | null필수
  • missingarray필수
  • 각 항목string
  • product_kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • discovery_statusstring | null
  • product_idstring필수

    format: "uuid"

  • product_domainstring | null필수
  • reviewed_atstring | null

    format: "date-time"

  • discovery_attempted_atstring | null

    format: "date-time"

  • logo_candidatesarray

    제품 사이트(헤더, 바닥글, 선언된 로고)에서 발견한 로고 이미지로 한 번 클릭해 바꿀 수 있어요.

  • 각 항목string
  • mediaobject필수
  • art_base_urlstring필수
  • hero_image_urlstring
  • email_fontsobject필수
  • headingobject필수
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

  • bodyobject필수
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/brand/discover?product_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/brand

getBrand

필드별 소스가 있는 확정된 제품 브랜드 키트.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • sourcesobject필수
  • 추가 속성string

    enum: "product", "discovery", "default"

  • discovery_domainstring | null필수
  • missingarray필수
  • 각 항목string
  • product_kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • discovery_statusstring | null
  • product_idstring필수

    format: "uuid"

  • product_domainstring | null필수
  • reviewed_atstring | null

    format: "date-time"

  • discovery_attempted_atstring | null

    format: "date-time"

  • logo_candidatesarray

    제품 사이트(헤더, 바닥글, 선언된 로고)에서 발견한 로고 이미지로 한 번 클릭해 바꿀 수 있어요.

  • 각 항목string
  • mediaobject필수
  • art_base_urlstring필수
  • hero_image_urlstring
  • email_fontsobject필수
  • headingobject필수
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

  • bodyobject필수
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/brand' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/brand

updateBrand

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • value지정되지 않음
  • anyOf 1object
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • anyOf 2object
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • sourcesobject필수
  • 추가 속성string

    enum: "product", "discovery", "default"

  • discovery_domainstring | null필수
  • missingarray필수
  • 각 항목string
  • product_kindstring필수

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • discovery_statusstring | null
  • product_idstring필수

    format: "uuid"

  • product_domainstring | null필수
  • reviewed_atstring | null

    format: "date-time"

  • discovery_attempted_atstring | null

    format: "date-time"

  • logo_candidatesarray

    제품 사이트(헤더, 바닥글, 선언된 로고)에서 발견한 로고 이미지로 한 번 클릭해 바꿀 수 있어요.

  • 각 항목string
  • mediaobject필수
  • art_base_urlstring필수
  • hero_image_urlstring
  • email_fontsobject필수
  • headingobject필수
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

  • bodyobject필수
  • stackstring필수
  • fontstring필수
  • web_fontboolean필수
  • clientsarray필수
  • 각 항목object
  • clientstring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • fontstring필수

    추가 중첩 생략

  • web_fontboolean필수

    추가 중첩 생략

  • fallbackboolean필수

    추가 중첩 생략

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/brand' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "company_name": "example",
  "logo_url": "example",
  "wordmark_url": "example",
  "website_url": "example",
  "primary_color": "example",
  "accent_color": "example",
  "background_color": "example",
  "surface_color": "example",
  "text_color": "example",
  "muted_text_color": "example",
  "heading_font_family": "example",
  "body_font_family": "example",
  "tone": "example",
  "footer_address": "example",
  "email_style": "example"
}'
PATCH/v1/workspaces/{workspaceId}/brand/patch

patchProductBrandFooter

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • brandobject필수

    추가 속성 없음

  • company_namestring

    minLength: 0 · maxLength: 2000

  • logo_urlstring

    minLength: 0 · maxLength: 2000

  • wordmark_urlstring

    minLength: 0 · maxLength: 2000

  • website_urlstring

    minLength: 0 · maxLength: 2000

  • primary_colorstring

    minLength: 0 · maxLength: 2000

  • accent_colorstring

    minLength: 0 · maxLength: 2000

  • background_colorstring

    minLength: 0 · maxLength: 2000

  • surface_colorstring

    minLength: 0 · maxLength: 2000

  • text_colorstring

    minLength: 0 · maxLength: 2000

  • muted_text_colorstring

    minLength: 0 · maxLength: 2000

  • heading_font_familystring

    minLength: 0 · maxLength: 2000

  • body_font_familystring

    minLength: 0 · maxLength: 2000

  • tonestring

    minLength: 0 · maxLength: 2000

  • footer_addressstring

    minLength: 0 · maxLength: 2000

성공 응답 200

기준 다시 읽기 또는 멱등 수신 확인이에요. 공급자 접수는 sent이며 delivered는 전달 이벤트가 필요하고 받은편지함 도착을 증명하지 않아요.

application/json

  • valueobject
  • dataobject필수
  • brandobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • sourcesobject필수
  • 추가 속성string

    enum: "product", "discovery", "default"

  • discovery_domainstring | null필수
  • missingarray필수
  • 각 항목string
  • product_kindstring

    enum: "product", "store", "brand", "newsletter", "company", "other"

  • discovery_statusstring | null
  • product_idstring필수

    format: "uuid"

  • product_domainstring | null
  • reviewed_atstring | null

    format: "date-time"

  • discovery_attempted_atstring | null

    format: "date-time"

  • hero_image_urlstring | null
  • replayedboolean필수

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/brand/patch' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "brand": {
    "company_name": "example",
    "logo_url": "example",
    "wordmark_url": "example",
    "website_url": "example",
    "primary_color": "example",
    "accent_color": "example",
    "background_color": "example",
    "surface_color": "example",
    "text_color": "example",
    "muted_text_color": "example",
    "heading_font_family": "example",
    "body_font_family": "example",
    "tone": "example",
    "footer_address": "example"
  }
}'

변경 사항

GET/v1/workspaces/{workspaceId}/changes

listChanges

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

after_revision
query · 필수
  • valueinteger

    format: "int64" · minimum: 0

limit
query
  • valueinteger

    minimum: 1 · maximum: 500 · default: 200

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

클라이언트 개정판 이후 순서별 무효화.

application/json

  • valueobject
  • dataobject필수
  • current_revisioninteger필수

    format: "int64"

  • changesarray필수
  • 각 항목object
  • revisioninteger필수

    format: "int64"

  • topicsarray필수
  • 각 항목string

    enum: "mailboxes", "threads", "messages", "work", "drafts", "contacts", "campaigns", "deliverability"

  • mailbox_idsarray
  • 각 항목string

    format: "uuid"

  • created_atstring필수

    format: "date-time"

  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/changes?after_revision=0&limit=200' \
  --header "Authorization: Bearer $BANGER_API_KEY"

명령

POST/v1/workspaces/{workspaceId}/commands

createCommand

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject
  • typestring필수

    enum: "mark_read", "mark_unread", "archive", "unarchive", "trash", "restore", "spam", "not_spam", "star", "unstar", "add_label", "remove_label", "move", "assign", "set_work_status"

  • targetobject필수
  • thread_idstring필수

    format: "uuid"

  • parametersobject
  • 추가 속성모든 값

성공 응답 202

명령이 확정되고 공급자 실행 대기열에 들어갔어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • typestring필수
  • statusstring필수

    enum: "accepted", "executing", "succeeded", "failed"

  • workspace_revisioninteger필수

    format: "int64"

  • created_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/commands' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "type": "mark_read",
  "target": {
    "thread_id": "00000000-0000-4000-8000-000000000001"
  },
  "parameters": {}
}'
GET/v1/workspaces/{workspaceId}/commands/{commandId}

getCommand

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

commandId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

영구 저장된 공급자 명령 상태.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • typestring필수
  • statusstring필수

    enum: "accepted", "executing", "succeeded", "failed"

  • workspace_revisioninteger필수

    format: "int64"

  • created_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/commands/{commandId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

소통 정책

GET/v1/workspaces/{workspaceId}/communication-policy

제품 전체 수신자 충돌, 빈도, 전달 시간대 정책을 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

버전이 있는 소통 정책.

application/json

  • valueobject
  • dataobject필수
  • versioninteger필수
  • policyobject필수

    추가 속성 없음

  • conflictstring필수

    enum: "defer", "discard"

  • minimumIntervalSecondsinteger

    minimum: 0 · maximum: 604800

  • capsarray

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • countinteger필수

    minimum: 1

  • windowSecondsinteger필수

    minimum: 1 · maximum: 2592000

  • windowobject

    추가 속성 없음

  • startstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • endstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • timeZonestring필수
  • weekdaysarray

    maxItems: 7

  • 각 항목integer

    minimum: 0 · maximum: 6

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/communication-policy' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
PUT/v1/workspaces/{workspaceId}/communication-policy

낙관적 버전 검사로 제품 소통 정책을 저장해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • expected_versioninteger필수

    minimum: 1

  • policyobject필수

    추가 속성 없음

  • conflictstring필수

    enum: "defer", "discard"

  • minimumIntervalSecondsinteger

    minimum: 0 · maximum: 604800

  • capsarray

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • countinteger필수

    minimum: 1

  • windowSecondsinteger필수

    minimum: 1 · maximum: 2592000

  • windowobject

    추가 속성 없음

  • startstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • endstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • timeZonestring필수
  • weekdaysarray

    maxItems: 7

  • 각 항목integer

    minimum: 0 · maximum: 6

성공 응답 200

업데이트된 버전 정책.

application/json

  • valueobject
  • dataobject필수
  • versioninteger필수
  • policyobject필수

    추가 속성 없음

  • conflictstring필수

    enum: "defer", "discard"

  • minimumIntervalSecondsinteger

    minimum: 0 · maximum: 604800

  • capsarray

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • countinteger필수

    minimum: 1

  • windowSecondsinteger필수

    minimum: 1 · maximum: 2592000

  • windowobject

    추가 속성 없음

  • startstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • endstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • timeZonestring필수
  • weekdaysarray

    maxItems: 7

  • 각 항목integer

    minimum: 0 · maximum: 6

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/communication-policy' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "expected_version": 1,
  "policy": {
    "conflict": "defer",
    "minimumIntervalSeconds": 0,
    "caps": [
      {
        "count": 1,
        "windowSeconds": 1
      }
    ],
    "window": {
      "start": "example",
      "end": "example",
      "timeZone": "example",
      "weekdays": [
        0
      ]
    }
  }
}'
POST/v1/workspaces/{workspaceId}/communication-policy/simulate

수신자 한 명의 고정 발송 요청에 대한 읽기 전용 정책 시뮬레이션.

예약을 바꾸거나 종속 여정 단계를 이동하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • policyobject

    추가 속성 없음

  • conflictstring필수

    enum: "defer", "discard"

  • minimumIntervalSecondsinteger

    minimum: 0 · maximum: 604800

  • capsarray

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • countinteger필수

    minimum: 1

  • windowSecondsinteger필수

    minimum: 1 · maximum: 2592000

  • windowobject

    추가 속성 없음

  • startstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • endstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • timeZonestring필수
  • weekdaysarray

    maxItems: 7

  • 각 항목integer

    minimum: 0 · maximum: 6

  • historyarray

    maxItems: 10000

  • 각 항목string

    format: "date-time"

  • requestsarray필수

    maxItems: 1000

  • 각 항목object
  • idstring필수
  • atstring필수

    format: "date-time"

  • categorystring필수

    enum: "urgent", "product", "promotional"

  • source_kindstring필수

    enum: "journey", "broadcast"

  • expiresAtstring

    format: "date-time"

  • deliveryBlockedboolean

성공 응답 200

요청별 발송, 지연, 폐기 결정 타임라인과 이유.

application/json

  • valueobject
  • dataobject필수
  • policyobject필수

    추가 속성 없음

  • conflictstring필수

    enum: "defer", "discard"

  • minimumIntervalSecondsinteger

    minimum: 0 · maximum: 604800

  • capsarray

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • countinteger필수

    minimum: 1

  • windowSecondsinteger필수

    minimum: 1 · maximum: 2592000

  • windowobject

    추가 속성 없음

  • startstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • endstring필수

    pattern: "^([01][0-9]|2[0-3]):[0-5][0-9]$"

  • timeZonestring필수
  • weekdaysarray

    maxItems: 7

  • 각 항목integer

    minimum: 0 · maximum: 6

  • policy_versioninteger | null필수
  • timelinearray필수
  • 각 항목object
  • idstring필수
  • source_kindstring필수

    enum: "journey", "broadcast"

  • requested_atstring필수

    format: "date-time"

  • actionstring필수

    enum: "send", "defer", "discard"

  • atstring필수

    format: "date-time"

  • reasonstring필수
  • scopestring필수

    enum: "one_recipient_fixed_send_requests"

  • warningsarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/communication-policy/simulate' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "policy": {
    "conflict": "defer",
    "minimumIntervalSeconds": 0,
    "caps": [
      {
        "count": 1,
        "windowSeconds": 1
      }
    ],
    "window": {
      "start": "example",
      "end": "example",
      "timeZone": "example",
      "weekdays": [
        0
      ]
    }
  },
  "history": [
    "2026-01-01T00:00:00Z"
  ],
  "requests": [
    {
      "id": "example",
      "at": "2026-01-01T00:00:00Z",
      "category": "urgent",
      "source_kind": "journey",
      "expiresAt": "2026-01-01T00:00:00Z",
      "deliveryBlocked": true
    }
  ]
}'

콘텐츠 설정

GET/v1/workspaces/{workspaceId}/content-settings

제품 수준 로캘, 대체 언어, 시간대, 용어집, 검토 설정을 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 콘텐츠 설정.

application/json

  • valueobject
  • dataobject필수
  • source_localestring필수
  • configured_localesarray필수
  • 각 항목string
  • fallback_chainarray필수
  • 각 항목string
  • timezonestring필수
  • glossaryobject필수
  • 추가 속성string
  • manual_translation_reviewboolean필수
  • versioninteger필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/content-settings' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
PUT/v1/workspaces/{workspaceId}/content-settings

낙관적 버전 검사로 제품 수준 콘텐츠 설정을 저장해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • source_localestring필수
  • configured_localesarray필수
  • 각 항목string
  • fallback_chainarray필수
  • 각 항목string
  • timezonestring필수
  • glossaryobject필수
  • 추가 속성string
  • manual_translation_reviewboolean필수
  • expected_versioninteger필수

    minimum: 0

성공 응답 200

저장된 콘텐츠 설정.

application/json

  • valueobject
  • dataobject필수
  • source_localestring필수
  • configured_localesarray필수
  • 각 항목string
  • fallback_chainarray필수
  • 각 항목string
  • timezonestring필수
  • glossaryobject필수
  • 추가 속성string
  • manual_translation_reviewboolean필수
  • versioninteger필수

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/content-settings' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "source_locale": "example",
  "configured_locales": [
    "example"
  ],
  "fallback_chain": [
    "example"
  ],
  "timezone": "example",
  "glossary": {},
  "manual_translation_review": true,
  "expected_version": 0
}'

전달률

GET/v1/workspaces/{workspaceId}/deliverability

getDeliverabilitySummary

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

since
query
  • valuestring

    format: "date-time"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • counting_basisstring

    enum: "recipients", "events"

  • simulator_eventsinteger
  • sincestring필수

    format: "date-time"

  • generated_atstring필수

    format: "date-time"

  • totalsobject필수
  • sent_countinteger

    format: "int64"

  • delivered_countinteger

    format: "int64"

  • deferred_countinteger

    format: "int64"

  • bounced_countinteger

    format: "int64"

  • complained_countinteger

    format: "int64"

  • opened_countinteger

    format: "int64"

  • clicked_countinteger

    format: "int64"

  • unsubscribed_countinteger

    format: "int64"

  • failed_countinteger

    format: "int64"

  • suppressed_countinteger

    format: "int64"

  • last_event_atstring | null

    format: "date-time"

  • 추가 속성모든 값
  • time_seriesarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • sent_countinteger

    format: "int64"

  • delivered_countinteger

    format: "int64"

  • deferred_countinteger

    format: "int64"

  • bounced_countinteger

    format: "int64"

  • complained_countinteger

    format: "int64"

  • opened_countinteger

    format: "int64"

  • clicked_countinteger

    format: "int64"

  • unsubscribed_countinteger

    format: "int64"

  • failed_countinteger

    format: "int64"

  • suppressed_countinteger

    format: "int64"

  • last_event_atstring | null

    format: "date-time"

  • 추가 속성모든 값
  • allOf 2object
  • bucketstring필수

    format: "date"

  • providersarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • sent_countinteger

    format: "int64"

  • delivered_countinteger

    format: "int64"

  • deferred_countinteger

    format: "int64"

  • bounced_countinteger

    format: "int64"

  • complained_countinteger

    format: "int64"

  • opened_countinteger

    format: "int64"

  • clicked_countinteger

    format: "int64"

  • unsubscribed_countinteger

    format: "int64"

  • failed_countinteger

    format: "int64"

  • suppressed_countinteger

    format: "int64"

  • last_event_atstring | null

    format: "date-time"

  • 추가 속성모든 값
  • allOf 2object
  • provider_connection_idstring | null

    format: "uuid"

  • providerstring필수
  • display_namestring필수
  • ownershipstring필수
  • statusstring필수
  • recipient_domainsarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • sent_countinteger

    format: "int64"

  • delivered_countinteger

    format: "int64"

  • deferred_countinteger

    format: "int64"

  • bounced_countinteger

    format: "int64"

  • complained_countinteger

    format: "int64"

  • opened_countinteger

    format: "int64"

  • clicked_countinteger

    format: "int64"

  • unsubscribed_countinteger

    format: "int64"

  • failed_countinteger

    format: "int64"

  • suppressed_countinteger

    format: "int64"

  • last_event_atstring | null

    format: "date-time"

  • 추가 속성모든 값
  • allOf 2object
  • recipient_domainstring필수
  • sending_streamsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • domainstring필수
  • stream_kindstring필수
  • display_namestring필수
  • statusstring필수
  • status_reasonstring | null
  • provider_statusstring | null
  • required_recordsinteger필수

    format: "int64"

  • verified_recordsinteger필수

    format: "int64"

  • pending_recordsinteger필수

    format: "int64"

  • error_recordsinteger필수

    format: "int64"

  • last_checked_atstring | null

    format: "date-time"

  • feedback_pipelineobject필수

    추가 속성 없음

  • statusstring필수

    enum: "healthy", "degraded", "unproven"

  • eligible_attemptsinteger필수

    format: "int64"

  • unmatched_attemptsinteger필수

    format: "int64"

  • last_receipt_atstring | null

    format: "date-time"

  • issuesarray필수
  • 각 항목object
  • severitystring필수

    enum: "warning", "critical"

  • codestring필수
  • titlestring필수
  • detailstring필수
  • resource_kindstring필수
  • resource_idstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/deliverability?since=2026-01-01T00%3A00%3A00Z' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/deliverability/resolutions

listDeliverabilityResolutions

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

since
query
  • valuestring

    format: "date-time"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수
  • reasonstring필수

    enum: "complaint", "hard_bounce"

  • countinteger필수
  • domainsarray필수
  • 각 항목string
  • statusstring필수
  • decidedAtstring | null

    format: "date-time"

  • titlestring필수
  • explanationstring필수
  • impactstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/deliverability/resolutions?since=2026-01-01T00%3A00%3A00Z' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/deliverability/resolutions

decideDeliverabilityResolution

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

since
query
  • valuestring

    format: "date-time"

요청 본문 필수

application/json

  • valueobject
  • idstring필수

    minLength: 64 · maxLength: 64

  • decisionstring필수

    enum: "approved", "rejected"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수

    enum: "approved", "rejected"

  • approvalIdstring필수

    format: "uuid"

  • replayedboolean
  • countinteger

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/deliverability/resolutions?since=2026-01-01T00%3A00%3A00Z' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "id": "examplexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "decision": "approved"
}'

문서

GET/v1/workspaces/{workspaceId}/documents

listDocuments

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

mailbox_id
query
  • valuestring

    format: "uuid"

q
query
  • valuestring

    maxLength: 512

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • message_idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring필수

    format: "uuid"

  • filenamestring필수
  • content_typestring필수
  • size_bytesinteger필수
  • sent_atstring필수

    format: "date-time"

  • subjectstring필수
  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/documents?cursor=example&limit=50&mailbox_id=00000000-0000-4000-8000-000000000001&q=example' \
  --header "Authorization: Bearer $BANGER_API_KEY"

이메일 미리보기

GET/v1/workspaces/{workspaceId}/email-preview

발송 없이 저장된 이메일을 렌더링해 시각적으로 개선

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

kind
query · 필수
  • valuestring

    enum: "template", "broadcast", "journey"

id
query · 필수
  • valuestring

    format: "uuid"

locale
query

관리형 단체 발송 미리보기의 선택적 BCP 47 로캘.

  • valuestring

    maxLength: 64

variant
query

관리형 단체 발송의 선택적 실험 변형 키.

  • valuestring

    maxLength: 40

x-banger-product-id
header · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

저장된 이메일 콘텐츠와 여정 순서

application/json

  • valueobject
  • dataobject필수
  • resource_kindstring필수

    enum: "template", "broadcast", "journey"

  • resource_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수
  • selected_email_keystring
  • itemsarray필수
  • 각 항목object
  • keystring필수
  • step_idstring

    이 항목이 표시하는 여정 단계이며 저장된 여정의 steps[].id예요.

    format: "uuid"

  • kindstring필수
  • namestring필수
  • subjectstring
  • preview_textstring
  • body_htmlstring
  • body_textstring
  • detailstring
  • revision_idstring

    렌더링된 관리형 단체 발송의 정확한 원본 개정판.

    format: "uuid"

  • revision_statusstring

    렌더링된 개정판이 미게시 저장 콘텐츠인지 게시된 콘텐츠인지 여부.

    enum: "draft", "published"

  • sample_valuesboolean필수
  • image_assetsobject
  • 추가 속성string

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/email-preview?kind=template&id=00000000-0000-4000-8000-000000000001&locale=example&variant=example' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-product-id: 00000000-0000-4000-8000-000000000001'

이벤트

POST/v1/workspaces/{workspaceId}/events

제품 여정에 사용자 지정 이벤트를 보내요.

automation:execute가 필요해요. 이벤트는 첫 이벤트에 생성되고 다른 웹훅과 함께 표시되어 여정이 connection_id를 지정할 수 있는 제품의 암시적 "Banger API events" 수신 웹훅 또는 같은 제품의 다른 활성 수신 웹훅 connection_id에 도착해요. 이후 해당 웹훅 URL에 게시한 이벤트와 똑같이 처리돼요. 트리거가 이벤트 유형과 연결을 지정한 활성 여정은 email의 사람(또는 설정된 대상)을 등록하고 목표가 이를 지정한 여정은 그 사람의 실행을 중지해요. 이벤트는 이미 승인된 여정을 시작해 이메일을 보낼 수 있어요. 이벤트 id는 호출을 멱등하게 만들어요. 같은 본문으로 반복하면 duplicate true를 반환하고 다른 본문으로 재사용하면 409 webhook_event_id_reused를 반환해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

x-banger-product-id
header

API 키가 이미 제품에 연결되지 않았다면 활성 제품이 여러 개인 워크스페이스에서 필수예요.

  • valuestring

    format: "uuid"

Idempotency-Key
header

본문에 id가 없을 때 이벤트 ID이며 둘 중 하나는 필수예요.

  • valuestring

    minLength: 1 · maxLength: 500

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • typestring필수

    signup처럼 여정 트리거와 목표가 일치시키는 이벤트 이름.

    pattern: "^[A-Za-z0-9_.:-]{1,120}$"

  • id지정되지 않음

    호출 시스템의 안정적인 이벤트 ID이며 없으면 Idempotency-Key 헤더가 id예요.

  • oneOf 1string

    minLength: 1 · maxLength: 500

  • oneOf 2number
  • emailstring

    이벤트 대상 사람.

    format: "email" · maxLength: 320

  • namestring

    그 사람의 표시 이름.

    maxLength: 200

  • occurred_atstring

    이벤트 발생 시점이며 기본값은 Banger 수신 시점이에요.

    format: "date-time"

  • attributesobject

    여정 조건과 이메일 콘텐츠가 읽을 수 있는 값이며 텍스트 값은 최대 500자예요.

  • 추가 속성지정되지 않음
  • oneOf 1string

    maxLength: 500

  • oneOf 2number
  • oneOf 3boolean
  • connection_idstring

    같은 제품의 활성 수신 웹훅 연결이며 기본값은 Banger API events 웹훅이에요.

    format: "uuid"

성공 응답 202

이벤트가 접수됐거나 이 id로 이미 접수됐어요.

application/json

  • valueobject
  • dataobject필수
  • acceptedboolean필수

    const: true

  • duplicateboolean필수

    이 id가 이미 접수됐으면 true이며 다시 실행된 것은 없어요.

  • connection_idstring필수

    이벤트가 도착한 연결.

    format: "uuid"

  • sequence_enrollments_createdinteger필수

    minimum: 0

  • sequence_enrollments_stoppedinteger필수

    여정 목표로 중지된 실행.

    minimum: 0

  • sequence_matches_ignoredinteger필수

    이벤트를 사용할 수 없었던 일치 여정이며 이벤트에 이메일이 없는데 사람을 등록하는 경우 등이에요.

    minimum: 0

  • sequence_goals_predating_enrollmentinteger필수

    중지할 실행이 시작되기 전에 발생한 목표.

    minimum: 0

  • sequence_enrollments_rejectedarray

    이벤트 데이터가 이메일을 채울 수 없어 이 사람을 등록하지 않은 여정.

  • 각 항목object
  • journey_idstring필수

    format: "uuid"

  • journey_namestring필수
  • fieldsarray필수
  • 각 항목object
  • namestring필수

    이메일에 필요한 연락처 필드.

    추가 중첩 생략

  • problemstring필수

    enum: "missing", "not_https"

    추가 중첩 생략

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/events' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-product-id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "type": "example",
  "id": "example",
  "email": "person@example.com",
  "name": "example",
  "occurred_at": "2026-01-01T00:00:00Z",
  "attributes": {},
  "connection_id": "00000000-0000-4000-8000-000000000001"
}'

실험

GET/v1/workspaces/{workspaceId}/experiments

listExperiments

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • namestring필수

    minLength: 1 · maxLength: 200

  • subject_kindstring필수

    enum: "campaign", "sequence_step", "automation_rule"

  • subject_idstring필수

    minLength: 1 · maxLength: 200

  • dimensionstring필수

    enum: "subject", "design", "content", "from_name"

  • variantsarray필수

    minItems: 2 · maxItems: 4

  • 각 항목object
  • keystring

    pattern: "^[a-z0-9][a-z0-9_-]{0,39}$"

  • labelstring

    maxLength: 120

  • subjectstring

    minLength: 1 · maxLength: 998

  • template_idstring

    format: "uuid"

  • contentobject
  • 추가 속성string

    추가 중첩 생략

  • from_namestring

    minLength: 1 · maxLength: 200

  • allocationarray
  • 각 항목integer

    minimum: 1 · maximum: 100

  • sample_percentinteger

    minimum: 5 · maximum: 100 · default: 100

  • primary_metricstring

    default: "human_click" · enum: "human_open", "human_click", "reply", "conversion"

  • min_sample_per_arminteger

    minimum: 10 · maximum: 100000 · default: 100

  • decisionobject
  • modestring

    enum: "manual", "auto"

  • after_hoursinteger

    minimum: 1 · maximum: 336

  • confidencenumber

    minimum: 0.8 · maximum: 0.99

  • guardrailsobject
  • max_complaint_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • max_unsubscribe_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • statusstring필수

    enum: "running", "decided", "stopped"

  • winner_keystring | null
  • decided_bystring | null
  • decision_basisstring | null

    enum: "confident", "deadline", "guardrail", "manual", null

  • decision_confidencenumber | null
  • decision_reasonstring | null
  • started_atstring

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/experiments' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/experiments

createExperiment

단체 발송, 여정 단계 또는 자동화 규칙에서 A/B 테스트를 시작해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    변형 payload는 dimension과 일치해야 해요: subject, template_id(디자인), content, from_name. 키는 고유해야 하며 holdback일 수 없어요. 할당은 변형마다 백분율을 포함하고 합계가 100이어야 하며 생략하면 균등 분할해요.

  • namestring필수

    minLength: 1 · maxLength: 200

  • subject_kindstring필수

    enum: "campaign", "sequence_step", "automation_rule"

  • subject_idstring필수

    minLength: 1 · maxLength: 200

  • dimensionstring필수

    enum: "subject", "design", "content", "from_name"

  • variantsarray필수

    minItems: 2 · maxItems: 4

  • 각 항목object
  • keystring

    pattern: "^[a-z0-9][a-z0-9_-]{0,39}$"

  • labelstring

    maxLength: 120

  • subjectstring

    minLength: 1 · maxLength: 998

  • template_idstring

    format: "uuid"

  • contentobject
  • 추가 속성string
  • from_namestring

    minLength: 1 · maxLength: 200

  • allocationarray
  • 각 항목integer

    minimum: 1 · maximum: 100

  • sample_percentinteger

    minimum: 5 · maximum: 100 · default: 100

  • primary_metricstring

    default: "human_click" · enum: "human_open", "human_click", "reply", "conversion"

  • min_sample_per_arminteger

    minimum: 10 · maximum: 100000 · default: 100

  • decisionobject
  • modestring

    enum: "manual", "auto"

  • after_hoursinteger

    minimum: 1 · maximum: 336

  • confidencenumber

    minimum: 0.8 · maximum: 0.99

  • guardrailsobject
  • max_complaint_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • max_unsubscribe_ratenumber

    maximum: 1 · exclusiveMinimum: 0

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • namestring필수

    minLength: 1 · maxLength: 200

  • subject_kindstring필수

    enum: "campaign", "sequence_step", "automation_rule"

  • subject_idstring필수

    minLength: 1 · maxLength: 200

  • dimensionstring필수

    enum: "subject", "design", "content", "from_name"

  • variantsarray필수

    minItems: 2 · maxItems: 4

  • 각 항목object
  • keystring

    pattern: "^[a-z0-9][a-z0-9_-]{0,39}$"

  • labelstring

    maxLength: 120

  • subjectstring

    minLength: 1 · maxLength: 998

  • template_idstring

    format: "uuid"

  • contentobject
  • 추가 속성string
  • from_namestring

    minLength: 1 · maxLength: 200

  • allocationarray
  • 각 항목integer

    minimum: 1 · maximum: 100

  • sample_percentinteger

    minimum: 5 · maximum: 100 · default: 100

  • primary_metricstring

    default: "human_click" · enum: "human_open", "human_click", "reply", "conversion"

  • min_sample_per_arminteger

    minimum: 10 · maximum: 100000 · default: 100

  • decisionobject
  • modestring

    enum: "manual", "auto"

  • after_hoursinteger

    minimum: 1 · maximum: 336

  • confidencenumber

    minimum: 0.8 · maximum: 0.99

  • guardrailsobject
  • max_complaint_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • max_unsubscribe_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • statusstring필수

    enum: "running", "decided", "stopped"

  • winner_keystring | null
  • decided_bystring | null
  • decision_basisstring | null

    enum: "confident", "deadline", "guardrail", "manual", null

  • decision_confidencenumber | null
  • decision_reasonstring | null
  • started_atstring

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/experiments' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "subject_kind": "campaign",
  "subject_id": "example",
  "dimension": "subject",
  "variants": [
    {
      "key": "example",
      "label": "example",
      "subject": "example",
      "template_id": "00000000-0000-4000-8000-000000000001",
      "content": {},
      "from_name": "example"
    }
  ],
  "allocation": [
    1
  ],
  "sample_percent": 100,
  "primary_metric": "human_click",
  "min_sample_per_arm": 100,
  "decision": {
    "mode": "manual",
    "after_hours": 1,
    "confidence": 0.8
  },
  "guardrails": {
    "max_complaint_rate": 1,
    "max_unsubscribe_rate": 1
  }
}'
GET/v1/workspaces/{workspaceId}/experiments/{experimentId}

getExperiment

변형별 결과와 제안된 승자가 있는 실험.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

experimentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • namestring필수

    minLength: 1 · maxLength: 200

  • subject_kindstring필수

    enum: "campaign", "sequence_step", "automation_rule"

  • subject_idstring필수

    minLength: 1 · maxLength: 200

  • dimensionstring필수

    enum: "subject", "design", "content", "from_name"

  • variantsarray필수

    minItems: 2 · maxItems: 4

  • 각 항목object
  • keystring

    pattern: "^[a-z0-9][a-z0-9_-]{0,39}$"

  • labelstring

    maxLength: 120

  • subjectstring

    minLength: 1 · maxLength: 998

  • template_idstring

    format: "uuid"

  • contentobject
  • 추가 속성string

    추가 중첩 생략

  • from_namestring

    minLength: 1 · maxLength: 200

  • allocationarray
  • 각 항목integer

    minimum: 1 · maximum: 100

  • sample_percentinteger

    minimum: 5 · maximum: 100 · default: 100

  • primary_metricstring

    default: "human_click" · enum: "human_open", "human_click", "reply", "conversion"

  • min_sample_per_arminteger

    minimum: 10 · maximum: 100000 · default: 100

  • decisionobject
  • modestring

    enum: "manual", "auto"

  • after_hoursinteger

    minimum: 1 · maximum: 336

  • confidencenumber

    minimum: 0.8 · maximum: 0.99

  • guardrailsobject
  • max_complaint_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • max_unsubscribe_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • statusstring필수

    enum: "running", "decided", "stopped"

  • winner_keystring | null
  • decided_bystring | null
  • decision_basisstring | null

    enum: "confident", "deadline", "guardrail", "manual", null

  • decision_confidencenumber | null
  • decision_reasonstring | null
  • started_atstring

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

  • allOf 2object
  • resultsarray필수
  • 각 항목object
  • keystring
  • labelstring
  • sendsinteger
  • deliveredinteger
  • human_opensinteger
  • human_clicksinteger
  • repliesinteger
  • conversionsinteger
  • unsubscribesinteger
  • complaintsinteger
  • ratenumber
  • lift_vs_firstnumber | null
  • confidence_vs_firstnumber | null
  • sample_okboolean
  • guardrail_trippedboolean
  • suggested_winnerobject
  • keystring필수
  • reasonstring필수
  • basisstring필수

    enum: "confident", "deadline", "guardrail"

  • confidencenumber | null필수
  • sample_okboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/experiments/{experimentId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/experiments/{experimentId}/decide

decideExperiment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

experimentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • winner_keystring필수

    minLength: 1 · maxLength: 40

  • reasonstring

    maxLength: 500

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • namestring필수

    minLength: 1 · maxLength: 200

  • subject_kindstring필수

    enum: "campaign", "sequence_step", "automation_rule"

  • subject_idstring필수

    minLength: 1 · maxLength: 200

  • dimensionstring필수

    enum: "subject", "design", "content", "from_name"

  • variantsarray필수

    minItems: 2 · maxItems: 4

  • 각 항목object
  • keystring

    pattern: "^[a-z0-9][a-z0-9_-]{0,39}$"

  • labelstring

    maxLength: 120

  • subjectstring

    minLength: 1 · maxLength: 998

  • template_idstring

    format: "uuid"

  • contentobject
  • 추가 속성string
  • from_namestring

    minLength: 1 · maxLength: 200

  • allocationarray
  • 각 항목integer

    minimum: 1 · maximum: 100

  • sample_percentinteger

    minimum: 5 · maximum: 100 · default: 100

  • primary_metricstring

    default: "human_click" · enum: "human_open", "human_click", "reply", "conversion"

  • min_sample_per_arminteger

    minimum: 10 · maximum: 100000 · default: 100

  • decisionobject
  • modestring

    enum: "manual", "auto"

  • after_hoursinteger

    minimum: 1 · maximum: 336

  • confidencenumber

    minimum: 0.8 · maximum: 0.99

  • guardrailsobject
  • max_complaint_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • max_unsubscribe_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • statusstring필수

    enum: "running", "decided", "stopped"

  • winner_keystring | null
  • decided_bystring | null
  • decision_basisstring | null

    enum: "confident", "deadline", "guardrail", "manual", null

  • decision_confidencenumber | null
  • decision_reasonstring | null
  • started_atstring

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/experiments/{experimentId}/decide' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "winner_key": "example",
  "reason": "example"
}'
POST/v1/workspaces/{workspaceId}/experiments/{experimentId}/stop

stopExperiment

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

experimentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • namestring필수

    minLength: 1 · maxLength: 200

  • subject_kindstring필수

    enum: "campaign", "sequence_step", "automation_rule"

  • subject_idstring필수

    minLength: 1 · maxLength: 200

  • dimensionstring필수

    enum: "subject", "design", "content", "from_name"

  • variantsarray필수

    minItems: 2 · maxItems: 4

  • 각 항목object
  • keystring

    pattern: "^[a-z0-9][a-z0-9_-]{0,39}$"

  • labelstring

    maxLength: 120

  • subjectstring

    minLength: 1 · maxLength: 998

  • template_idstring

    format: "uuid"

  • contentobject
  • 추가 속성string
  • from_namestring

    minLength: 1 · maxLength: 200

  • allocationarray
  • 각 항목integer

    minimum: 1 · maximum: 100

  • sample_percentinteger

    minimum: 5 · maximum: 100 · default: 100

  • primary_metricstring

    default: "human_click" · enum: "human_open", "human_click", "reply", "conversion"

  • min_sample_per_arminteger

    minimum: 10 · maximum: 100000 · default: 100

  • decisionobject
  • modestring

    enum: "manual", "auto"

  • after_hoursinteger

    minimum: 1 · maximum: 336

  • confidencenumber

    minimum: 0.8 · maximum: 0.99

  • guardrailsobject
  • max_complaint_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • max_unsubscribe_ratenumber

    maximum: 1 · exclusiveMinimum: 0

  • idstring필수

    format: "uuid"

  • product_idstring

    format: "uuid"

  • statusstring필수

    enum: "running", "decided", "stopped"

  • winner_keystring | null
  • decided_bystring | null
  • decision_basisstring | null

    enum: "confident", "deadline", "guardrail", "manual", null

  • decision_confidencenumber | null
  • decision_reasonstring | null
  • started_atstring

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

  • updated_atstring

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/experiments/{experimentId}/stop' \
  --header "Authorization: Bearer $BANGER_API_KEY"

피드백

GET/v1/workspaces/{workspaceId}/feedback

고객 피드백 전달 가능 여부 확인

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

인증된 워크스페이스의 피드백 가용성.

application/json

  • valueobject
  • dataobject
  • availableboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/feedback' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/feedback

버그 보고, 피드백 보내기, 기능 제안

내부 Linear 이슈 하나를 만들고 Slack 팀 알림을 보내요. 중단된 제출은 같은 submission_id로 재시도하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

x-banger-product-id
header
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • kindstring필수

    enum: "bug", "feedback", "feature"

  • titlestring필수

    minLength: 1 · maxLength: 160

  • descriptionstring필수

    minLength: 1 · maxLength: 10000

  • submission_idstring필수

    format: "uuid"

  • attachment_idsarray

    이 보고자와 워크스페이스가 소유한 완료된 비공개 업로드예요. 미제출 업로드는 24시간 후 만료되며 파일은 보고 하나에만 속할 수 있어요.

    maxItems: 5 · uniqueItems: true

  • 각 항목string

    format: "uuid"

성공 응답 201

멱등 재실행을 포함해 Linear 이슈와 Slack 알림이 완료됐어요.

application/json

  • valueobject
  • dataobject
  • idstring필수

    format: "uuid"

  • statusstring필수

    enum: "submitted"

  • linearIssueIdentifierstring | null
  • linearIssueUrlstring | null

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/feedback' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-product-id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "kind": "bug",
  "title": "example",
  "description": "example",
  "submission_id": "00000000-0000-4000-8000-000000000001",
  "attachment_ids": [
    "00000000-0000-4000-8000-000000000001"
  ]
}'
POST/v1/workspaces/{workspaceId}/feedback/attachments

스크린샷이나 동영상을 비공개 Linear 저장소에 업로드

바이너리 업로드는 최대 25 MiB, JSON base64 업로드는 최대 2 MiB를 지원해요. 같은 파일 재시도 시 attachment_id를 재사용하세요. API 키는 automation:execute가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

attachment_id
query

바이너리 업로드에 필수이며 파일별 UUID예요.

  • valuestring

    format: "uuid"

x-banger-filename
header

URI 인코딩 파일 이름이며 바이너리 업로드에 필수예요.

  • valuestring

요청 본문 필수

image/png

  • valuestring

    format: "binary"

image/jpeg

  • valuestring

    format: "binary"

image/gif

  • valuestring

    format: "binary"

image/webp

  • valuestring

    format: "binary"

video/mp4

  • valuestring

    format: "binary"

video/webm

  • valuestring

    format: "binary"

video/quicktime

  • valuestring

    format: "binary"

application/json

  • valueobject
  • attachment_idstring필수

    format: "uuid"

  • filenamestring필수

    minLength: 1 · maxLength: 200

  • mime_typestring필수

    enum: "image/png", "image/jpeg", "image/gif", "image/webp", "video/mp4", "video/webm", "video/quicktime"

  • base64string필수

    minLength: 4 · maxLength: 2796204

성공 응답 200

기존 완료된 첨부 파일.

application/json

  • valueobject
  • dataobject필수
  • attachment_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "ready"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/feedback/attachments?attachment_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-filename: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "attachment_id": "00000000-0000-4000-8000-000000000001",
  "filename": "example",
  "mime_type": "image/png",
  "base64": "example"
}'
POST/v1/workspaces/{workspaceId}/feedback/attachments/prepare

직접 에이전트 또는 서버 미디어 업로드 준비

임시 서명 PUT URL과 필수 업로드 헤더를 반환해요. Banger 자격 증명 없이 해당 헤더로 파일 바이트를 보내고 업로드를 완료하세요. 브라우저에서 직접 업로드하지 말고 인증된 바이너리 프록시를 사용하세요. 보고자당 하루 최대 30개, 250 MiB예요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • attachment_idstring필수

    format: "uuid"

  • filenamestring필수

    minLength: 1 · maxLength: 200

  • mime_typestring필수

    enum: "image/png", "image/jpeg", "image/gif", "image/webp", "video/mp4", "video/webm", "video/quicktime"

  • size_bytesinteger필수

    minimum: 1 · maximum: 26214400

성공 응답 201

업로드 시 data는 attachment_id, status, 서명된 url과 method PUT 및 headers를 포함한 upload를 담아요. ready이면 업로드가 필요 없어요.

application/json

  • valueobject
  • dataobject필수
  • attachment_idstring필수

    format: "uuid"

  • filenamestring필수
  • mime_typestring필수
  • size_bytesinteger필수
  • statusstring필수

    enum: "ready", "uploading"

  • uploadobject
  • urlstring필수
  • methodstring필수

    enum: "PUT"

  • headersobject필수
  • 추가 속성string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/feedback/attachments/prepare' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "attachment_id": "00000000-0000-4000-8000-000000000001",
  "filename": "example",
  "mime_type": "image/png",
  "size_bytes": 1
}'
POST/v1/workspaces/{workspaceId}/feedback/attachments/{attachmentId}/complete

피드백에 첨부하기 전에 직접 미디어 업로드 검증

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

attachmentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

data는 attachment_id와 status ready를 포함해요. 완료는 멱등해요.

application/json

  • valueobject
  • dataobject필수
  • attachment_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "ready"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/feedback/attachments/{attachmentId}/complete' \
  --header "Authorization: Bearer $BANGER_API_KEY"

홈

GET/v1/workspaces/{workspaceId}/home

선택한 제품의 설정 또는 운영 홈을 불러와요.

멤버십, 제품 유효성, 설정 투영, 운영 요약, 최근 활동을 테넌트 격리 데이터베이스 구문 하나로 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

선택한 제품의 홈 화면.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • setupobject필수

    추가 속성 없음

  • stagestring필수

    enum: "domain", "mailboxes", "journeys", "broadcast", "complete"

  • domainobject필수

    추가 속성 없음

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • detailstring필수
  • mailboxesobject필수

    추가 속성 없음

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • detailstring필수
  • journeysobject필수

    추가 속성 없음

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • detailstring필수
  • broadcastobject필수

    추가 속성 없음

  • statusstring필수

    enum: "todo", "in_progress", "complete", "not_relevant"

  • detailstring필수
  • needsYouobject필수

    추가 속성 없음

  • undecidedApprovalsinteger필수

    minimum: 0

  • oldestApprovalsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • summarystring필수
  • actionKindstring필수
  • createdAtstring필수

    format: "date-time"

  • failedSteps24harray필수
  • 각 항목object
  • journeyIdstring필수

    format: "uuid"

  • journeyNamestring필수
  • countinteger필수

    minimum: 0

  • deliverabilityAlertsarray필수
  • 각 항목object
  • kindstring필수

    enum: "bounce_rate", "complaint_rate", "dns_drift", "lane_paused"

  • detailstring필수
  • destinationstring필수

    enum: "deliverability", "domains"

  • unreadInboundarray필수
  • 각 항목object
  • mailboxIdstring필수

    format: "uuid"

  • addressstring필수
  • countinteger필수

    minimum: 0

  • splitsReadyToDecidearray필수
  • 각 항목object
  • journeyIdstring필수

    format: "uuid"

  • journeyNamestring필수
  • unclaimedJourneysinteger필수

    minimum: 0

  • journeysobject필수

    추가 속성 없음

  • activeinteger필수

    minimum: 0

  • entered30dinteger필수

    minimum: 0

  • sent30dinteger필수

    minimum: 0

  • toparray필수
  • 각 항목지정되지 않음
  • allOf 1object

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • mailbox_idstring

    기존 발신자예요. 생략하면 온보딩 발신자, 활성 사용자 지정 메일함, 호스팅 메일함 순으로 우선해요. 저장되거나 명시된 발신자는 바뀌지 않아요.

    format: "uuid"

    추가 중첩 생략

  • from_local_partstring

    maxLength: 64 · pattern: "^[a-z0-9][a-z0-9._+-]{0,62}$"

    추가 중첩 생략

  • triggerobject필수

    추가 중첩 생략

  • audienceobject

    추가 중첩 생략

  • goalobject

    추가 속성 없음

    추가 중첩 생략

  • exitobject

    추가 속성 없음

    추가 중첩 생략

  • approval_modestring

    enum: "policy", "required"

    추가 중첩 생략

  • apiobject

    추가 중첩 생략

  • managed_contentobject

    생성 전용 단축 작업으로 원본 관리 이메일 임시저장과 이를 이메일 단계에서 참조하는 여정을 원자적으로 저장해요. 없는 대상 언어는 무료 번역 대기열에 들어가며 여정을 게시하거나 활성화하지 않아요.

    추가 속성 없음

    추가 중첩 생략

  • stepsarray필수

    maxItems: 100

    추가 중첩 생략

  • allOf 2object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • statusstring필수

    enum: "draft", "discovered", "active", "paused", "archived"

    추가 중첩 생략

  • api_keystring | null

    추가 중첩 생략

  • content_modestring | null

    enum: "code", "managed", null

    추가 중첩 생략

  • identitystring | null

    추가 중첩 생략

  • identity_aliasesarray

    추가 중첩 생략

  • samplesarray

    추가 중첩 생략

  • versioninteger필수

    minimum: 1

    추가 중첩 생략

  • statsobject필수

    추가 중첩 생략

  • stepStatsarray

    추가 중첩 생략

  • armStatsarray

    추가 중첩 생략

  • healthobject필수

    추가 중첩 생략

  • indicatorobject필수

    추가 중첩 생략

  • sparklinearray필수

    추가 중첩 생략

  • activated_atstring | null

    format: "date-time"

    추가 중첩 생략

  • updated_atstring

    format: "date-time"

    추가 중첩 생략

  • last_activity_atstring | null

    format: "date-time"

    추가 중첩 생략

  • broadcastobject필수

    추가 속성 없음

  • nextobject
  • idstring필수

    format: "uuid"

  • namestring필수
  • scheduledAtstring필수

    format: "date-time"

  • recipientsinteger필수

    minimum: 0

  • lastobject
  • idstring필수

    format: "uuid"

  • namestring필수
  • sentAtstring필수

    format: "date-time"

  • deliveredinteger필수

    minimum: 0

  • humanOpenedinteger필수

    minimum: 0

  • repliedinteger필수

    minimum: 0

  • recentLogsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • directionstring필수

    enum: "out", "in"

  • atstring필수

    format: "date-time"

  • mailbox_idstring | null필수

    API와 SMTP처럼 메일함을 거치지 않는 발송은 Null이에요.

    format: "uuid"

  • thread_idstring

    format: "uuid"

  • send_intent_idstring

    format: "uuid"

  • traffic_classstring

    enum: "mailbox", "product", "broadcast"

  • fromstring필수
  • toarray필수
  • 각 항목string
  • recipient_countinteger필수

    minimum: 0

  • subjectstring필수
  • originobject필수

    추가 속성 없음

  • kindstring필수

    enum: "journey", "broadcast", "mailbox", "api", "agent", "smtp"

  • idstring
  • namestring
  • statusstring필수

    enum: "queued", "sent", "delivered", "bounced", "complained", "opened", "clicked", "replied", "received", "failed", "rejected"

  • rejectionobject

    Banger가 SMTP 시도를 거부한 이유와 클라이언트가 받은 응답.

  • refstring필수

    pattern: "^smtp_[0-9a-z]{16}$"

  • kindstring필수

    enum: "login_failed", "recipient_refused", "message_rejected"

  • replystring필수

    전체 SMTP 응답으로 예: `550 5.7.1 ...`.

  • reply_codeinteger필수

    minimum: 400 · maximum: 599

  • enhanced_codestring필수
  • reasonstring필수
  • messagestring필수
  • key_prefixstring필수

    클라이언트가 사용한 API 키의 공개 접두사 `bgr_`.

  • client_ipstring
  • portinteger
  • tlsstring
  • attemptsinteger필수

    키 하나의 로그인 실패는 10분마다 행 하나로 합쳐져요.

    minimum: 1

  • last_atstring필수

    format: "date-time"

  • detailobject
  • 추가 속성모든 값
  • volumeobject필수
  • sentPeriodinteger필수

    minimum: 0

  • limitinteger필수

    minimum: 0

  • deliveredRatenumber

    minimum: 0 · maximum: 1

  • mailboxesinteger필수

    minimum: 0

  • verifiedDomainsinteger필수

    minimum: 0

  • 추가 속성모든 값
  • agentobject필수

    추가 속성 없음

  • connectedboolean필수
  • clientNamestring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/home' \
  --header "Authorization: Bearer $BANGER_API_KEY"

라벨 제안

GET/v1/workspaces/{workspaceId}/label-suggestions

listLabelSuggestions

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailbox_id
query · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수
  • namestring필수
  • emojistring필수
  • colorstring필수
  • descriptionstring필수
  • already_addedboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/label-suggestions?mailbox_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"

라벨

GET/v1/workspaces/{workspaceId}/labels

listLabels

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailbox_id
query
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • colorstring | null필수
  • kindstring필수
  • emojistring | null필수
  • descriptionstring | null필수
  • suggestion_idstring | null필수
  • sourcestring필수

    enum: "banger", "provider"

  • updated_atstring필수

    format: "date-time"

  • auto_set지정되지 않음필수
  • anyOf 1object
  • rule_idstring필수

    format: "uuid"

  • enabledboolean필수
  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

    추가 중첩 생략

  • toarray

    maxItems: 50

    추가 중첩 생략

  • subject_containsarray

    maxItems: 50

    추가 중첩 생략

  • has_wordsarray

    maxItems: 50

    추가 중첩 생략

  • excludes_wordsarray

    maxItems: 50

    추가 중첩 생략

  • has_attachmentboolean

    추가 중첩 생략

  • anyOf 2null
  • applied_by_rule_countinteger필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/labels?mailbox_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/labels

createLabel

메일함 하나에 Banger 라벨을 만들어요. 제안 라벨을 만들려면 suggestion_id를 전달하세요. 기존 이름이면 기존 라벨을 반환해요(200). Banger 라벨은 Gmail과 동기화하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header

제품 선택 시 적용되는 선택적 재시도 키.

  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject
  • mailbox_idstring필수

    format: "uuid"

  • namestring

    maxLength: 120

  • colorstring

    maxLength: 32

  • emojistring

    이름 앞에 표시되는 이모지 하나.

    maxLength: 16

  • descriptionstring

    maxLength: 2000

  • suggestion_idstring

    maxLength: 64

  • auto_setobject
  • enabledboolean필수
  • descriptionstring | null

    maxLength: 2000

  • exact_conditionsobject

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • colorstring | null필수
  • kindstring필수
  • emojistring | null필수
  • descriptionstring | null필수
  • suggestion_idstring | null필수
  • sourcestring필수

    enum: "banger", "provider"

  • updated_atstring필수

    format: "date-time"

  • auto_set지정되지 않음필수
  • anyOf 1object
  • rule_idstring필수

    format: "uuid"

  • enabledboolean필수
  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • has_attachmentboolean
  • anyOf 2null
  • applied_by_rule_countinteger필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/labels' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "name": "example",
  "color": "example",
  "emoji": "example",
  "description": "example",
  "suggestion_id": "example",
  "auto_set": {
    "enabled": true,
    "description": "example",
    "exact_conditions": {
      "from": [
        "example"
      ],
      "to": [
        "example"
      ],
      "subject_contains": [
        "example"
      ],
      "has_words": [
        "example"
      ],
      "excludes_words": [
        "example"
      ],
      "has_attachment": true
    }
  }
}'
PATCH/v1/workspaces/{workspaceId}/labels/{labelId}

updateLabel

Banger 라벨 이름, 색상, 이모지, 설명을 바꾸거나 자동 설정 규칙을 켜거나 꺼요. Gmail과 시스템 라벨은 읽기 전용이에요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

labelId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header

제품 선택 시 적용되는 선택적 재시도 키.

  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 120

  • colorstring | null

    maxLength: 32

  • emojistring | null

    maxLength: 16

  • descriptionstring | null

    maxLength: 2000

  • auto_setobject
  • enabledboolean필수
  • descriptionstring | null

    maxLength: 2000

  • exact_conditionsobject

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • colorstring | null필수
  • kindstring필수
  • emojistring | null필수
  • descriptionstring | null필수
  • suggestion_idstring | null필수
  • sourcestring필수

    enum: "banger", "provider"

  • updated_atstring필수

    format: "date-time"

  • auto_set지정되지 않음필수
  • anyOf 1object
  • rule_idstring필수

    format: "uuid"

  • enabledboolean필수
  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

    추가 중첩 생략

  • has_attachmentboolean
  • anyOf 2null
  • applied_by_rule_countinteger필수

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/labels/{labelId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "color": "example",
  "emoji": "example",
  "description": "example",
  "auto_set": {
    "enabled": true,
    "description": "example",
    "exact_conditions": {
      "from": [
        "example"
      ],
      "to": [
        "example"
      ],
      "subject_contains": [
        "example"
      ],
      "has_words": [
        "example"
      ],
      "excludes_words": [
        "example"
      ],
      "has_attachment": true
    }
  }
}'
DELETE/v1/workspaces/{workspaceId}/labels/{labelId}

deleteLabel

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

labelId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

라벨이 삭제됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/labels/{labelId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

로그

GET/v1/workspaces/{workspaceId}/logs

listLogs

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

direction
query
  • valuestring

    enum: "all", "out", "in"

origin
query
  • valuestring

    enum: "journey", "broadcast", "mailbox", "api", "agent", "smtp"

mailbox_id
query
  • valuestring

    format: "uuid"

status
query
  • valuestring

    enum: "queued", "sent", "delivered", "bounced", "complained", "opened", "clicked", "replied", "received", "failed", "rejected"

from
query
  • valuestring

    format: "date"

to
query
  • valuestring

    format: "date"

query
query
  • valuestring

    maxLength: 512

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

통합 송수신 타임라인의 커서 페이지이며 Banger가 거부한 SMTP 시도는 `rejected` 행이에요. `query`로 `smtp_` 참조나 사용된 `bgr_` 키 접두사로 거부를 찾을 수도 있어요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • directionstring필수

    enum: "out", "in"

  • atstring필수

    format: "date-time"

  • mailbox_idstring | null필수

    API와 SMTP처럼 메일함을 거치지 않는 발송은 Null이에요.

    format: "uuid"

  • thread_idstring

    format: "uuid"

  • send_intent_idstring

    format: "uuid"

  • traffic_classstring

    enum: "mailbox", "product", "broadcast"

  • fromstring필수
  • toarray필수
  • 각 항목string
  • recipient_countinteger필수

    minimum: 0

  • subjectstring필수
  • originobject필수

    추가 속성 없음

  • kindstring필수

    enum: "journey", "broadcast", "mailbox", "api", "agent", "smtp"

  • idstring
  • namestring
  • statusstring필수

    enum: "queued", "sent", "delivered", "bounced", "complained", "opened", "clicked", "replied", "received", "failed", "rejected"

  • rejectionobject

    Banger가 SMTP 시도를 거부한 이유와 클라이언트가 받은 응답.

  • refstring필수

    pattern: "^smtp_[0-9a-z]{16}$"

  • kindstring필수

    enum: "login_failed", "recipient_refused", "message_rejected"

  • replystring필수

    전체 SMTP 응답으로 예: `550 5.7.1 ...`.

  • reply_codeinteger필수

    minimum: 400 · maximum: 599

  • enhanced_codestring필수
  • reasonstring필수
  • messagestring필수
  • key_prefixstring필수

    클라이언트가 사용한 API 키의 공개 접두사 `bgr_`.

  • client_ipstring
  • portinteger
  • tlsstring
  • attemptsinteger필수

    키 하나의 로그인 실패는 10분마다 행 하나로 합쳐져요.

    minimum: 1

  • last_atstring필수

    format: "date-time"

  • detailobject
  • 추가 속성모든 값
  • pageobject필수

    추가 속성 없음

  • has_moreboolean필수
  • next_cursorstring

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/logs?cursor=example&limit=50&direction=all&origin=journey&mailbox_id=00000000-0000-4000-8000-000000000001&status=queued&from=2026-01-01&to=2026-01-01&query=example' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/logs/{entryId}

getLogEntry

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

entryId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • directionstring필수

    enum: "out", "in"

  • atstring필수

    format: "date-time"

  • mailbox_idstring | null필수

    API와 SMTP처럼 메일함을 거치지 않는 발송은 Null이에요.

    format: "uuid"

  • thread_idstring

    format: "uuid"

  • send_intent_idstring

    format: "uuid"

  • traffic_classstring

    enum: "mailbox", "product", "broadcast"

  • fromstring필수
  • toarray필수
  • 각 항목string
  • recipient_countinteger필수

    minimum: 0

  • subjectstring필수
  • originobject필수

    추가 속성 없음

  • kindstring필수

    enum: "journey", "broadcast", "mailbox", "api", "agent", "smtp"

  • idstring
  • namestring
  • statusstring필수

    enum: "queued", "sent", "delivered", "bounced", "complained", "opened", "clicked", "replied", "received", "failed", "rejected"

  • rejectionobject

    Banger가 SMTP 시도를 거부한 이유와 클라이언트가 받은 응답.

  • refstring필수

    pattern: "^smtp_[0-9a-z]{16}$"

  • kindstring필수

    enum: "login_failed", "recipient_refused", "message_rejected"

  • replystring필수

    전체 SMTP 응답으로 예: `550 5.7.1 ...`.

  • reply_codeinteger필수

    minimum: 400 · maximum: 599

  • enhanced_codestring필수
  • reasonstring필수
  • messagestring필수
  • key_prefixstring필수

    클라이언트가 사용한 API 키의 공개 접두사 `bgr_`.

  • client_ipstring
  • portinteger
  • tlsstring
  • attemptsinteger필수

    키 하나의 로그인 실패는 10분마다 행 하나로 합쳐져요.

    minimum: 1

  • last_atstring필수

    format: "date-time"

  • detailobject
  • 추가 속성모든 값
  • allOf 2object
  • detail지정되지 않음필수
  • oneOf 1object
  • kindstring필수

    enum: "inbound"

  • thread지정되지 않음필수
  • allOf 1object

    추가 중첩 생략

  • allOf 2object

    추가 중첩 생략

  • oneOf 2object
  • kindstring필수

    enum: "broadcast", "outbound"

  • sendobject필수
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring | null필수

    format: "uuid"

    추가 중첩 생략

  • command_idstring | null필수

    format: "uuid"

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • command_statusstring | null필수

    추가 중첩 생략

  • subjectstring

    추가 중첩 생략

  • recipientsarray

    추가 중첩 생략

  • recipient_countinteger필수

    추가 중첩 생략

  • error_codestring | null

    추가 중첩 생략

  • send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • providerstring | null

    추가 중첩 생략

  • route_kindstring | null

    추가 중첩 생략

  • sourcestring

    추가 중첩 생략

  • from_addressstring

    추가 중첩 생략

  • recipient_statesobject

    추가 중첩 생략

  • provider_message_idstring | null

    추가 중첩 생략

  • language지정되지 않음

    이메일이 발송된 언어이며 번역되지 않았으면 null이에요.

    추가 중첩 생략

  • journeyobject | null

    이 이메일을 보낸 여정 단계와 등록이며 다른 발송은 null이에요.

    추가 중첩 생략

  • experimentobject | null

    이 이메일의 실험 변형이며 해당하지 않으면 null이에요.

    추가 중첩 생략

  • created_atstring필수

    format: "date-time"

    추가 중첩 생략

  • updated_atstring필수

    format: "date-time"

    추가 중첩 생략

  • completed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • template_idstring | null

    format: "uuid"

    추가 중첩 생략

  • template_versioninteger | null

    추가 중첩 생략

  • workspace_revisioninteger | null

    추가 중첩 생략

  • command_resultobject

    추가 중첩 생략

  • command_started_atstring | null

    format: "date-time"

    추가 중첩 생략

  • command_completed_atstring | null

    format: "date-time"

    추가 중첩 생략

  • body_textstring

    추가 중첩 생략

  • body_htmlstring

    추가 중첩 생략

  • reply_toarray

    추가 중첩 생략

  • headersobject

    추가 중첩 생략

  • tagsarray

    추가 중첩 생략

  • timelinearray필수
  • 각 항목object

    추가 중첩 생략

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/logs/{entryId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

메일 페이지

GET/v1/workspaces/{workspaceId}/mail-page

getMailPage

요청 하나로 초기 표시 전체 메일 데이터를 반환해요: 표시되는 메일함, 선택한 메일함, 라벨, 메일함 수, 워크스페이스 개정판, 선택한 메일함의 첫 스레드 페이지.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

mailbox_id
query

선호 메일함이며 없으면 첫 번째 표시 메일함을 사용해요.

  • valuestring

    format: "uuid"

label_id
query

선택한 메일함에서 이 라벨이 있는 스레드만 반환해요.

  • valuestring

    format: "uuid"

view
query
  • valuestring

    default: "inbox" · enum: "inbox", "sent", "drafts", "archive", "trash", "spam", "all"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 초기 표시 메일 데이터.

application/json

  • valueobject
  • dataobject필수
  • mailboxesarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

  • domainsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • namestring필수
  • statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • selected_mailbox_idstring

    format: "uuid"

  • labelsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • colorstring | null
  • kindstring필수
  • updated_atstring필수

    format: "date-time"

  • threadsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • subjectstring필수
  • snippetstring필수
  • last_message_atstring필수

    format: "date-time"

  • message_countinteger필수
  • unread_countinteger필수
  • is_archivedboolean필수
  • is_trashboolean필수
  • is_spamboolean필수
  • is_starredboolean필수
  • is_sentboolean필수
  • has_attachmentsboolean필수
  • labelsarray필수
  • 각 항목string
  • participantsarray
  • 각 항목object
  • namestring

    추가 중첩 생략

  • emailstring필수

    format: "email"

    추가 중첩 생략

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수
  • mailbox_thread_countsobject필수
  • 추가 속성integer
  • revisioninteger필수

    format: "int64"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mail-page?limit=50&mailbox_id=00000000-0000-4000-8000-000000000001&label_id=00000000-0000-4000-8000-000000000001&view=inbox' \
  --header "Authorization: Bearer $BANGER_API_KEY"

Mailchimp 마이그레이션

GET/v1/workspaces/{workspaceId}/mailchimp-migration

Mailchimp 이전 진행 상황과 보고서를 읽어요.

Poll it to show live progress. Reads the move of a connection whose key stopped working (phase needs_new_key) or that was disconnected (phase disconnected) too, so what already came over can be shown. Without connection_id: the product's one active-or-error Mailchimp connection, else its most recently moved disconnected one.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connection_id
query
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 이전 보고서.

application/json

  • valueobject
  • dataobject필수

    Mailchimp 연결 하나에서 제품으로 이전해요. 실시간 진행은 GET /mailchimp-migration을 폴링하세요: `phase`는 현재 단계를 나타내며 `counts`, `audiences`, `segments`, `templates`, `campaigns`는 진행하면서 늘어나요.

  • migration_idstring필수

    format: "uuid"

  • connection_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "importing", "completed"

  • phasestring필수

    importing (reading Mailchimp), copying_designs (templates and campaigns), finishing, completed, needs_new_key (Mailchimp rejected the API key; the move is paused until a new key is saved with rotateConnectionCredential), or disconnected (the connection was removed; everything already moved stays in Banger and the counts stay readable).

    enum: "importing", "copying_designs", "finishing", "completed", "needs_new_key", "disconnected"

  • started_atstring필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • connectionobject필수
  • display_namestring필수
  • account_namestring | null필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • last_error_codestring | null필수
  • needs_new_keyboolean필수
  • messagestring

    Present when needs_new_key or disconnected, ready to show.

  • progressobject필수
  • import_streamsinteger필수
  • import_streams_doneinteger필수
  • failing_streamsarray필수
  • 각 항목object
  • streamstring필수
  • refstring필수
  • error_codestring | null필수
  • designs_waitinginteger필수
  • notestring필수
  • countsobject필수
  • contactsinteger필수
  • subscribedinteger필수
  • unsubscribedinteger필수
  • bouncedinteger필수
  • contact_listsinteger필수
  • contact_fieldsinteger필수
  • segments_convertedinteger필수
  • segments_kept_as_listsinteger필수
  • templates_importedinteger필수
  • templates_to_rebuildinteger필수
  • campaigns_imported_as_designsinteger필수
  • automations_importedinteger필수
  • audiencesarray필수
  • 각 항목object
  • mailchimp_idstring필수
  • namestring필수
  • list_idstring | null필수

    format: "uuid"

  • list_namestring | null필수
  • members_in_bangerinteger필수
  • subscribedinteger필수
  • unsubscribedinteger필수
  • bouncedinteger필수
  • members_in_mailchimpinteger필수
  • contact_fieldsarray필수
  • 각 항목object
  • mailchimp_tagstring필수
  • namestring필수
  • field_keystring필수
  • typestring필수

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • consentstring필수
  • segmentsarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string
  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string
  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object
  • keystring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • templatesarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string
  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string
  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object
  • keystring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • campaignsarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string
  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string
  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object
  • keystring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • automationsobject필수
  • importedboolean필수

    const: false

  • whystring필수
  • next_stepsarray필수
  • 각 항목string
  • help_call_urlstring필수

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailchimp-migration?connection_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/mailchimp-migration

Mailchimp에서 이 제품으로 이전을 시작하거나 다시 실행해요.

Mailchimp 연결 시 이미 시작되며 재실행은 다시 동기화하고 새 항목만 추가해요. contacts:write와 campaigns:write가 필요하며 로그인한 사람은 소유자나 관리자여야 해요. 연결 권한은 필요 없어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • connection_idstring

    format: "uuid"

  • recent_campaignsinteger

    minimum: 0 · maximum: 50 · default: 10

성공 응답 202

이전이 백그라운드에서 실행돼요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object

    Mailchimp 연결 하나에서 제품으로 이전해요. 실시간 진행은 GET /mailchimp-migration을 폴링하세요: `phase`는 현재 단계를 나타내며 `counts`, `audiences`, `segments`, `templates`, `campaigns`는 진행하면서 늘어나요.

  • migration_idstring필수

    format: "uuid"

  • connection_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "importing", "completed"

  • phasestring필수

    importing (reading Mailchimp), copying_designs (templates and campaigns), finishing, completed, needs_new_key (Mailchimp rejected the API key; the move is paused until a new key is saved with rotateConnectionCredential), or disconnected (the connection was removed; everything already moved stays in Banger and the counts stay readable).

    enum: "importing", "copying_designs", "finishing", "completed", "needs_new_key", "disconnected"

  • started_atstring필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • connectionobject필수
  • display_namestring필수
  • account_namestring | null필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • last_error_codestring | null필수
  • needs_new_keyboolean필수
  • messagestring

    Present when needs_new_key or disconnected, ready to show.

  • progressobject필수
  • import_streamsinteger필수
  • import_streams_doneinteger필수
  • failing_streamsarray필수
  • 각 항목object
  • streamstring필수

    추가 중첩 생략

  • refstring필수

    추가 중첩 생략

  • error_codestring | null필수

    추가 중첩 생략

  • designs_waitinginteger필수
  • notestring필수
  • countsobject필수
  • contactsinteger필수
  • subscribedinteger필수
  • unsubscribedinteger필수
  • bouncedinteger필수
  • contact_listsinteger필수
  • contact_fieldsinteger필수
  • segments_convertedinteger필수
  • segments_kept_as_listsinteger필수
  • templates_importedinteger필수
  • templates_to_rebuildinteger필수
  • campaigns_imported_as_designsinteger필수
  • automations_importedinteger필수
  • audiencesarray필수
  • 각 항목object
  • mailchimp_idstring필수
  • namestring필수
  • list_idstring | null필수

    format: "uuid"

  • list_namestring | null필수
  • members_in_bangerinteger필수
  • subscribedinteger필수
  • unsubscribedinteger필수
  • bouncedinteger필수
  • members_in_mailchimpinteger필수
  • contact_fieldsarray필수
  • 각 항목object
  • mailchimp_tagstring필수
  • namestring필수
  • field_keystring필수
  • typestring필수

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • consentstring필수
  • segmentsarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string

    추가 중첩 생략

  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string

    추가 중첩 생략

  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • templatesarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string

    추가 중첩 생략

  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string

    추가 중첩 생략

  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • campaignsarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string

    추가 중첩 생략

  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string

    추가 중첩 생략

  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • automationsobject필수
  • importedboolean필수

    const: false

  • whystring필수
  • next_stepsarray필수
  • 각 항목string
  • help_call_urlstring필수

    format: "uri"

  • allOf 2object
  • messagestring

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/mailchimp-migration' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "connection_id": "00000000-0000-4000-8000-000000000001",
  "recent_campaigns": 10
}'

관리형 콘텐츠

GET/v1/workspaces/{workspaceId}/managed-content

제품 관리형 이메일 콘텐츠를 안정적인 최신 ID 순으로 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

cursor
query
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 콘텐츠 목록과 선택적 다음 커서.

application/json

  • valueobject
  • dataobject필수
  • itemsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object
  • 추가 속성모든 값
  • translation_jobsarray
  • 각 항목object
  • 추가 속성모든 값
  • next_cursorstring | null필수

    format: "uuid"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content?limit=50&cursor=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/managed-content

원본 로캘 이메일 임시저장을 저장하고 없는 대상 번역을 대기열에 넣어요.

보내거나 게시하지 않아요. 번역 준비는 언어별 요금이 없어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • contractobject필수

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • body_textstring

    maxLength: 100000

  • layoutstring

    maxLength: 100000

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

  • oneOf 1object

    추가 속성 없음

  • typestring필수

    enum: "string", "text", "url", "image_url", "html", "date", "datetime", "number", "boolean", "money"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • default지정되지 않음

    필드 유형과 일치해야 해요.

    추가 중첩 생략

  • oneOf 2object

    추가 속성 없음

  • type지정되지 않음필수

    const: "object"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultobject

    추가 중첩 생략

  • propertiesobject필수

    추가 중첩 생략

  • oneOf 3object

    추가 속성 없음

  • type지정되지 않음필수

    const: "list"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultarray

    추가 중첩 생략

  • items지정되지 않음필수

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

성공 응답 201

임시저장 원본과 대기열 번역 작업.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object
  • 추가 속성모든 값
  • translation_jobsarray
  • 각 항목object
  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "contract": {
    "source_locale": "example",
    "configured_locales": [
      "example"
    ],
    "fallback_locale": "example",
    "layout_id": "00000000-0000-4000-8000-000000000001",
    "localization_policy": {
      "manual_review": false
    },
    "source": {
      "subject": "example",
      "preheader": "example",
      "body_text": "example",
      "body_html": "example",
      "layout": "example",
      "variants": {},
      "variables": {}
    },
    "samples": {},
    "translations": {}
  }
}'
GET/v1/workspaces/{workspaceId}/managed-content/{contentId}

임시저장 개정판, 번역, 준비 상태를 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 콘텐츠 상태.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object
  • 추가 속성모든 값
  • translation_jobsarray
  • 각 항목object
  • 추가 속성모든 값
  • allOf 2object
  • source_revisionobject필수
  • idstring필수

    format: "uuid"

  • content_idstring필수

    format: "uuid"

  • revisioninteger필수
  • source_localestring필수
  • configured_localesarray필수
  • 각 항목string
  • fallback_localestring | null필수
  • localization_policyobject필수

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • source_messagesobject필수
  • 추가 속성string
  • layout_idstring | null필수

    format: "uuid"

  • layout_revision_idstring | null필수

    format: "uuid"

  • samplesobject필수
  • 추가 속성object
  • 추가 속성모든 값
  • restored_from_revision_idstring | null필수

    format: "uuid"

  • translationsarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • source_revision_idstring필수

    format: "uuid"

    추가 중첩 생략

  • localestring필수

    추가 중첩 생략

  • stringsobject필수

    추가 중첩 생략

  • provenancestring필수

    enum: "supplied", "generated", "reviewed"

    추가 중첩 생략

  • statusstring필수

    enum: "ready", "needs_review"

    추가 중첩 생략

  • allOf 2object
  • strings_sha256string필수

    추가 중첩 생략

  • translation_jobsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • source_revision_idstring필수

    format: "uuid"

  • localestring필수
  • statusstring필수
  • attempt_countinteger필수
  • error_codestring | null필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
PATCH/v1/workspaces/{workspaceId}/managed-content/{contentId}

운영 게시를 바꾸지 않고 새 원본 임시저장 개정판을 저장해요.

호환성을 깨는 변수 변경은 이 콘텐츠 ID에 덮어 게시할 수 없어요. 새 관리형 콘텐츠를 만들고 게시한 다음 각 여정 또는 임시저장 단체 발송 참조를 새 ID로 바꾸고 여정을 검토/활성화하거나 단체 발송을 예약하세요. 기존 접수 발송과 예약 단체 발송 수신자는 고정 개정판을 유지해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • expected_versioninteger필수

    minimum: 1

  • contractobject필수

    추가 속성 없음

  • source_localestring

    기준 BCP 47 원본 로캘이며 생략하면 제품 설정을 상속해요.

  • configured_localesarray

    원본 및 대상 로캘이며 생략된 원본은 서버가 추가해요.

    maxItems: 100 · uniqueItems: true

  • 각 항목string
  • fallback_localestring
  • layout_idstring

    선택한 재사용 레이아웃이며 서버가 게시된 개정판의 스냅샷을 이 콘텐츠 개정판에 저장해요.

    format: "uuid"

  • localization_policyobject

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • body_textstring

    maxLength: 100000

  • layoutstring

    maxLength: 100000

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

  • oneOf 1object

    추가 속성 없음

  • typestring필수

    enum: "string", "text", "url", "image_url", "html", "date", "datetime", "number", "boolean", "money"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • default지정되지 않음

    필드 유형과 일치해야 해요.

    추가 중첩 생략

  • oneOf 2object

    추가 속성 없음

  • type지정되지 않음필수

    const: "object"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultobject

    추가 중첩 생략

  • propertiesobject필수

    추가 중첩 생략

  • oneOf 3object

    추가 속성 없음

  • type지정되지 않음필수

    const: "list"

    추가 중첩 생략

  • requiredboolean

    추가 중첩 생략

  • descriptionstring

    maxLength: 2000

    추가 중첩 생략

  • defaultarray

    추가 중첩 생략

  • items지정되지 않음필수

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • samplesobject

    미리보기와 원본 검증을 위한 이름 있는 샘플 값 집합.

  • 추가 속성object
  • 추가 속성모든 값
  • translationsobject

    원본 ICU 메시지 카탈로그와 선택적으로 제공한 대상 카탈로그예요. 설정된 대상이 없으면 비동기 번역 대기열에 들어가며 저장에 필요하지 않아요.

  • 추가 속성object
  • 추가 속성string

성공 응답 200

새 임시저장 개정판과 대기열 번역 작업.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object
  • 추가 속성모든 값
  • translation_jobsarray
  • 각 항목object
  • 추가 속성모든 값

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "expected_version": 1,
  "contract": {
    "source_locale": "example",
    "configured_locales": [
      "example"
    ],
    "fallback_locale": "example",
    "layout_id": "00000000-0000-4000-8000-000000000001",
    "localization_policy": {
      "manual_review": false
    },
    "source": {
      "subject": "example",
      "preheader": "example",
      "body_text": "example",
      "body_html": "example",
      "layout": "example",
      "variants": {},
      "variables": {}
    },
    "samples": {},
    "translations": {}
  }
}'
POST/v1/workspaces/{workspaceId}/managed-content/{contentId}/render

저장된 원본 개정판과 준비된 로캘 하나를 발송 없이 미리 봐요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    sample_set 또는 variables 중 하나만 사용하세요. 기본값은 첫 번째 이름 있는 샘플이에요.

    추가 속성 없음

  • source_revision_idstring

    format: "uuid"

  • variantstring

    원본 A/B 버전 키.

  • localestring
  • timezonestring

    IANA 시간대이며 기본값은 UTC예요.

  • sample_setstring
  • variablesobject
  • 추가 속성모든 값

성공 응답 200

결정론적 제목, 프리헤더, HTML, 파생 일반 텍스트, 로캘, 방향.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • subjectstring필수
  • preheaderstring
  • htmlstring필수
  • textstring필수
  • localestring필수
  • directionstring필수

    enum: "ltr", "rtl"

  • warningsarray
  • 각 항목string
  • 추가 속성모든 값
  • allOf 2object
  • source_revision_idstring필수

    format: "uuid"

  • layout_revision_idstring | null필수

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}/render' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "source_revision_id": "00000000-0000-4000-8000-000000000001",
  "variant": "example",
  "locale": "example",
  "timezone": "example",
  "sample_set": "example",
  "variables": {}
}'
POST/v1/workspaces/{workspaceId}/managed-content/{contentId}/translations/{locale}/retry

현재 원본 임시저장의 실패한 자동 번역을 재시도해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

locale
path · 필수
  • valuestring

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

번역 재시도가 대기열에 들어갔어요.

application/json

  • valueobject
  • databoolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}/translations/{locale}/retry' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/managed-content/{contentId}/translations

임시저장 개정판의 번역 카탈로그와 준비 작업을 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

번역과 작업을 포함한 현재 콘텐츠 상태.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object
  • 추가 속성모든 값
  • translation_jobsarray
  • 각 항목object
  • 추가 속성모든 값
  • allOf 2object
  • source_revisionobject필수
  • idstring필수

    format: "uuid"

  • content_idstring필수

    format: "uuid"

  • revisioninteger필수
  • source_localestring필수
  • configured_localesarray필수
  • 각 항목string
  • fallback_localestring | null필수
  • localization_policyobject필수

    여정 이메일은 그 사람의 언어로만 보내요. 영수증, 코드, 보안 알림은 약 1분, 다른 이메일은 최대 하루 번역을 기다리며 그때까지 준비되지 않으면 보내지 않아요.

    추가 속성 없음

  • manual_reviewboolean

    default: false

  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • source_messagesobject필수
  • 추가 속성string
  • layout_idstring | null필수

    format: "uuid"

  • layout_revision_idstring | null필수

    format: "uuid"

  • samplesobject필수
  • 추가 속성object
  • 추가 속성모든 값
  • restored_from_revision_idstring | null필수

    format: "uuid"

  • translationsarray필수
  • 각 항목지정되지 않음
  • allOf 1object
  • source_revision_idstring필수

    format: "uuid"

    추가 중첩 생략

  • localestring필수

    추가 중첩 생략

  • stringsobject필수

    추가 중첩 생략

  • provenancestring필수

    enum: "supplied", "generated", "reviewed"

    추가 중첩 생략

  • statusstring필수

    enum: "ready", "needs_review"

    추가 중첩 생략

  • allOf 2object
  • strings_sha256string필수

    추가 중첩 생략

  • translation_jobsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • source_revision_idstring필수

    format: "uuid"

  • localestring필수
  • statusstring필수
  • attempt_countinteger필수
  • error_codestring | null필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}/translations' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/managed-content/{contentId}/translations/{locale}/review

원본 개정판 하나의 정확한 대기 번역 카탈로그를 검토해요.

현재 다시 읽기의 카탈로그 SHA-256이 필요해요. 수정된 문자열은 선택적이며 이 작업은 원본을 게시하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

locale
path · 필수
  • valuestring

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • source_revision_idstring필수

    format: "uuid"

  • expected_translation_sha256string필수

    pattern: "^[a-f0-9]{64}$"

  • stringsobject
  • 추가 속성string

성공 응답 200

검토된 카탈로그와 새 SHA-256.

application/json

  • valueobject
  • dataobject필수
  • source_revision_idstring필수

    format: "uuid"

  • localestring필수
  • stringsobject필수
  • 추가 속성string
  • provenancestring필수

    enum: "reviewed"

  • statusstring필수

    enum: "ready"

  • strings_sha256string필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}/translations/{locale}/review' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "source_revision_id": "00000000-0000-4000-8000-000000000001",
  "expected_translation_sha256": "example",
  "strings": {}
}'
GET/v1/workspaces/{workspaceId}/managed-content/{contentId}/versions

불변 게시 이력을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

게시 기록.

application/json

  • valueobject
  • dataobject필수
  • versionsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • revisioninteger필수
  • source_localestring필수
  • configured_localesarray필수
  • 각 항목string
  • sourceobject필수

    추가 속성 없음

  • subjectstring필수

    minLength: 1 · maxLength: 100000

  • preheaderstring

    maxLength: 100000

  • body_textstring

    원본 호환성을 위해 받으며 렌더링된 일반 텍스트는 최종 HTML에서 생성해요.

    maxLength: 100000

  • body_htmlstring필수

    minLength: 1 · maxLength: 100000

  • layoutstring

    {{ content }} 슬롯 하나를 포함해야 해요.

    maxLength: 100000

  • variantsobject

    선택적 원본 버전이며 각 버전은 같은 개정판에서 자동 번역돼요.

  • 추가 속성object

    추가 속성 없음

    추가 중첩 생략

  • variablesobject필수
  • 추가 속성지정되지 않음

    재귀적 유형 변수예요. 금액은 {amount_cents: integer, currency: ISO 4217 code}, date는 ISO 달력 날짜, datetime은 오프셋이 있는 ISO 타임스탬프를 사용해요.

    추가 중첩 생략

  • source_messagesobject필수
  • 추가 속성string
  • samplesobject필수
  • 추가 속성object
  • 추가 속성모든 값
  • restored_from_revision_idstring | null필수

    format: "uuid"

  • created_by_actor_idstring필수
  • created_atstring필수

    format: "date-time"

  • publicationsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • source_revision_idstring필수

    format: "uuid"

  • approval_idstring | null필수

    format: "uuid"

  • published_by_actor_idstring필수
  • published_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}/versions' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/managed-content/{contentId}/restore

이전 원본 개정판을 게시 없이 새 임시저장으로 복사해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

contentId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • source_revision_idstring필수

    format: "uuid"

  • expected_versioninteger필수

    minimum: 1

성공 응답 200

복구된 임시저장 상태.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수

    minimum: 1

  • review_requiredboolean필수
  • draft_revision_idstring | null

    format: "uuid"

  • submitted_revision_idstring | null

    format: "uuid"

  • approved_revision_idstring | null

    format: "uuid"

  • published_revision_idstring | null

    format: "uuid"

  • published_publication_idstring | null

    format: "uuid"

  • source_revisionobject
  • 추가 속성모든 값
  • translationsarray
  • 각 항목object
  • 추가 속성모든 값
  • translation_jobsarray
  • 각 항목object
  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-content/{contentId}/restore' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "source_revision_id": "00000000-0000-4000-8000-000000000001",
  "expected_version": 1
}'

관리형 레이아웃

GET/v1/workspaces/{workspaceId}/managed-layouts

재사용 가능한 제품 이메일 레이아웃을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 레이아웃.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수
  • draft_revision_idstring | null필수

    format: "uuid"

  • published_revision_idstring | null필수

    format: "uuid"

  • published_publication_idstring | null필수

    format: "uuid"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/managed-layouts

검증된 HTML 또는 브랜드 기반 기본값으로 임시저장 레이아웃을 만들어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

  • htmlstring

    콘텐츠 슬롯을 정확히 하나 포함해야 해요.

  • source_localestring
  • source_messagesobject
  • 추가 속성string
  • translationsobject
  • 추가 속성object
  • 추가 속성string

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수
  • draft_revision_idstring | null필수

    format: "uuid"

  • published_revision_idstring | null필수

    format: "uuid"

  • published_publication_idstring | null필수

    format: "uuid"

  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "html": "example",
  "source_locale": "example",
  "source_messages": {},
  "translations": {}
}'
GET/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}

레이아웃과 현재 임시저장 개정판을 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

layoutId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

레이아웃과 임시저장 개정판.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수
  • draft_revision_idstring | null필수

    format: "uuid"

  • published_revision_idstring | null필수

    format: "uuid"

  • published_publication_idstring | null필수

    format: "uuid"

  • draft_revision지정되지 않음필수
  • anyOf 1object
  • idstring필수

    format: "uuid"

  • layout_idstring

    format: "uuid"

  • revisioninteger필수
  • htmlstring필수
  • brand_snapshotobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • source_localestring필수
  • source_messagesobject필수
  • 추가 속성string
  • translationsobject필수
  • 추가 속성object
  • 추가 속성string

    추가 중첩 생략

  • restored_from_revision_idstring | null필수

    format: "uuid"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

  • anyOf 2null

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
PATCH/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}

검증된 임시저장 레이아웃 개정판을 저장해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

layoutId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • expected_versioninteger필수

    minimum: 1

  • htmlstring필수

    콘텐츠 슬롯을 정확히 하나 포함해야 해요.

  • source_localestring
  • source_messagesobject
  • 추가 속성string
  • translationsobject
  • 추가 속성object
  • 추가 속성string

성공 응답 200

새 임시저장 개정판.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수
  • draft_revision_idstring | null필수

    format: "uuid"

  • published_revision_idstring | null필수

    format: "uuid"

  • published_publication_idstring | null필수

    format: "uuid"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "expected_version": 1,
  "html": "example",
  "source_locale": "example",
  "source_messages": {},
  "translations": {}
}'
GET/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}/versions

불변 레이아웃 개정판을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

layoutId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

레이아웃 개정판.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • layout_idstring

    format: "uuid"

  • revisioninteger필수
  • htmlstring필수
  • brand_snapshotobject필수
  • company_namestring

    maxLength: 160

  • logo_urlstring

    아이콘: 마크 단독으로 이메일 바닥글, 슬라이드인 양식에 작게 쓰거나 워드마크가 없을 때 헤더로 사용해요.

    maxLength: 2000

  • wordmark_urlstring

    워드마크: 디자인된 회사 이름으로 모든 이메일 상단에 단독으로 표시돼요.

    maxLength: 2000

  • website_urlstring

    maxLength: 2000

  • primary_colorstring

    maxLength: 7

  • accent_colorstring

    maxLength: 7

  • background_colorstring

    maxLength: 7

  • surface_colorstring

    maxLength: 7

  • text_colorstring

    maxLength: 7

  • muted_text_colorstring

    maxLength: 7

  • heading_font_familystring

    maxLength: 200

  • body_font_familystring

    maxLength: 200

  • tonestring

    maxLength: 1000

  • footer_addressstring

    maxLength: 500

  • email_stylestring

    maxLength: 20

  • source_localestring필수
  • source_messagesobject필수
  • 추가 속성string
  • translationsobject필수
  • 추가 속성object
  • 추가 속성string
  • restored_from_revision_idstring | null필수

    format: "uuid"

  • created_by_actor_idstring
  • created_atstring

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}/versions' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}/impact

이 레이아웃에 종속된 콘텐츠 임시저장과 게시를 설명해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

layoutId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

레이아웃 종속 영향.

application/json

  • valueobject
  • dataobject필수
  • layout_idstring필수

    format: "uuid"

  • layout_revision_idstring필수

    format: "uuid"

  • layout_versioninteger필수
  • affected_contentsarray필수
  • 각 항목object
  • content_idstring필수

    format: "uuid"

  • versioninteger필수
  • published_revision_idstring필수

    format: "uuid"

  • active_journeysarray필수
  • 각 항목object
  • journey_idstring필수

    format: "uuid"

  • versioninteger필수
  • definition_sha256string필수
  • manifest_sha256string필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}/impact' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}/restore

불변 레이아웃 개정판을 새 임시저장으로 복사해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

layoutId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • layout_revision_idstring필수

    format: "uuid"

  • expected_versioninteger필수

    minimum: 1

성공 응답 200

복구된 임시저장 개정판.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • namestring필수
  • versioninteger필수
  • draft_revision_idstring | null필수

    format: "uuid"

  • published_revision_idstring | null필수

    format: "uuid"

  • published_publication_idstring | null필수

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/managed-layouts/{layoutId}/restore' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "layout_revision_id": "00000000-0000-4000-8000-000000000001",
  "expected_version": 1
}'

멤버

PATCH/v1/workspaces/{workspaceId}/members/{memberId}

다른 멤버의 역할을 변경해요.

소유자와 관리자는 다른 멤버를 admin, member, viewer로 설정해요. 로그인한 사람 또는 그 사람의 OAuth 권한으로 작업하는 에이전트가 변경해야 하며 독립 API 키는 할 수 없어요. 누구도 자신의 역할을 변경할 수 없고 소유자 역할도 변경할 수 없어요. 현재 역할을 설정하면 아무것도 바뀌지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

memberId
path · 필수

워크스페이스 디렉터리의 `id`인 멤버 ID.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • rolestring필수

    enum: "admin", "member", "viewer"

성공 응답 200

새 역할과 이전 역할이 있는 멤버.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • userIdstring필수
  • emailstring

    format: "email"

  • displayNamestring
  • kindstring필수

    const: "user"

  • rolestring필수

    enum: "owner", "admin", "member", "viewer"

  • statusstring필수

    enum: "active", "suspended"

  • allOf 2object
  • previousRolestring필수

    enum: "owner", "admin", "member", "viewer"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/members/{memberId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "role": "admin"
}'

Oauth

POST/v1/workspaces/{workspaceId}/oauth/setup-ticket

에이전트 연결 설정 티켓 만들기

로그인한 사람의 세션이 필요해요. API 키와 에이전트 자격 증명은 이 작업을 허가할 수 없어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • entry_surfacestring필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent"

  • client_namestring필수

    minLength: 1 · maxLength: 100

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • mcp_urlstring필수
  • expires_atstring필수

    format: "date-time"

  • scopesarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/oauth/setup-ticket' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "entry_surface": "codex",
  "client_name": "example"
}'
POST/v1/workspaces/{workspaceId}/oauth/setup-ticket/connection-code

에이전트 연결 코드 이메일 보내기

로그인한 사람의 세션이 필요해요. API 키와 에이전트 자격 증명은 이 작업을 허가할 수 없어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • mcp_urlstring필수

    minLength: 8 · maxLength: 8000

  • reuse_pendingboolean

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수

    enum: "code_sent"

  • messagestring
  • expires_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/oauth/setup-ticket/connection-code' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mcp_url": "examplex",
  "reuse_pending": true
}'
DELETE/v1/workspaces/{workspaceId}/oauth/setup-ticket/connection-code

대기 중인 에이전트 연결 코드 취소

로그인한 사람의 세션이 필요해요. API 키와 에이전트 자격 증명은 이 작업을 허가할 수 없어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • mcp_urlstring필수

    minLength: 8 · maxLength: 8000

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수

    enum: "cancelled"

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/oauth/setup-ticket/connection-code' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mcp_url": "examplex"
}'

Oauth 클라이언트

GET/v1/workspaces/{workspaceId}/oauth-clients

Gemini Enterprise처럼 클라이언트 ID와 비밀 값으로 연결하는 에이전트 플랫폼용 워크스페이스 OAuth 클라이언트를 조회해요.

소유자와 관리자만 가능해요. 비밀 값은 반환하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최신순 활성 OAuth 클라이언트.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • client_idstring필수
  • namestring필수
  • presetstring필수

    enum: "gemini_enterprise", "custom"

  • client_surfacestring필수

    클라이언트 이름과 리디렉션 URI로 확인한 OAuth 연결의 에이전트 플랫폼.

    enum: "codex", "chatgpt", "claude", "grok", "gemini", "other_agent"

  • redirect_urisarray필수
  • 각 항목string

    format: "uri"

  • connectionsinteger필수

    이 클라이언트를 통해 생성된 활성 연결.

    minimum: 0

  • created_atstring필수

    format: "date-time"

  • created_by_youboolean필수
  • setupobject필수

    에이전트 플랫폼의 사용자 지정 MCP 서버 양식에 입력할 값.

  • server_urlstring필수

    format: "uri"

  • authorization_urlstring필수

    format: "uri"

  • token_urlstring필수

    format: "uri"

  • scopesstring필수

    공백으로 구분해요. offline_access는 모든 연결에 있는 새로 고침 토큰을 요청해요.

  • token_endpoint_auth_methodsarray필수
  • 각 항목string

    enum: "client_secret_basic", "client_secret_post"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/oauth-clients' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/oauth-clients

에이전트 플랫폼용 기밀 OAuth 클라이언트(클라이언트 ID와 비밀 값)를 만들어요.

소유자와 관리자만 가능해요. 클라이언트로 연결하는 각 멤버는 Banger에 로그인하고 접근을 승인하며 이 워크스페이스에서 자신의 역할로 작업해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring

    연결된 앱에 표시돼요. 이 프리셋 기본값은 "Gemini Enterprise"예요.

    minLength: 1 · maxLength: 100

  • presetstring

    gemini_enterprise는 Google 리디렉션 URI를 사용하며 custom은 redirect_uris가 필요해요.

    default: "gemini_enterprise" · enum: "gemini_enterprise", "custom"

  • redirect_urisarray

    사용자 지정 프리셋만 해당해요. HTTPS 리디렉션 URI는 생성 시 고정돼요.

    minItems: 1 · maxItems: 10

  • 각 항목string

    format: "uri"

성공 응답 201

OAuth 클라이언트가 생성됐어요. 클라이언트 비밀 값은 한 번만 반환돼요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • client_idstring필수
  • namestring필수
  • presetstring필수

    enum: "gemini_enterprise", "custom"

  • client_surfacestring필수

    클라이언트 이름과 리디렉션 URI로 확인한 OAuth 연결의 에이전트 플랫폼.

    enum: "codex", "chatgpt", "claude", "grok", "gemini", "other_agent"

  • redirect_urisarray필수
  • 각 항목string

    format: "uri"

  • connectionsinteger필수

    이 클라이언트를 통해 생성된 활성 연결.

    minimum: 0

  • created_atstring필수

    format: "date-time"

  • created_by_youboolean필수
  • setupobject필수

    에이전트 플랫폼의 사용자 지정 MCP 서버 양식에 입력할 값.

  • server_urlstring필수

    format: "uri"

  • authorization_urlstring필수

    format: "uri"

  • token_urlstring필수

    format: "uri"

  • scopesstring필수

    공백으로 구분해요. offline_access는 모든 연결에 있는 새로 고침 토큰을 요청해요.

  • token_endpoint_auth_methodsarray필수
  • 각 항목string

    enum: "client_secret_basic", "client_secret_post"

  • allOf 2object
  • client_secretstring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/oauth-clients' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "preset": "gemini_enterprise",
  "redirect_uris": [
    "https://example.com"
  ]
}'
POST/v1/workspaces/{workspaceId}/oauth-clients/{clientId}/revoke

OAuth 클라이언트를 취소해요. 비밀 값은 작동하지 않고 이를 통해 생성된 모든 연결은 약 30초 내 접근을 잃어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

clientId
path · 필수
  • valuestring

    maxLength: 200

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

OAuth 클라이언트가 취소됐어요.

application/json

  • valueobject
  • dataobject필수
  • client_idstring필수
  • revokedboolean필수

    const: true

  • revoked_connectionsinteger필수

    minimum: 0

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/oauth-clients/{clientId}/revoke' \
  --header "Authorization: Bearer $BANGER_API_KEY"

실시간 티켓

POST/v1/workspaces/{workspaceId}/realtime-ticket

createRealtimeTicket

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • device_idstring필수

    minLength: 8 · maxLength: 128

성공 응답 200

작업자와 워크스페이스 범위의 단기 티켓.

application/json

  • valueobject
  • dataobject필수
  • ticketstring필수
  • websocket_urlstring필수

    format: "uri"

  • expires_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/realtime-ticket' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "device_id": "examplex"
}'

검토 정책

GET/v1/workspaces/{workspaceId}/review-policy

getActionReviewPolicy

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 자동 검토 정책.

application/json

  • valueobject
  • dataobject필수
  • policy_versioninteger필수

    enum: 1, 2

  • automatic_review_enabledboolean필수
  • manual_send_review_enabledboolean필수

    직접 요청 기본값은 False이며 저장된 더 엄격한 한도는 활성 상태를 유지해요.

  • manual_send_recipient_thresholdinteger필수

    minimum: 1 · maximum: 1000000

  • updated_by_actor_idstring필수
  • created_atstring | null

    format: "date-time"

  • updated_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/review-policy' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/review-policy

updateActionReviewPolicy

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • automatic_review_enabledboolean필수
  • manual_send_recipient_thresholdinteger필수

    minimum: 1 · maximum: 1000000

  • manual_send_review_enabledboolean

    선택적 사람 검토 한도를 켜며 명시적 기존 임계값 업데이트는 활성 상태를 유지해요.

성공 응답 200

업데이트된 자동 검토 정책.

application/json

  • valueobject
  • dataobject필수
  • policy_versioninteger필수

    enum: 1, 2

  • automatic_review_enabledboolean필수
  • manual_send_review_enabledboolean필수

    직접 요청 기본값은 False이며 저장된 더 엄격한 한도는 활성 상태를 유지해요.

  • manual_send_recipient_thresholdinteger필수

    minimum: 1 · maximum: 1000000

  • updated_by_actor_idstring필수
  • created_atstring | null

    format: "date-time"

  • updated_atstring | null

    format: "date-time"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/review-policy' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "automatic_review_enabled": true,
  "manual_send_recipient_threshold": 1,
  "manual_send_review_enabled": true
}'

선택

POST/v1/workspaces/{workspaceId}/select

워크스페이스를 로그인한 사람의 현재 워크스페이스로 설정해요.

브라우저 세션만 가능해요. API 키와 OAuth 권한은 허가받은 워크스페이스에 고정돼 403 credential_workspace_pinned를 받아요. 활성 멤버십이 필요해요. 앱은 이 워크스페이스의 제품과 온보딩을 열며 개인 온보딩 여정은 초기화되지 않아요. 멱등해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스가 선택됐어요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • selected_workspace_idstring필수

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/select' \
  --header "Authorization: Bearer $BANGER_API_KEY"

보낸 사람 아바타

GET/v1/workspaces/{workspaceId}/sender-avatar

getSenderAvatar

먼저 정확한 보낸 사람 아바타를 찾고 도메인 아이콘을 발견해 워크스페이스 비공개 B2 접두사에 캐시해요. 사진이 없으면 204이며 404는 이 워크스페이스 발신자가 아닌 주소를 뜻해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

email
query · 필수
  • valuestring

    format: "email" · maxLength: 320

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

인증된 발신자 또는 도메인 아바타 이미지.

image/png

  • valuestring

    format: "binary"

image/jpeg

  • valuestring

    format: "binary"

image/webp

  • valuestring

    format: "binary"

image/svg+xml

  • valuestring

    format: "binary"

image/x-icon

  • valuestring

    format: "binary"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sender-avatar?email=person%40example.com' \
  --header "Authorization: Bearer $BANGER_API_KEY"

발송 상태

GET/v1/workspaces/{workspaceId}/sending-health

보낸 사람 평판 적용 상태, 레인 비율, 일시 중지, 적용 임계값을 읽어요.

모든 발송 도메인의 각 레인(메일함, 제품, 단체 발송)에 대해 최근 24시간 하드 바운스 및 신고 비율, 상태(active, warning, paused), 도메인 일시 중지, 중지된 메일함, 워크스페이스 동결 여부를 표시해요. 각 일시 중지는 주요 바운스 및 신고 소스와 워크스페이스 관리자의 재개 가능 여부를 나열해요. 임계값은 docs/product/sending-reputation-enforcement.md에 문서화돼 있어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

발송 상태.

application/json

  • valueobject
  • dataobject필수
  • workspaceobject필수
  • statestring필수

    enum: "active", "frozen"

  • hold지정되지 않음필수
  • oneOf 1object
  • idstring필수

    format: "uuid"

  • scopestring필수

    enum: "mailbox", "lane", "domain", "workspace"

  • statestring필수

    enum: "warning", "paused", "frozen"

  • reasonstring필수

    bounce_rate, complaint_rate, core_lane_paused, multiple_lanes_paused, repeat_lane_pause, multiple_domains_paused, shared_organizational_root 또는 complaint_burst.

  • started_atstring필수

    format: "date-time"

  • review_requiredboolean필수
  • evidenceobject필수
  • 추가 속성모든 값
  • resumeobject필수
  • self_serveboolean필수

    추가 중첩 생략

  • blocked_reasonstring | null필수

    추가 중첩 생략

  • resumable_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • top_sourcesarray
  • 각 항목object

    추가 중첩 생략

  • top_recipient_domainsarray
  • 각 항목object

    추가 중첩 생략

  • oneOf 2null
  • domainsarray필수
  • 각 항목object
  • domain_idstring필수

    format: "uuid"

  • domainstring필수
  • product_idstring | null필수

    format: "uuid"

  • statestring필수

    enum: "active", "paused"

  • hold지정되지 않음필수
  • oneOf 1object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • scopestring필수

    enum: "mailbox", "lane", "domain", "workspace"

    추가 중첩 생략

  • statestring필수

    enum: "warning", "paused", "frozen"

    추가 중첩 생략

  • reasonstring필수

    bounce_rate, complaint_rate, core_lane_paused, multiple_lanes_paused, repeat_lane_pause, multiple_domains_paused, shared_organizational_root 또는 complaint_burst.

    추가 중첩 생략

  • started_atstring필수

    format: "date-time"

    추가 중첩 생략

  • review_requiredboolean필수

    추가 중첩 생략

  • evidenceobject필수

    추가 중첩 생략

  • resumeobject필수

    추가 중첩 생략

  • top_sourcesarray

    추가 중첩 생략

  • top_recipient_domainsarray

    추가 중첩 생략

  • oneOf 2null
  • lanesarray필수
  • 각 항목object
  • lane_kindstring필수

    enum: "mailbox", "product", "broadcast"

    추가 중첩 생략

  • sending_stream_idstring필수

    format: "uuid"

    추가 중첩 생략

  • from_domainstring필수

    추가 중첩 생략

  • statestring필수

    enum: "active", "warning", "paused"

    추가 중첩 생략

  • probation_untilstring | null필수

    format: "date-time"

    추가 중첩 생략

  • ratesobject필수

    추가 중첩 생략

  • hold지정되지 않음필수

    추가 중첩 생략

  • mailboxesarray필수
  • 각 항목object
  • mailbox_idstring필수

    format: "uuid"

  • addressstring필수
  • product_idstring | null필수

    format: "uuid"

  • statestring필수

    enum: "paused"

  • holdobject필수
  • idstring필수

    format: "uuid"

  • scopestring필수

    enum: "mailbox", "lane", "domain", "workspace"

  • statestring필수

    enum: "warning", "paused", "frozen"

  • reasonstring필수

    bounce_rate, complaint_rate, core_lane_paused, multiple_lanes_paused, repeat_lane_pause, multiple_domains_paused, shared_organizational_root 또는 complaint_burst.

  • started_atstring필수

    format: "date-time"

  • review_requiredboolean필수
  • evidenceobject필수
  • 추가 속성모든 값
  • resumeobject필수
  • self_serveboolean필수

    추가 중첩 생략

  • blocked_reasonstring | null필수

    추가 중첩 생략

  • resumable_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • top_sourcesarray
  • 각 항목object

    추가 중첩 생략

  • top_recipient_domainsarray
  • 각 항목object

    추가 중첩 생략

  • thresholdsobject필수

    적용 임계값(src/sending/reputation-policy.ts).

  • 추가 속성모든 값

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-health' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/sending-health/resume

비율과 소스를 검토한 후 레인, 도메인 또는 메일함 일시 중지 하나를 재개해요.

워크스페이스 관리자만 가능해요. 레인 또는 도메인 중지 24시간 후 허용되며 도메인당 30일에 한 번이에요. 30일 내 반복 중지나 동결 워크스페이스는 Banger 검토가 필요하고 423으로 거부돼요. 재개 후 레인은 24시간 동안 더 작은 배치로 발송하며 보류된 단체 발송과 여정은 자동으로 계속돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • hold_idstring필수

    getSendingHealth의 일시 중지(hold.id).

    format: "uuid"

  • acknowledge_reputation_riskboolean필수

    const: true

  • reasonstring

    수정된 내용이며 감사 로그에 기록돼요.

    maxLength: 500

성공 응답 200

일시 중지가 해제됐어요.

application/json

  • valueobject
  • dataobject필수
  • resumedobject필수
  • idstring필수

    format: "uuid"

  • scopestring필수

    enum: "mailbox", "lane", "domain", "workspace"

  • statestring필수

    enum: "warning", "paused", "frozen"

  • reasonstring필수

    bounce_rate, complaint_rate, core_lane_paused, multiple_lanes_paused, repeat_lane_pause, multiple_domains_paused, shared_organizational_root 또는 complaint_burst.

  • started_atstring필수

    format: "date-time"

  • review_requiredboolean필수
  • evidenceobject필수
  • 추가 속성모든 값
  • resumeobject필수
  • self_serveboolean필수
  • blocked_reasonstring | null필수
  • resumable_atstring | null필수

    format: "date-time"

  • top_sourcesarray
  • 각 항목object
  • signalstring필수

    enum: "hard_bounce", "complaint"

  • sourcestring필수
  • source_idstring | null필수
  • countinteger필수
  • top_recipient_domainsarray
  • 각 항목object
  • signalstring필수

    enum: "hard_bounce", "complaint"

  • recipient_domainstring필수
  • countinteger필수
  • probation_untilstring | null필수

    format: "date-time"

  • healthobject필수
  • workspaceobject필수
  • statestring필수

    enum: "active", "frozen"

  • hold지정되지 않음필수
  • oneOf 1object
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • scopestring필수

    enum: "mailbox", "lane", "domain", "workspace"

    추가 중첩 생략

  • statestring필수

    enum: "warning", "paused", "frozen"

    추가 중첩 생략

  • reasonstring필수

    bounce_rate, complaint_rate, core_lane_paused, multiple_lanes_paused, repeat_lane_pause, multiple_domains_paused, shared_organizational_root 또는 complaint_burst.

    추가 중첩 생략

  • started_atstring필수

    format: "date-time"

    추가 중첩 생략

  • review_requiredboolean필수

    추가 중첩 생략

  • evidenceobject필수

    추가 중첩 생략

  • resumeobject필수

    추가 중첩 생략

  • top_sourcesarray

    추가 중첩 생략

  • top_recipient_domainsarray

    추가 중첩 생략

  • oneOf 2null
  • domainsarray필수
  • 각 항목object
  • domain_idstring필수

    format: "uuid"

  • domainstring필수
  • product_idstring | null필수

    format: "uuid"

  • statestring필수

    enum: "active", "paused"

  • hold지정되지 않음필수
  • oneOf 1object

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • lanesarray필수
  • 각 항목object

    추가 중첩 생략

  • mailboxesarray필수
  • 각 항목object
  • mailbox_idstring필수

    format: "uuid"

  • addressstring필수
  • product_idstring | null필수

    format: "uuid"

  • statestring필수

    enum: "paused"

  • holdobject필수
  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • scopestring필수

    enum: "mailbox", "lane", "domain", "workspace"

    추가 중첩 생략

  • statestring필수

    enum: "warning", "paused", "frozen"

    추가 중첩 생략

  • reasonstring필수

    bounce_rate, complaint_rate, core_lane_paused, multiple_lanes_paused, repeat_lane_pause, multiple_domains_paused, shared_organizational_root 또는 complaint_burst.

    추가 중첩 생략

  • started_atstring필수

    format: "date-time"

    추가 중첩 생략

  • review_requiredboolean필수

    추가 중첩 생략

  • evidenceobject필수

    추가 중첩 생략

  • resumeobject필수

    추가 중첩 생략

  • top_sourcesarray

    추가 중첩 생략

  • top_recipient_domainsarray

    추가 중첩 생략

  • thresholdsobject필수

    적용 임계값(src/sending/reputation-policy.ts).

  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-health/resume' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "hold_id": "00000000-0000-4000-8000-000000000001",
  "acknowledge_reputation_risk": true,
  "reason": "example"
}'

발송 레인

GET/v1/workspaces/{workspaceId}/sending-lanes

listEmailLanes

기본 발신자의 설정 레인과 실제 라우팅이에요. 전용 레인이 활성화될 때까지 제품과 단체 발송은 기본 메일 연결을 상속해요. 대기 중 레인은 작동 중인 경로를 교체하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

기준 레인, 상속된 경로, 기존 기본 발신자.

application/json

  • valueobject
  • dataobject필수
  • domainsarray필수
  • 각 항목object

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • created_atstring

    format: "date-time"

    추가 중첩 생략

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

    추가 중첩 생략

  • display_namestring필수

    추가 중첩 생략

  • from_domainstring필수

    추가 중첩 생략

  • mail_from_domainstring | null필수

    추가 중첩 생략

  • inbound_domainstring | null필수

    추가 중첩 생략

  • route_providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • selected_provider_connection_idstring | null필수

    format: "uuid"

    추가 중첩 생략

  • inbound_providerstring | null필수

    enum: "banger", null

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

    추가 중첩 생략

  • status_reasonstring | null필수

    추가 중첩 생략

  • desired_revisioninteger필수

    minimum: 1

    추가 중첩 생략

  • observed_revisioninteger필수

    minimum: 0

    추가 중첩 생략

  • dns_readyboolean필수

    추가 중첩 생략

  • provider_readyboolean필수

    추가 중첩 생략

  • inbound_readyboolean필수

    추가 중첩 생략

  • outbound_readyboolean필수

    추가 중첩 생략

  • banger_transport_readyboolean필수

    추가 중첩 생략

  • banger_mail_from_domainstring | null필수

    추가 중첩 생략

  • provisioning_job_idstring | null필수

    format: "uuid"

    추가 중첩 생략

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

    추가 중첩 생략

  • provisioning_error_codestring | null

    추가 중첩 생략

  • provisioning_next_attempt_atstring | null

    추가 중첩 생략

  • provisioning_last_checked_atstring | null

    추가 중첩 생략

  • provider_identity_statusstring | null

    추가 중첩 생략

  • provider_dkim_statusstring | null

    추가 중첩 생략

  • dns_recordsarray필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • routingobject필수
  • mailboxobject필수
  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • lane_idstring | null필수
  • domain_idstring | null필수
  • from_domainstring | null필수
  • sourcestring필수

    enum: "dedicated", "default_mail", "unavailable"

  • readyboolean필수
  • pending_lanesarray필수
  • 각 항목object
  • idstring필수

    추가 중첩 생략

  • from_domainstring필수

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • productobject필수
  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • lane_idstring | null필수
  • domain_idstring | null필수
  • from_domainstring | null필수
  • sourcestring필수

    enum: "dedicated", "default_mail", "unavailable"

  • readyboolean필수
  • pending_lanesarray필수
  • 각 항목object
  • idstring필수

    추가 중첩 생략

  • from_domainstring필수

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • broadcastobject필수
  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • lane_idstring | null필수
  • domain_idstring | null필수
  • from_domainstring | null필수
  • sourcestring필수

    enum: "dedicated", "default_mail", "unavailable"

  • readyboolean필수
  • pending_lanesarray필수
  • 각 항목object
  • idstring필수

    추가 중첩 생략

  • from_domainstring필수

    추가 중첩 생략

  • statusstring필수

    추가 중첩 생략

  • default_sender지정되지 않음필수
  • oneOf 1object
  • idstring필수

    format: "uuid"

  • workspace_idstring필수

    format: "uuid"

  • product_idstring | null

    메일함이 속한 제품(프로젝트)이에요. 클라이언트는 이를 사용해 메일함을 묶고 웹 앱 링크를 만들어요.

    format: "uuid"

  • domain_idstring | null

    format: "uuid"

  • addressstring필수

    format: "email"

  • display_namestring필수
  • providerstring필수

    enum: "gmail", "smtp"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • status_reasonstring | null
  • suspended_atstring | null
  • mailbox_kindstring필수

    enum: "domain", "starter"

  • oneOf 2null

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-lanes' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/sending-lanes

createEmailLane

요청된 레인만 정확한 호스트 이름에 준비해요. 인프라 잠금 아래 DNS 충돌을 다시 확인해요. 같은 기존 레인은 재사용하고 사용 중인 호스트 이름은 덮어쓰지 않아요. DNS 변경이나 추가 레인은 만들지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domainstring필수

    example.com 같은 상위 회사 도메인.

    minLength: 3 · maxLength: 253

  • from_domainstring필수

    example.com 또는 news.example.com 같은 설정할 정확한 루트 또는 하위 도메인.

    minLength: 3 · maxLength: 253

  • lanestring필수

    메일은 메일함이에요. 송수신하며 제품과 단체 발송은 선택적 전용 발송 레인이에요.

    enum: "mailbox", "product", "broadcast"

  • root_dmarc_confirmedboolean

    기존 호환성 필드이며 설정은 기존 이메일 정책을 유지하고 확인이 필요 없어요.

  • route_providersobject
  • productstring

    enum: "banger", "resend"

  • broadcaststring

    enum: "banger", "resend"

  • route_domainsobject
  • productstring
  • broadcaststring

성공 응답 200

같은 설정 레인이 멱등하게 반환됐어요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-lanes' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example",
  "from_domain": "example",
  "lane": "mailbox",
  "root_dmarc_confirmed": true,
  "route_providers": {
    "product": "banger",
    "broadcast": "banger"
  },
  "route_domains": {
    "product": "example",
    "broadcast": "example"
  }
}'
POST/v1/workspaces/{workspaceId}/sending-lanes/plan

planEmailLane

읽기 전용 가용성 및 DNS 사전 검사예요. 리소스를 만들지 않아요. 웹사이트 레코드만으로는 이메일 호스트 이름을 점유하지 않아요. 기존 설정과 Banger가 바꿔야 하는 이름의 충돌을 반환해요. 기존 발송 인증과 DMARC 정책을 유지해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domainstring필수

    example.com 같은 상위 회사 도메인.

    minLength: 3 · maxLength: 253

  • from_domainstring필수

    example.com 또는 news.example.com 같은 설정할 정확한 루트 또는 하위 도메인.

    minLength: 3 · maxLength: 253

  • lanestring필수

    메일은 메일함이에요. 송수신하며 제품과 단체 발송은 선택적 전용 발송 레인이에요.

    enum: "mailbox", "product", "broadcast"

  • root_dmarc_confirmedboolean

    기존 호환성 필드이며 설정은 기존 이메일 정책을 유지하고 확인이 필요 없어요.

  • route_providersobject
  • productstring

    enum: "banger", "resend"

  • broadcaststring

    enum: "banger", "resend"

  • route_domainsobject
  • productstring
  • broadcaststring

성공 응답 200

레인 설정 계획.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수

    enum: "available", "existing", "occupied", "migration_required"

  • from_domainstring필수
  • lanestring필수

    enum: "mailbox", "product", "broadcast"

  • domain_idstring | null필수
  • lane_idstring | null필수
  • messagestring필수
  • requires_root_confirmationboolean필수

    항상 false이며 기존 이메일 정책은 유지돼요.

  • existing_dnsarray필수
  • 각 항목object
  • namestring필수
  • typestring필수
  • valuestring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-lanes/plan' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example",
  "from_domain": "example",
  "lane": "mailbox",
  "root_dmarc_confirmed": true,
  "route_providers": {
    "product": "banger",
    "broadcast": "banger"
  },
  "route_domains": {
    "product": "example",
    "broadcast": "example"
  }
}'
POST/v1/workspaces/{workspaceId}/sending-lanes/migrations

requestEmailLaneMigration

이 레인만의 기존 사람 마이그레이션 검토를 요청해요. 로그인한 관리자만 승인에서 허가할 수 있어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

X-Banger-Product-Id
header · 필수

명시적 작업 제품으로 제품 범위 OAuth 자격 증명과 일치해야 해요.

  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domainstring필수

    example.com 같은 상위 회사 도메인.

    minLength: 3 · maxLength: 253

  • from_domainstring필수

    example.com 또는 news.example.com 같은 설정할 정확한 루트 또는 하위 도메인.

    minLength: 3 · maxLength: 253

  • lanestring필수

    메일은 메일함이에요. 송수신하며 제품과 단체 발송은 선택적 전용 발송 레인이에요.

    enum: "mailbox", "product", "broadcast"

  • root_dmarc_confirmedboolean

    기존 호환성 필드이며 설정은 기존 이메일 정책을 유지하고 확인이 필요 없어요.

  • route_providersobject
  • productstring

    enum: "banger", "resend"

  • broadcaststring

    enum: "banger", "resend"

  • route_domainsobject
  • productstring
  • broadcaststring

성공 응답 200

기존 마이그레이션 검토가 반환됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-lanes/migrations' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'X-Banger-Product-Id: 00000000-0000-4000-8000-000000000001' \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example",
  "from_domain": "example",
  "lane": "mailbox",
  "root_dmarc_confirmed": true,
  "route_providers": {
    "product": "banger",
    "broadcast": "banger"
  },
  "route_domains": {
    "product": "example",
    "broadcast": "example"
  }
}'

시작 리소스

GET/v1/workspaces/{workspaceId}/starters

listStarters

제품 브랜드로 렌더링된 시작 레이아웃이며 각각 요약(용도, 발송 시점, 지표, 방식, 테스트 제목), 슬롯, 기본 콘텐츠가 있어요. 목록은 간결하고 기본값은 제품 업종이에요. body_html은 id로 시작 항목 하나를 요청하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

id
query

시작 항목 하나이며 body_html을 포함해요.

  • valuestring
business
query
  • valuestring

    enum: "all", "saas", "shop", "creator", "services", "local", "community"

stage
query
  • valuestring

    enum: "onboarding", "activation", "revenue", "retention", "publish", "account"

category
query
  • valuestring

    enum: "product", "lifecycle", "broadcast"

include_html
query
  • valueboolean
style
query

시각 스타일이며 기본값은 브랜드 email_style이에요.

  • valuestring

    enum: "brand", "clarity", "editorial", "luxe", "material", "playful", "bold", "plain"

locale
query

기본 문구와 갤러리 라벨 언어이며 기본값은 en-US예요.

  • valuestring

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수
  • versioninteger필수
  • categorystring필수
  • message_kindstring필수
  • familystring필수
  • stagestring필수
  • businessesarray필수
  • 각 항목string
  • namestring필수
  • descriptionstring필수
  • subjectstring필수
  • body_textstring필수
  • briefobject필수
  • jobstring필수
  • send_whenstring필수
  • metricstring필수
  • mechanicstring필수
  • subject_variantsarray필수
  • 각 항목string
  • keeparray
  • 각 항목string
  • avoidarray
  • 각 항목string
  • imageryobject
  • defaultstring필수
  • slotstring
  • photo_ideastring
  • slotsarray필수
  • 각 항목object
  • keystring필수

    pattern: "^[A-Za-z0-9_$.-]{1,200}$"

  • labelstring

    maxLength: 120

  • typestring

    enum: "text", "paragraph", "url", "image"

  • helpstring

    maxLength: 300

  • contentobject필수
  • 추가 속성string
  • body_htmlstring
  • businessstring필수
  • stylestring필수
  • businessesarray필수
  • 각 항목object
  • keystring
  • labelstring
  • hintstring
  • stagesarray필수
  • 각 항목object
  • keystring
  • labelstring
  • stylesarray필수
  • 각 항목object
  • keystring필수
  • labelstring필수
  • descriptionstring필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/starters?id=example&business=all&stage=onboarding&category=product&include_html=true&style=brand&locale=example' \
  --header "Authorization: Bearer $BANGER_API_KEY"

지원

POST/v1/workspaces/{workspaceId}/support/messages

Banger 지원에 메시지 보내기

support@team.bangermail.com으로 메시지를 보내고 Reply-To를 로그인한 사람의 검증된 주소(OAuth 권한의 사람 또는 정적 API 키의 워크스페이스 소유자)로 설정해요. 워크스페이스, 역할, 요금제가 첨부돼요. 사람당 하루 10개 메시지예요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • messagestring필수

    minLength: 1 · maxLength: 5000

  • contextobject

    사람이 있던 위치에 대해 클라이언트가 아는 정보예요. 모든 필드는 선택적이며 앞뒤 공백을 제거해요.

  • surfacestring

    maxLength: 120

  • app_releasestring

    maxLength: 64

  • browserstring

    maxLength: 300

  • localestring

    maxLength: 35

  • recent_errorsarray

    maxItems: 5

  • 각 항목string

    maxLength: 300

성공 응답 201

메시지가 지원팀에 전송됐어요.

application/json

  • valueobject
  • dataobject
  • statusstring필수

    enum: "sent"

  • reply_tostring필수

    format: "email"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/support/messages' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "message": "example",
  "context": {
    "surface": "example",
    "app_release": "example",
    "browser": "example",
    "locale": "example",
    "recent_errors": [
      "example"
    ]
  }
}'

발송 억제

GET/v1/workspaces/{workspaceId}/suppressions

listSuppressions

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • email_hashstring필수
  • reasonstring필수

    enum: "unsubscribe", "hard_bounce", "complaint", "manual"

  • source_idstring | null필수
  • created_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/suppressions' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/suppressions

createSuppression

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • emailstring필수

    minLength: 3 · maxLength: 320

  • reasonstring

    default: "manual" · enum: "unsubscribe", "hard_bounce", "complaint", "manual"

  • source_idstring

    maxLength: 500

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • email_hashstring필수
  • reasonstring필수

    enum: "unsubscribe", "hard_bounce", "complaint", "manual"

  • source_idstring | null필수
  • created_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/suppressions' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "email": "example",
  "reason": "manual",
  "source_id": "example"
}'
DELETE/v1/workspaces/{workspaceId}/suppressions/{emailHash}

deleteSuppression

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

emailHash
path · 필수
  • valuestring

    pattern: "^[0-9a-f]{64}$"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

발송 억제가 제거됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/suppressions/{emailHash}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

화면 데이터

GET/v1/workspaces/{workspaceId}/surface-data/{surface}

허가된 데이터베이스 트랜잭션 하나로 제품 화면을 불러와요.

제품 범위 화면 하나의 제한된 초기 표시 데이터를 반환해요. 요청은 엔드포인트 쿼리와 같은 테넌트 격리 트랜잭션에서 워크스페이스 멤버십과 선택한 제품을 검증해요. 웹훅 화면은 event_definitions(임시저장 포함 여정 트리거 및 목표 이름), event_stats(저장된 수신 기록 전체 집계), receipts(최신순 최대 51행)를 포함해요. 클라이언트는 50개를 표시하고 추가 행으로 다음 페이지를 감지해요. 수신 웹훅에는 public_url이 있으며 자격 증명은 별도로 조회해요. 수신 메타데이터에는 원시 payload나 과거 테스트/실제 라벨이 없어요. outgoing_event_types는 설정된 엔드포인트와 독립적인 자동 Banger 이벤트 및 수동 webhook.test 이벤트의 고정 카탈로그를 포함해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

surface
path · 필수
  • valuestring

    enum: "home", "product", "broadcasts", "audience", "domains", "mailboxes", "journeys", "deliverability", "api_keys", "webhooks", "approvals", "connections", "logs"

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

webhook_id
query

웹훅 화면에서 수신 이력과 외부 전달을 이 엔드포인트로 제한해요.

  • valuestring

    format: "uuid"

event_type
query

웹훅 화면에서 정확한 이벤트 이름으로 수신 기록을 필터링해요. 카탈로그 정의와 합계는 제품 전체로 유지돼요.

  • valuestring

    maxLength: 120

receipt_before
query

수신 커서이며 마지막 표시 행의 receivedAt, endpointId, eventId가 있는 JSON 객체예요. 밀리초 미만 정밀도를 유지하려면 receivedAt을 그대로 보존하세요. JSON 값을 URL 인코딩하세요.

  • valuestring

    maxLength: 4096

mailbox_id
query
  • valuestring

    format: "uuid"

approval_id
query
  • valuestring

    format: "uuid"

label_id
query
  • valuestring

    format: "uuid"

view
query
  • valuestring

    enum: "inbox", "sent", "drafts", "archive", "trash", "spam", "all"

since
query
  • valuestring

    format: "date-time"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

제품 범위 초기 표시 화면 데이터.

application/json

  • valueobject
  • dataobject필수

    surface와 쿼리 매개변수로 선택한 화면별 집계예요. 키와 중첩 리소스 투영은 surface(home, product, broadcasts, audience, domains, mailboxes, journeys, deliverability, api_keys, webhooks, approvals, connections, logs)마다 달라요.

  • 추가 속성모든 값

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/surface-data/{surface}?limit=50&webhook_id=00000000-0000-4000-8000-000000000001&event_type=example&receipt_before=example&mailbox_id=00000000-0000-4000-8000-000000000001&approval_id=00000000-0000-4000-8000-000000000001&label_id=00000000-0000-4000-8000-000000000001&view=inbox&since=2026-01-01T00%3A00%3A00Z' \
  --header "Authorization: Bearer $BANGER_API_KEY"

분류 작업

GET/v1/workspaces/{workspaceId}/triage-actions

listTriageActions

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailbox_id
query
  • valuestring

    format: "uuid"

thread_id
query
  • valuestring

    format: "uuid"

rule_id
query
  • valuestring

    format: "uuid"

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • thread_idstring필수

    format: "uuid"

  • rule_idstring필수

    format: "uuid"

  • rule_namestring필수
  • auto_set_for_label_idstring | null필수

    format: "uuid"

  • actionstring필수
  • label_idstring | null필수

    format: "uuid"

  • label_namestring | null필수
  • label_emojistring | null필수
  • thread_subjectstring필수
  • created_atstring필수

    format: "date-time"

  • undone_atstring | null필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-actions?mailbox_id=00000000-0000-4000-8000-000000000001&thread_id=00000000-0000-4000-8000-000000000001&rule_id=00000000-0000-4000-8000-000000000001&limit=50' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/triage-actions/{actionId}/undo

undoTriageAction

분류 작업 하나를 되돌려요. 기본적으로 규칙에 이 이메일이 일치하지 않는다고 학습시켜요. 일반 실행 취소는 teach_rule을 false로 설정하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

actionId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • teach_ruleboolean

    규칙에 이 이메일이 일치하지 않는다고 학습시켜요. False는 피드백 없이 작업을 되돌려요.

    default: true

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • undoneboolean필수

    const: true

  • command_idstring | null필수

    format: "uuid"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-actions/{actionId}/undo' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "teach_rule": true
}'

분류 규칙

GET/v1/workspaces/{workspaceId}/triage-rules

listTriageRules

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailbox_id
query
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • auto_set_for_label_idstring | null필수

    format: "uuid"

  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray필수
  • 각 항목string

    format: "uuid"

  • actionsarray필수
  • 각 항목object
  • typestring필수

    enum: "apply_label", "archive", "mark_read", "star"

  • label_idstring

    format: "uuid"

  • enabledboolean필수
  • versioninteger필수
  • error_codestring | null필수
  • example_countinteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules?mailbox_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/triage-rules

createTriageRule

수신 메일 분류 규칙을 만들어요(모든 요금제, 활성 규칙은 요금제 수량에 포함). When = description(Jev 판단) 및/또는 exact_conditions 및/또는 has_label_ids, Then = actions.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header

제품 선택 시 적용되는 선택적 재시도 키.

  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • value지정되지 않음
  • allOf 1object
  • namestring

    maxLength: 120

  • descriptionstring | null

    maxLength: 2000

  • exact_conditionsobject

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray

    maxItems: 50

  • 각 항목string

    format: "uuid"

  • actionsarray

    minItems: 1 · maxItems: 8

  • 각 항목object
  • typestring필수

    enum: "apply_label", "archive", "mark_read", "star"

  • label_idstring

    format: "uuid"

  • enabledboolean
  • allOf 2object
  • mailbox_idstring필수

    format: "uuid"

성공 응답 201

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • auto_set_for_label_idstring | null필수

    format: "uuid"

  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray필수
  • 각 항목string

    format: "uuid"

  • actionsarray필수
  • 각 항목object
  • typestring필수

    enum: "apply_label", "archive", "mark_read", "star"

  • label_idstring

    format: "uuid"

  • enabledboolean필수
  • versioninteger필수
  • error_codestring | null필수
  • example_countinteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "description": "example",
  "exact_conditions": {
    "from": [
      "example"
    ],
    "to": [
      "example"
    ],
    "subject_contains": [
      "example"
    ],
    "has_words": [
      "example"
    ],
    "excludes_words": [
      "example"
    ],
    "has_attachment": true
  },
  "has_label_ids": [
    "00000000-0000-4000-8000-000000000001"
  ],
  "actions": [
    {
      "type": "apply_label",
      "label_id": "00000000-0000-4000-8000-000000000001"
    }
  ],
  "enabled": true,
  "mailbox_id": "00000000-0000-4000-8000-000000000001"
}'
POST/v1/workspaces/{workspaceId}/triage-rules/preview

previewTriageRule

When이 일치할 최근 스레드예요. 읽기 전용이며 점수는 반환하지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • mailbox_idstring필수

    format: "uuid"

  • rule_idstring

    format: "uuid"

  • descriptionstring

    maxLength: 2000

  • exact_conditionsobject

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray

    maxItems: 50

  • 각 항목string

    format: "uuid"

  • limitinteger

    minimum: 1 · maximum: 200

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • scannedinteger필수
  • matchesarray필수
  • 각 항목object
  • thread_idstring필수

    format: "uuid"

  • subjectstring필수
  • fromstring
  • received_atstring

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules/preview' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "rule_id": "00000000-0000-4000-8000-000000000001",
  "description": "example",
  "exact_conditions": {
    "from": [
      "example"
    ],
    "to": [
      "example"
    ],
    "subject_contains": [
      "example"
    ],
    "has_words": [
      "example"
    ],
    "excludes_words": [
      "example"
    ],
    "has_attachment": true
  },
  "has_label_ids": [
    "00000000-0000-4000-8000-000000000001"
  ],
  "limit": 1
}'
POST/v1/workspaces/{workspaceId}/triage-rules/run-past-mail

runTriageOnPastMail

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • mailbox_idstring필수

    format: "uuid"

  • rule_idsarray

    maxItems: 50

  • 각 항목string

    format: "uuid"

  • daysinteger

    minimum: 1 · maximum: 90

  • include_other_actionsboolean

    보관도 하기

성공 응답 202

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • queued_threadsinteger필수
  • daysinteger필수
  • labels_onlyboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules/run-past-mail' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001",
  "rule_ids": [
    "00000000-0000-4000-8000-000000000001"
  ],
  "days": 1,
  "include_other_actions": true
}'
GET/v1/workspaces/{workspaceId}/triage-rules/{ruleId}

getTriageRule

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

ruleId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • auto_set_for_label_idstring | null필수

    format: "uuid"

  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray필수
  • 각 항목string

    format: "uuid"

  • actionsarray필수
  • 각 항목object
  • typestring필수

    enum: "apply_label", "archive", "mark_read", "star"

  • label_idstring

    format: "uuid"

  • enabledboolean필수
  • versioninteger필수
  • error_codestring | null필수
  • example_countinteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules/{ruleId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}/triage-rules/{ruleId}

updateTriageRule

라벨 자동 설정 규칙은 updateLabel로만 편집할 수 있어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

ruleId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header

제품 선택 시 적용되는 선택적 재시도 키.

  • valuestring

    minLength: 1 · maxLength: 256

요청 본문 필수

application/json

  • valueobject
  • namestring

    maxLength: 120

  • descriptionstring | null

    maxLength: 2000

  • exact_conditionsobject

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray

    maxItems: 50

  • 각 항목string

    format: "uuid"

  • actionsarray

    minItems: 1 · maxItems: 8

  • 각 항목object
  • typestring필수

    enum: "apply_label", "archive", "mark_read", "star"

  • label_idstring

    format: "uuid"

  • enabledboolean

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • namestring필수
  • auto_set_for_label_idstring | null필수

    format: "uuid"

  • descriptionstring | null필수
  • exact_conditionsobject필수

    추가 속성 없음

  • fromarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • toarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • subject_containsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • excludes_wordsarray

    maxItems: 50

  • 각 항목string

    maxLength: 320

  • has_attachmentboolean
  • has_label_idsarray필수
  • 각 항목string

    format: "uuid"

  • actionsarray필수
  • 각 항목object
  • typestring필수

    enum: "apply_label", "archive", "mark_read", "star"

  • label_idstring

    format: "uuid"

  • enabledboolean필수
  • versioninteger필수
  • error_codestring | null필수
  • example_countinteger필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules/{ruleId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: example' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "description": "example",
  "exact_conditions": {
    "from": [
      "example"
    ],
    "to": [
      "example"
    ],
    "subject_contains": [
      "example"
    ],
    "has_words": [
      "example"
    ],
    "excludes_words": [
      "example"
    ],
    "has_attachment": true
  },
  "has_label_ids": [
    "00000000-0000-4000-8000-000000000001"
  ],
  "actions": [
    {
      "type": "apply_label",
      "label_id": "00000000-0000-4000-8000-000000000001"
    }
  ],
  "enabled": true
}'
DELETE/v1/workspaces/{workspaceId}/triage-rules/{ruleId}

deleteTriageRule

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

ruleId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

분류 규칙이 삭제됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-rules/{ruleId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

분류 사용량

GET/v1/workspaces/{workspaceId}/triage-usage

getTriageUsage

현재 UTC 달력 월의 워크스페이스 분류 사용량과 요금제 수량, 집계 초기화 시점, 더 많은 이메일을 확인하는 가장 저렴한 요금제예요. 월간 수량을 넘으면 초기화될 때까지 새 메일은 분류되지 않아요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • unlimitedboolean필수

    이 워크스페이스는 두 수량 제한이 해제돼요.

  • rule_limitinteger필수

    동시에 허용되는 활성 분류 및 자동 설정 규칙 수.

  • rules_enabledinteger필수
  • run_limitinteger필수

    UTC 달력 월마다 분류가 확인하는 이메일 수.

  • runs_this_monthinteger필수
  • resets_atstring필수

    다음 UTC 달력 월의 첫 시점.

    format: "date-time"

  • plan_keystring필수

    워크스페이스 현재 요금제이며 없으면 free예요.

  • next_plan지정되지 않음필수

    현재보다 많은 월간 이메일을 확인하는 가장 저렴한 상위 요금제이며 없거나 무제한이면 null이에요.

  • oneOf 1null
  • oneOf 2object
  • plan_keystring필수
  • labelstring필수
  • monthly_price_usdnumber필수

    표시 월간 가격(연간 청구 / 12).

  • triage_run_limitinteger필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/triage-usage' \
  --header "Authorization: Bearer $BANGER_API_KEY"

작업

GET/v1/workspaces/{workspaceId}/work

listWork

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

cursor
query
  • valuestring

    maxLength: 1024

limit
query
  • valueinteger

    minimum: 1 · maximum: 100 · default: 50

status
query
  • valuestring

    default: "open" · enum: "open", "waiting", "done"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 전체 작업 항목.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • threadobject필수
  • idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • subjectstring필수
  • snippetstring필수
  • last_message_atstring필수

    format: "date-time"

  • message_countinteger필수
  • unread_countinteger필수
  • is_archivedboolean필수
  • is_trashboolean필수
  • is_spamboolean필수
  • is_starredboolean필수
  • is_sentboolean필수
  • has_attachmentsboolean필수
  • labelsarray필수
  • 각 항목string
  • participantsarray
  • 각 항목object
  • namestring

    추가 중첩 생략

  • emailstring필수

    format: "email"

    추가 중첩 생략

  • statusstring필수

    enum: "open", "waiting", "done"

  • priorityinteger필수
  • assignee_identity_idstring
  • updated_atstring필수

    format: "date-time"

  • pageobject필수
  • next_cursorstring
  • has_moreboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/work?cursor=example&limit=50&status=open' \
  --header "Authorization: Bearer $BANGER_API_KEY"

연결

GET/v1/workspaces/{workspaceId}/connections

Banger 관리 제품 및 비즈니스 데이터 연결을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

연결 메타데이터와 기능이며 자격 증명 자료는 반환하지 않아요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • adapter_keystring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • display_namestring필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • auth_kindstring필수

    enum: "api_key", "oauth2", "service_account", "none"

  • freshness_modestring필수

    enum: "webhook", "poll", "on_demand", "hybrid"

  • capabilitiesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성모든 값
  • configobject필수

    클라우드 호스트와 프로젝트 ID 같은 비밀이 아닌 어댑터 설정.

  • 추가 속성모든 값
  • active_credential_versioninteger | null
  • external_account_idstring | null
  • external_account_namestring | null
  • last_validated_atstring | null

    format: "date-time"

  • last_success_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/connections/adapters/{adapterKey}

Banger 관리 소스 연결을 검증하고 암호화해요.

Mailchimp 연결은 startMailchimpMigration처럼 즉시 이전을 시작하며 응답은 첫 보고서를 `mailchimp_migration`에 포함해요. display_name이 없으면 Mailchimp 연결은 "Mailchimp (Acme Inc)"처럼 계정 이름으로 지정돼요. 이미 연결된 Mailchimp 계정을 연결하면 409 `mailchimp_account_already_connected`와 `error.details.connection_id`를 반환해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

adapterKey
path · 필수
  • valuestring

    enum: "anthropic", "figma", "github", "google-analytics", "google-calendar", "hubspot", "linear", "mailchimp", "notion", "openai", "slack", "snowflake", "zendesk"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • api_keystring필수

    API 키 또는 공급자 서비스 계정 JSON.

    minLength: 12 · maxLength: 10000

  • display_namestring

    maxLength: 100

  • configobject
  • 추가 속성모든 값

성공 응답 200

기존 연결 요청의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • adapter_keystring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • display_namestring필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • auth_kindstring필수

    enum: "api_key", "oauth2", "service_account", "none"

  • freshness_modestring필수

    enum: "webhook", "poll", "on_demand", "hybrid"

  • capabilitiesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성모든 값
  • configobject필수

    클라우드 호스트와 프로젝트 ID 같은 비밀이 아닌 어댑터 설정.

  • 추가 속성모든 값
  • active_credential_versioninteger | null
  • external_account_idstring | null
  • external_account_namestring | null
  • last_validated_atstring | null

    format: "date-time"

  • last_success_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • mailchimp_migrationobject

    Mailchimp 연결 하나에서 제품으로 이전해요. 실시간 진행은 GET /mailchimp-migration을 폴링하세요: `phase`는 현재 단계를 나타내며 `counts`, `audiences`, `segments`, `templates`, `campaigns`는 진행하면서 늘어나요.

  • migration_idstring필수

    format: "uuid"

  • connection_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "importing", "completed"

  • phasestring필수

    importing (reading Mailchimp), copying_designs (templates and campaigns), finishing, completed, needs_new_key (Mailchimp rejected the API key; the move is paused until a new key is saved with rotateConnectionCredential), or disconnected (the connection was removed; everything already moved stays in Banger and the counts stay readable).

    enum: "importing", "copying_designs", "finishing", "completed", "needs_new_key", "disconnected"

  • started_atstring필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • connectionobject필수
  • display_namestring필수
  • account_namestring | null필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • last_error_codestring | null필수
  • needs_new_keyboolean필수
  • messagestring

    Present when needs_new_key or disconnected, ready to show.

  • progressobject필수
  • import_streamsinteger필수
  • import_streams_doneinteger필수
  • failing_streamsarray필수
  • 각 항목object
  • streamstring필수
  • refstring필수
  • error_codestring | null필수
  • designs_waitinginteger필수
  • notestring필수
  • countsobject필수
  • contactsinteger필수
  • subscribedinteger필수
  • unsubscribedinteger필수
  • bouncedinteger필수
  • contact_listsinteger필수
  • contact_fieldsinteger필수
  • segments_convertedinteger필수
  • segments_kept_as_listsinteger필수
  • templates_importedinteger필수
  • templates_to_rebuildinteger필수
  • campaigns_imported_as_designsinteger필수
  • automations_importedinteger필수
  • audiencesarray필수
  • 각 항목object
  • mailchimp_idstring필수
  • namestring필수
  • list_idstring | null필수

    format: "uuid"

  • list_namestring | null필수
  • members_in_bangerinteger필수
  • subscribedinteger필수
  • unsubscribedinteger필수
  • bouncedinteger필수
  • members_in_mailchimpinteger필수
  • contact_fieldsarray필수
  • 각 항목object
  • mailchimp_tagstring필수
  • namestring필수
  • field_keystring필수
  • typestring필수

    enum: "text", "number", "boolean", "date", "choice", "choices"

  • consentstring필수
  • segmentsarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string
  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string
  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object
  • keystring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • templatesarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string
  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string
  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object
  • keystring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • campaignsarray필수
  • 각 항목object

    Mailchimp 세그먼트, 템플릿 또는 캠페인 하나가 변환된 결과.

  • mailchimp_idstring필수

    세그먼트: <audience id>:<segment id>. 템플릿과 캠페인: 해당 Mailchimp id.

  • becamestring필수

    enum: "segment", "contact_list", "template", "needs_rebuild"

  • idstring

    Banger 세그먼트

    format: "uuid"

  • namestring필수
  • reasonstring

    세그먼트가 정적 목록으로 유지된 이유

  • dropped_merge_tagsarray

    Banger에 대응 항목이 없어 디자인에서 제거한 Mailchimp 병합 태그(병합 필드 조건은 첫 분기를 유지하며 여기에 나열돼요).

  • 각 항목string
  • replaced_footerboolean

    Mailchimp 바닥글(브라우저 보기, 환경설정, 주소, 배지)이 제품 브랜드 바닥글로 바뀌었어요.

  • removed_linksarray

    바닥글 외부에서 제거된 Mailchimp 전용 페이지 링크(브라우저 보기 등)를 해당 문구로 표시해요.

  • 각 항목string
  • links_to_fillarray

    Mailchimp에서 비어 있던 링크이며 각각 발송 전에 채워야 하는 디자인 URL 슬롯이 됐어요.

  • 각 항목object
  • keystring필수

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • kept_editsboolean

    재실행에서 Banger에서 편집된 디자인을 발견해 그대로 유지했어요.

  • automationsobject필수
  • importedboolean필수

    const: false

  • whystring필수
  • next_stepsarray필수
  • 각 항목string
  • help_call_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/adapters/{adapterKey}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "api_key": "examplexxxxx",
  "display_name": "example",
  "config": {}
}'
DELETE/v1/workspaces/{workspaceId}/connections/{connectionId}

disableConnection

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

연결, 자격 증명, 동기화 상태, 권한이 취소됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx'
POST/v1/workspaces/{workspaceId}/connections/{connectionId}/validate

활성 자격 증명을 다시 검증하고 계정 메타데이터를 새로 고쳐요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

연결 자격 증명이 유효해요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • adapter_keystring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • display_namestring필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • auth_kindstring필수

    enum: "api_key", "oauth2", "service_account", "none"

  • freshness_modestring필수

    enum: "webhook", "poll", "on_demand", "hybrid"

  • capabilitiesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성모든 값
  • configobject필수

    클라우드 호스트와 프로젝트 ID 같은 비밀이 아닌 어댑터 설정.

  • 추가 속성모든 값
  • active_credential_versioninteger | null
  • external_account_idstring | null
  • external_account_namestring | null
  • last_validated_atstring | null

    format: "date-time"

  • last_success_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}/validate' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/connections/{connectionId}/credential

관리 연결 자격 증명을 검증하고 원자적으로 교체해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • api_keystring필수

    API 키 또는 공급자 서비스 계정 JSON.

    minLength: 12 · maxLength: 10000

  • display_namestring

    maxLength: 100

  • configobject
  • 추가 속성모든 값

성공 응답 200

이전 교체의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • adapter_keystring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • display_namestring필수
  • statusstring필수

    enum: "pending_validation", "active", "error", "disabled"

  • auth_kindstring필수

    enum: "api_key", "oauth2", "service_account", "none"

  • freshness_modestring필수

    enum: "webhook", "poll", "on_demand", "hybrid"

  • capabilitiesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성모든 값
  • configobject필수

    클라우드 호스트와 프로젝트 ID 같은 비밀이 아닌 어댑터 설정.

  • 추가 속성모든 값
  • active_credential_versioninteger | null
  • external_account_idstring | null
  • external_account_namestring | null
  • last_validated_atstring | null

    format: "date-time"

  • last_success_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}/credential' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "api_key": "examplexxxxx",
  "display_name": "example",
  "config": {}
}'
POST/v1/workspaces/{workspaceId}/connections/{connectionId}/query

Banger 관리 연결에서 유형이 있는 제한된 읽기를 실행해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • adapter_keystring필수

    enum: "figma", "github", "google-analytics", "google-calendar", "hubspot", "linear", "mailchimp", "notion", "slack", "snowflake", "zendesk"

  • operationstring필수

    enum: "audiences.list", "blocks.children.list", "campaigns.list", "changelog.brief", "channels.list", "comments.list", "commits.list", "companies.list", "contacts.list", "cohorts.list", "customer.brief", "customers.list", "deals.list", "events.list", "file.summary", "funnels.list", "images.render", "invoices.list", "issues.list", "launch.brief", "messages.history", "messages.search", "nodes.get", "notifications.list", "pages.retrieve", "payment_intents.list", "persons.list", "profiles.list", "queries.execute", "queries.list", "releases.list", "reports.list", "reports.run", "repositories.list", "search.list", "subscriptions.list"

  • parametersobject
  • 추가 속성모든 값

성공 응답 200

연결된 소스의 인증된 유형 응답.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • adapter_keystring필수

    enum: "figma", "github", "google-analytics", "google-calendar", "hubspot", "linear", "mailchimp", "notion", "slack", "snowflake", "zendesk"

  • operationstring필수
  • capabilitystring필수
  • sourceobject필수

    추가 속성 없음

  • external_account_idstring필수
  • external_account_namestring필수
  • fetched_atstring필수

    format: "date-time"

  • freshnessstring필수

    const: "live"

  • dataobject필수
  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}/query' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "adapter_key": "figma",
  "operation": "audiences.list",
  "parameters": {}
}'
GET/v1/workspaces/{workspaceId}/connections/{connectionId}/grants

listConnectionGrants

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

연결의 활성 권한.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object

    추가 속성 없음

  • connection_idstring필수

    format: "uuid"

  • principal_kindstring필수

    enum: "agent", "automation", "api_key"

  • principal_idstring필수
  • capabilitiesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성모든 값
  • created_by_actor_idstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • expires_atstring | null

    format: "date-time"

  • revoked_atstring | null

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}/grants' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/connections/{connectionId}/grants/{principalKind}/{principalId}

grantConnectionAccess

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

principalKind
path · 필수
  • valuestring

    enum: "agent", "automation", "api_key"

principalId
path · 필수
  • valuestring

    minLength: 1 · maxLength: 200

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • capabilitiesarray필수

    minItems: 1 · uniqueItems: true

  • 각 항목string
  • resource_scopeobject
  • 추가 속성모든 값
  • expires_atstring

    format: "date-time"

성공 응답 200

연결 접근이 허가되거나 교체됐어요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • connection_idstring필수

    format: "uuid"

  • principal_kindstring필수

    enum: "agent", "automation", "api_key"

  • principal_idstring필수
  • capabilitiesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성모든 값
  • created_by_actor_idstring필수
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • expires_atstring | null

    format: "date-time"

  • revoked_atstring | null

    format: "date-time"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}/grants/{principalKind}/{principalId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "capabilities": [
    "example"
  ],
  "resource_scope": {},
  "expires_at": "2026-01-01T00:00:00Z"
}'
DELETE/v1/workspaces/{workspaceId}/connections/{connectionId}/grants/{principalKind}/{principalId}

revokeConnectionAccess

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

connectionId
path · 필수
  • valuestring

    format: "uuid"

principalKind
path · 필수
  • valuestring

    enum: "agent", "automation", "api_key"

principalId
path · 필수
  • valuestring

    minLength: 1 · maxLength: 200

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

연결 권한이 취소됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/connections/{connectionId}/grants/{principalKind}/{principalId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

공급자

POST/v1/workspaces/{workspaceId}/providers/google/oauth/session

이 워크스페이스의 PKCE 보호 Gmail 메일함 연결을 시작해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

Gmail 허가 URL과 폴링 계약.

application/json

  • valueobject
  • sessionobject필수

    추가 속성 없음

  • sessionIdstring필수

    format: "uuid"

  • authUrlstring필수

    format: "uri"

  • expiresAtinteger필수

    format: "int64"

  • pollIntervalMsinteger필수

    minimum: 250

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/providers/google/oauth/session' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/providers/google/oauth/sessions/{sessionId}

워크스페이스 경계 안에서 Gmail 허가 세션을 폴링해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sessionId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 Gmail 허가 상태.

application/json

  • valueobject
  • sessionobject필수

    추가 속성 없음

  • statusstring필수

    enum: "pending", "complete", "error", "expired"

  • mailboxIdstring | null필수

    format: "uuid"

  • emailstring | null필수

    format: "email"

  • errorstring | null필수
  • expiresAtinteger필수

    format: "int64"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/providers/google/oauth/sessions/{sessionId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

공급자 연결

GET/v1/workspaces/{workspaceId}/provider-connections

listProviderConnections

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

공급자 연결 메타데이터이며 자격 증명 자료는 반환하지 않아요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • kindstring필수
  • ownershipstring필수

    enum: "customer", "banger"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • display_namestring필수
  • capabilitiesarray필수
  • 각 항목string
  • active_credential_versioninteger | null
  • credential_rotation_requiredboolean필수
  • last_validated_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • verified_domainsarray
  • 각 항목string

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/provider-connections' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/provider-connections/resend

createResendProviderConnection

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • api_keystring필수

    minLength: 16 · maxLength: 500

  • display_namestring

    maxLength: 100

성공 응답 200

생성된 Resend 연결의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • kindstring필수
  • ownershipstring필수

    enum: "customer", "banger"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • display_namestring필수
  • capabilitiesarray필수
  • 각 항목string
  • active_credential_versioninteger | null
  • credential_rotation_requiredboolean필수
  • last_validated_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • verified_domainsarray
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/provider-connections/resend' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "api_key": "examplexxxxxxxxx",
  "display_name": "example"
}'
PUT/v1/workspaces/{workspaceId}/provider-connections/{providerConnectionId}/credential

rotateResendProviderCredential

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

providerConnectionId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • api_keystring필수

    minLength: 16 · maxLength: 500

  • display_namestring

    maxLength: 100

성공 응답 200

Resend 자격 증명이 교체됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • kindstring필수
  • ownershipstring필수

    enum: "customer", "banger"

  • statusstring필수

    enum: "pending", "active", "suspended", "reconnect_required", "disabled"

  • display_namestring필수
  • capabilitiesarray필수
  • 각 항목string
  • active_credential_versioninteger | null
  • credential_rotation_requiredboolean필수
  • last_validated_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • disabled_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • verified_domainsarray
  • 각 항목string

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/provider-connections/{providerConnectionId}/credential' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "api_key": "examplexxxxxxxxx",
  "display_name": "example"
}'
DELETE/v1/workspaces/{workspaceId}/provider-connections/{providerConnectionId}

disableProviderConnection

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

providerConnectionId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

공급자 연결과 활성 자격 증명이 취소됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/provider-connections/{providerConnectionId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx'

발송 도메인

GET/v1/workspaces/{workspaceId}/sending-domains

listNativeSendingDomains

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스의 Banger 기본 발송 도메인.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/sending-domains

createNativeSendingDomain

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domainstring필수

    제품의 정확한 도메인 또는 하위 도메인이에요. 기본적으로 Banger는 별도 레인 하위 도메인 3개를 도출해요.

    minLength: 3 · maxLength: 253

  • setup_modestring

    간단 설정은 선택한 메일함 주소의 송수신에 메일함 전송 하나를 준비하며 단체 발송과 여정도 포함해요. 고급 설정은 별도 발송 레인을 준비해요.

    default: "advanced" · enum: "simple", "advanced"

  • mailbox_modestring

    간단 설정은 메일함 접두사가 없으면 루트가 기본이고 고급 설정은 하위 도메인이 기본이에요. 하위 도메인은 기존 도메인 메일을 유지해요. Migrate는 정확한 도메인에 메일함을 요청해요. 사용 중인 정확한 도메인이나 레인은 sending-domain-migrations 요청 후 로그인한 Banger 승인 패널의 허가가 필요해요. 에이전트 자격 증명은 이전을 허가할 수 없어요. 이전 메시지는 가져오지 않고 DNS는 자동 변경되지 않아요.

    enum: "subdomain", "migrate"

  • root_dmarc_confirmedboolean

    기존 호환성 필드이며 기존 정책을 유지하고 설정은 확인이 필요 없어요.

  • lane_prefixesobject

    추가 속성 없음

  • mailboxstring

    minLength: 1 · maxLength: 63 · default: "mail"

  • productstring

    minLength: 1 · maxLength: 63 · default: "tx"

  • broadcaststring

    minLength: 1 · maxLength: 63 · default: "broadcast"

  • route_providersobject

    Banger가 이 도메인 DNS에서 Resend를 이미 감지하고 선택한 제품에 활성 연결이 있을 때만 받아요. 그렇지 않으면 클라이언트는 이를 안내해서는 안 돼요.

    추가 속성 없음

  • productstring

    default: "banger" · enum: "banger", "resend"

  • broadcaststring

    default: "banger" · enum: "banger", "resend"

  • route_domainsobject

    Resend에서 동기화한 정확한 검증된 도메인이며 Resend를 유지하는 각 레인에 필수예요.

    추가 속성 없음

  • productstring

    minLength: 3 · maxLength: 253

  • broadcaststring

    minLength: 3 · maxLength: 253

성공 응답 200

Banger 기본 발송 도메인 요청의 멱등 재실행.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example",
  "setup_mode": "advanced",
  "mailbox_mode": "subdomain",
  "root_dmarc_confirmed": true,
  "lane_prefixes": {
    "mailbox": "mail",
    "product": "tx",
    "broadcast": "broadcast"
  },
  "route_providers": {
    "product": "banger",
    "broadcast": "banger"
  },
  "route_domains": {
    "product": "example",
    "broadcast": "example"
  }
}'
GET/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}

getNativeSendingDomain

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendingDomainId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 도메인, 스트림, 프로비저닝, 필수 DNS 상태.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
DELETE/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}

deleteNativeSendingDomain

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendingDomainId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • confirm_domainstring필수

    삭제하는 루트 도메인과 정확히 일치해야 해요.

    minLength: 3 · maxLength: 253

성공 응답 202

송수신이 중지되고 멱등 공급자 해체가 대기열에 들어가요. 이메일 이력과 감사 기록은 유지돼요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "confirm_domain": "example"
}'
DELETE/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/lanes/{laneKind}

removeNativeSendingLane

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendingDomainId
path · 필수
  • valuestring

    format: "uuid"

laneKind
path · 필수
  • valuestring

    enum: "mailbox", "product", "broadcast"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • confirm_domainstring필수

    선택한 레인의 정확한 하위 도메인.

성공 응답 202

선택한 레인만 중지돼 제거 대기열에 들어가요. 다른 레인과 메시지 이력은 유지돼요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/lanes/{laneKind}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "confirm_domain": "example"
}'
POST/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/lanes/{laneKind}/pause

pauseNativeSendingLane

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendingDomainId
path · 필수
  • valuestring

    format: "uuid"

laneKind
path · 필수
  • valuestring

    enum: "mailbox", "product", "broadcast"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

DNS나 다른 레인을 바꾸지 않고 선택한 레인을 일시 중지해요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/lanes/{laneKind}/pause' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/lanes/{laneKind}/resume

resumeNativeSendingLane

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendingDomainId
path · 필수
  • valuestring

    format: "uuid"

laneKind
path · 필수
  • valuestring

    enum: "mailbox", "product", "broadcast"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

저장된 DNS와 공급자 상태가 준비되면 선택한 레인이 재개돼요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/lanes/{laneKind}/resume' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/verify

verifyNativeSendingDomain

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

sendingDomainId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

Banger ID와 DNS 검증을 안전하게 다시 확인했어요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • domain_idstring필수

    format: "uuid"

  • product_idstring필수

    format: "uuid"

  • root_domainstring필수
  • parent_domainstring

    레인이 하위 도메인을 사용할 때 유지되는 회사 도메인.

  • setup_modestring

    enum: "simple", "advanced"

  • domain_statusstring필수

    enum: "pending", "verified", "failed", "disabled", "deleting", "deleted"

  • lanesarray필수

    minItems: 1 · maxItems: 3

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • created_atstring

    format: "date-time"

  • kindstring필수

    enum: "mailbox", "product", "broadcast"

  • display_namestring필수
  • from_domainstring필수
  • mail_from_domainstring | null필수
  • inbound_domainstring | null필수
  • route_providerstring필수

    enum: "banger", "resend"

  • selected_provider_connection_idstring | null필수

    format: "uuid"

  • inbound_providerstring | null필수

    enum: "banger", null

  • statusstring필수

    enum: "pending", "active", "paused", "deleting", "deleted"

  • status_reasonstring | null필수
  • desired_revisioninteger필수

    minimum: 1

  • observed_revisioninteger필수

    minimum: 0

  • dns_readyboolean필수
  • provider_readyboolean필수
  • inbound_readyboolean필수
  • outbound_readyboolean필수
  • banger_transport_readyboolean필수
  • banger_mail_from_domainstring | null필수
  • provisioning_job_idstring | null필수

    format: "uuid"

  • provisioning_statusstring필수

    enum: "pending", "provisioning", "waiting_dns", "active", "failed", "deleting", "deleted", "not_required"

  • provisioning_error_codestring | null
  • provisioning_next_attempt_atstring | null
  • provisioning_last_checked_atstring | null
  • provider_identity_statusstring | null
  • provider_dkim_statusstring | null
  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수
  • deletionobject | null필수

    추가 속성 없음

  • job_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "pending", "processing", "waiting_provider", "completed", "failed"

  • last_error_codestring | null필수
  • cleanup_recordsarray필수

    해체 완료 후 사용자가 제거할 수 있는 정확한 DNS 레코드.

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • lane_idstring필수

    format: "uuid"

  • providerstring필수

    enum: "banger", "resend"

  • purposestring필수
  • typestring필수

    enum: "TXT", "MX", "CNAME"

  • namestring필수
  • valuestring필수
  • priorityinteger | null필수
  • requiredboolean필수
  • statusstring필수

    enum: "pending", "verified", "error"

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

  • first_observed_atstring | null필수

    format: "date-time"

  • last_checked_atstring | null필수

    format: "date-time"

  • errorobject필수
  • 추가 속성모든 값
  • provider_referencestring | null필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domains/{sendingDomainId}/verify' \
  --header "Authorization: Bearer $BANGER_API_KEY"

발송 도메인 마이그레이션

POST/v1/workspaces/{workspaceId}/sending-domain-migrations

requestNativeDomainMigration

정확한 설정과 관측된 DNS를 대기 domain.migrate 승인으로 동결해요. 리소스를 준비하지 않아요. 로그인한 관리자만 승인 패널에서 허가할 수 있고 에이전트 자격 증명과 자동 검토는 거부돼요. 허가는 DNS 스냅샷을 원자적으로 다시 확인하고 승인된 도메인을 준비해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domainstring필수

    제품의 정확한 도메인 또는 하위 도메인이에요. 기본적으로 Banger는 별도 레인 하위 도메인 3개를 도출해요.

    minLength: 3 · maxLength: 253

  • setup_modestring

    간단 설정은 선택한 메일함 주소의 송수신에 메일함 전송 하나를 준비하며 단체 발송과 여정도 포함해요. 고급 설정은 별도 발송 레인을 준비해요.

    default: "advanced" · enum: "simple", "advanced"

  • mailbox_modestring

    간단 설정은 메일함 접두사가 없으면 루트가 기본이고 고급 설정은 하위 도메인이 기본이에요. 하위 도메인은 기존 도메인 메일을 유지해요. Migrate는 정확한 도메인에 메일함을 요청해요. 사용 중인 정확한 도메인이나 레인은 sending-domain-migrations 요청 후 로그인한 Banger 승인 패널의 허가가 필요해요. 에이전트 자격 증명은 이전을 허가할 수 없어요. 이전 메시지는 가져오지 않고 DNS는 자동 변경되지 않아요.

    enum: "subdomain", "migrate"

  • root_dmarc_confirmedboolean

    기존 호환성 필드이며 기존 정책을 유지하고 설정은 확인이 필요 없어요.

  • lane_prefixesobject

    추가 속성 없음

  • mailboxstring

    minLength: 1 · maxLength: 63 · default: "mail"

  • productstring

    minLength: 1 · maxLength: 63 · default: "tx"

  • broadcaststring

    minLength: 1 · maxLength: 63 · default: "broadcast"

  • route_providersobject

    Banger가 이 도메인 DNS에서 Resend를 이미 감지하고 선택한 제품에 활성 연결이 있을 때만 받아요. 그렇지 않으면 클라이언트는 이를 안내해서는 안 돼요.

    추가 속성 없음

  • productstring

    default: "banger" · enum: "banger", "resend"

  • broadcaststring

    default: "banger" · enum: "banger", "resend"

  • route_domainsobject

    Resend에서 동기화한 정확한 검증된 도메인이며 Resend를 유지하는 각 레인에 필수예요.

    추가 속성 없음

  • productstring

    minLength: 3 · maxLength: 253

  • broadcaststring

    minLength: 3 · maxLength: 253

성공 응답 200

기존 이전 요청이 멱등하게 반환됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • requested_by_actor_idstring필수
  • action_kindstring필수
  • summarystring필수
  • capability_scopesarray필수
  • 각 항목string
  • resource_scopeobject필수
  • 추가 속성array
  • 각 항목string
  • payloadobject필수
  • 추가 속성모든 값
  • payload_sha256string필수

    pattern: "^[0-9a-f]{64}$"

  • statusstring필수

    enum: "pending", "approved", "rejected", "cancelled", "expired"

  • missedboolean필수
  • expires_atstring필수

    format: "date-time"

  • decided_by_actor_idstring | null
  • decision_reasonstring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • decided_atstring | null

    format: "date-time"

  • execution_job_idstring

    format: "uuid"

  • reviewobject

    추가 속성 없음

  • dispositionstring필수

    enum: "automatic", "human_required"

  • recipient_countinteger | null필수

    minimum: 0

  • reasonsarray필수
  • 각 항목string
  • checksarray필수
  • 각 항목string

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/sending-domain-migrations' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example",
  "setup_mode": "advanced",
  "mailbox_mode": "subdomain",
  "root_dmarc_confirmed": true,
  "lane_prefixes": {
    "mailbox": "mail",
    "product": "tx",
    "broadcast": "broadcast"
  },
  "route_providers": {
    "product": "banger",
    "broadcast": "banger"
  },
  "route_domains": {
    "product": "example",
    "broadcast": "example"
  }
}'

웹훅

GET/v1/workspaces/{workspaceId}/webhooks

수신 이벤트 소스와 발신 이벤트 대상을 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 웹훅 엔드포인트.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • kindstring필수

    enum: "outbound", "inbound"

  • source_keystring필수

    pattern: "^[a-z0-9][a-z0-9_-]{0,62}$"

  • namestring필수
  • endpoint_urlstring | null

    format: "uri"

  • statusstring필수

    enum: "active", "disabled", "error"

  • event_typesarray필수
  • 각 항목string
  • connection_idstring | null

    format: "uuid"

  • delivered_countinteger필수

    minimum: 0

  • failed_countinteger필수

    minimum: 0

  • last_delivered_atstring | null

    format: "date-time"

  • last_received_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/webhooks

서명되고 재시도되는 대상 또는 멱등 수신 이벤트 소스를 만들어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • kindstring필수

    enum: "outbound", "inbound"

  • namestring필수

    minLength: 1 · maxLength: 120

  • source_keystring

    banger_api는 POST /events가 만드는 웹훅용으로 예약돼요.

    pattern: "^[a-z0-9][a-z0-9_-]{0,62}$" · default: "custom"

  • source_configobject

    소스별 결정론적 이벤트 평가와 전달 매핑이며 Zendesk와 Supabase Auth를 지원해요.

    추가 속성 없음

  • vip_tagsarray

    minItems: 1 · maxItems: 20 · uniqueItems: true

  • 각 항목string

    pattern: "^[a-z0-9][a-z0-9_-]{0,63}$"

  • sla_warning_minutesinteger

    minimum: 1 · maximum: 10080

  • project_urlstring

    Supabase 프로젝트 URL.

    format: "uri"

  • mailbox_idstring

    Supabase Auth 이메일에 사용하는 활성 Banger 발송 주소.

    format: "uuid"

  • template_idsobject

    각 Supabase Auth 이메일 작업에 선택된 Banger 템플릿.

    추가 속성 없음

  • signupstring필수

    format: "uuid"

  • invitestring필수

    format: "uuid"

  • magiclinkstring필수

    format: "uuid"

  • recoverystring필수

    format: "uuid"

  • email_changestring필수

    format: "uuid"

  • reauthenticationstring필수

    format: "uuid"

  • password_changed_notificationstring필수

    format: "uuid"

  • email_changed_notificationstring필수

    format: "uuid"

  • phone_changed_notificationstring필수

    format: "uuid"

  • identity_linked_notificationstring필수

    format: "uuid"

  • identity_unlinked_notificationstring필수

    format: "uuid"

  • mfa_factor_enrolled_notificationstring필수

    format: "uuid"

  • mfa_factor_unenrolled_notificationstring필수

    format: "uuid"

  • signing_secretstring

    Supabase Send Email Hook 비밀 값이며 수신 Supabase 소스에만 받고 저장 시 암호화해요.

    minLength: 20 · maxLength: 500

  • endpoint_urlstring

    발신 대상에만 필수예요.

    format: "uri"

  • event_typesarray

    보낼 이벤트예요. 생략하면 발신 엔드포인트는 기본 활동 이벤트를 받고 특정 이벤트(mail.received, mail.sent, send.*, journey.*)는 나열된 경우만 보내요. *는 대량의 send.delivered를 포함해 모두 보내요.

    minItems: 1 · maxItems: 100 · uniqueItems: true

  • 각 항목string

    enum: "*", "mail.changed", "send.changed", "campaign.changed", "audience.changed", "approval.changed", "automation.changed", "domain.changed", "sending.warning", "sending.lane_paused", "sending.domain_paused", "sending.mailbox_paused", "sending.workspace_frozen", "sending.resumed", "mail.received", "mail.sent", "send.delivered", "send.bounced", "send.complained", "journey.enrolled", "journey.completed", "journey.exited", "custom"

성공 응답 201

웹훅이 생성됐어요. 발신 서명 비밀 값은 한 번 표시되며 허가된 호출자는 수신 자격 증명 옵션을 다시 열 수 있어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • kindstring필수

    enum: "outbound", "inbound"

  • source_keystring필수

    pattern: "^[a-z0-9][a-z0-9_-]{0,62}$"

  • namestring필수
  • endpoint_urlstring | null

    format: "uri"

  • statusstring필수

    enum: "active", "disabled", "error"

  • event_typesarray필수
  • 각 항목string
  • connection_idstring | null

    format: "uuid"

  • delivered_countinteger필수

    minimum: 0

  • failed_countinteger필수

    minimum: 0

  • last_delivered_atstring | null

    format: "date-time"

  • last_received_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • signing_secretstring

    발신 요청 서명 비밀 값

  • source_urlstring

    추측할 수 없는 비밀 값을 포함한 수신 이벤트 URL.

    format: "uri"

  • webhook_urlstring

    Authorization 헤더와 사용하는 공개 수신 URL.

    format: "uri"

  • bearer_tokenstring

    Authorization Bearer로 보낼 비밀 엔드포인트 토큰.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "kind": "outbound",
  "name": "example",
  "source_key": "custom",
  "source_config": {
    "vip_tags": [
      "example"
    ],
    "sla_warning_minutes": 1,
    "project_url": "https://example.com",
    "mailbox_id": "00000000-0000-4000-8000-000000000001",
    "template_ids": {
      "signup": "00000000-0000-4000-8000-000000000001",
      "invite": "00000000-0000-4000-8000-000000000001",
      "magiclink": "00000000-0000-4000-8000-000000000001",
      "recovery": "00000000-0000-4000-8000-000000000001",
      "email_change": "00000000-0000-4000-8000-000000000001",
      "reauthentication": "00000000-0000-4000-8000-000000000001",
      "password_changed_notification": "00000000-0000-4000-8000-000000000001",
      "email_changed_notification": "00000000-0000-4000-8000-000000000001",
      "phone_changed_notification": "00000000-0000-4000-8000-000000000001",
      "identity_linked_notification": "00000000-0000-4000-8000-000000000001",
      "identity_unlinked_notification": "00000000-0000-4000-8000-000000000001",
      "mfa_factor_enrolled_notification": "00000000-0000-4000-8000-000000000001",
      "mfa_factor_unenrolled_notification": "00000000-0000-4000-8000-000000000001"
    }
  },
  "signing_secret": "examplexxxxxxxxxxxxx",
  "endpoint_url": "https://example.com",
  "event_types": [
    "*"
  ]
}'
PATCH/v1/workspaces/{workspaceId}/webhooks/{endpointId}

엔드포인트나 비밀 값을 교체하지 않고 웹훅을 끄거나 비활성 또는 실패 중인 웹훅을 다시 켜요.

비활성화는 전달 또는 수신 자동화 이벤트를 중지하고 웹훅, 이름, 이력을 유지해요. 수신 웹훅을 끄면 연결도 꺼져 이를 트리거로 사용하는 여정은 다시 켤 때까지 이벤트 수신을 멈춰요. 영구 제거하려면 웹훅을 삭제하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

endpointId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • statusstring필수

    enum: "active", "disabled"

성공 응답 200

웹훅이 다시 켜지거나 꺼졌어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • kindstring필수

    enum: "outbound", "inbound"

  • source_keystring필수

    pattern: "^[a-z0-9][a-z0-9_-]{0,62}$"

  • namestring필수
  • endpoint_urlstring | null

    format: "uri"

  • statusstring필수

    enum: "active", "disabled", "error"

  • event_typesarray필수
  • 각 항목string
  • connection_idstring | null

    format: "uuid"

  • delivered_countinteger필수

    minimum: 0

  • failed_countinteger필수

    minimum: 0

  • last_delivered_atstring | null

    format: "date-time"

  • last_received_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks/{endpointId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "status": "active"
}'
DELETE/v1/workspaces/{workspaceId}/webhooks/{endpointId}

이름을 다시 사용할 수 있도록 웹훅을 영구 삭제해요.

발신 엔드포인트는 전달 이력과 함께 삭제돼요. 수신 웹훅은 연결과 함께 삭제되며 보관된 여정을 포함해 어떤 여정도 연결을 트리거나 목표로 사용하지 않을 때만 가능해요. 웹훅을 유지하면서 멈추려면 대신 status를 disabled로 PATCH하세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

endpointId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

웹훅이 삭제됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks/{endpointId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/webhooks/{endpointId}/credentials

활성 수신 웹훅의 기존 자격 증명 옵션을 다시 열어요.

automation:execute가 필요해요. 리소스를 만들거나 교체하지 않고 같은 비밀 값을 반환해요. 이 응답은 캐시하거나 로그에 기록하지 마세요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

endpointId
path · 필수
  • valuestring

    format: "uuid"

x-banger-product-id
header

인증된 API 키가 이미 제품에 연결되지 않았다면 필수예요.

  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

비공개 소스 URL, 공개 웹훅 URL, 별도 bearer 토큰.

application/json

  • valueobject
  • data지정되지 않음
  • allOf 1object
  • idstring필수

    format: "uuid"

  • kindstring필수

    enum: "outbound", "inbound"

  • source_keystring필수

    pattern: "^[a-z0-9][a-z0-9_-]{0,62}$"

  • namestring필수
  • endpoint_urlstring | null

    format: "uri"

  • statusstring필수

    enum: "active", "disabled", "error"

  • event_typesarray필수
  • 각 항목string
  • connection_idstring | null

    format: "uuid"

  • delivered_countinteger필수

    minimum: 0

  • failed_countinteger필수

    minimum: 0

  • last_delivered_atstring | null

    format: "date-time"

  • last_received_atstring | null

    format: "date-time"

  • last_error_codestring | null
  • created_atstring필수

    format: "date-time"

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • signing_secretstring

    발신 요청 서명 비밀 값

  • source_urlstring

    추측할 수 없는 비밀 값을 포함한 수신 이벤트 URL.

    format: "uri"

  • webhook_urlstring

    Authorization 헤더와 사용하는 공개 수신 URL.

    format: "uri"

  • bearer_tokenstring

    Authorization Bearer로 보낼 비밀 엔드포인트 토큰.

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks/{endpointId}/credentials' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-product-id: 00000000-0000-4000-8000-000000000001'
GET/v1/workspaces/{workspaceId}/webhooks/{endpointId}/deliveries

발신 웹훅의 최근 전달 시도와 HTTP 결과를 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

endpointId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

최근 전달 시도.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • event_typestring필수
  • statusstring필수

    enum: "pending", "delivering", "delivered", "failed"

  • attempt_countinteger필수

    minimum: 0

  • http_statusinteger | null

    minimum: 100 · maximum: 599

  • last_error_codestring | null
  • delivered_atstring | null

    format: "date-time"

  • created_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks/{endpointId}/deliveries' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/webhooks/{endpointId}/test

정상 재시도 전달 경로로 서명된 합성 이벤트 하나를 대기열에 넣어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

endpointId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 202

서명된 테스트 이벤트가 대기열에 들어갔어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • statusstring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/webhooks/{endpointId}/test' \
  --header "Authorization: Bearer $BANGER_API_KEY"

온보딩

PUT/v1/workspaces/{workspaceId}/onboarding/path

selectOnboardingPath

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • pathstring필수

    enum: "starter_identity", "company_domain", "resend_gateway", "banger_native_sending", "work_mailbox", "gmail", "native_mailbox", "existing_provider"

성공 응답 200

서버가 기준인 온보딩 경로가 선택됐어요.

application/json

  • valueobject
  • dataobject필수
  • pathstring필수

    enum: "starter_identity", "company_domain", "resend_gateway", "banger_native_sending", "work_mailbox", "gmail", "native_mailbox", "existing_provider"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/path' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "path": "starter_identity"
}'
GET/v1/workspaces/{workspaceId}/onboarding/guided

리소스를 만들거나 이메일을 보내지 않고 기준 설정(연결, 브랜드, 도메인)을 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

x-banger-product-id
header

선택한 제품이며 활성 제품이 여러 개면 필수예요.

  • valuestring

    format: "uuid"

details
query

편집 가능한 임시저장, 브랜드, 권한 있는 DNS 레코드를 포함해요.

  • valueinteger

    enum: 1

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

저장된 진행 상황과 독립적으로 검증된 기능.

application/json

  • valueobject
  • dataobject필수
  • product_idstring필수

    format: "uuid"

  • lessonobject
  • stepstring필수
  • purposestring필수
  • setupstring필수
  • boundarystring필수
  • example_requeststring필수
  • resultstring필수
  • choicestring필수
  • skipstring | null필수
  • guidancestring
  • current_stepstring필수

    enum: "connect", "business", "identity", "sending"

  • completed_countinteger필수
  • total_stepsinteger필수

    enum: 4

  • setupobject

    웹 설정 게이트와 설정 완료 배너예요. 각 부분은 complete, verifying(도메인 레코드 추가, DNS 확인 중), skipped 또는 missing이에요.

  • connectstring필수

    enum: "complete", "skipped", "missing"

  • brandstring필수

    enum: "complete", "skipped", "missing"

  • domainstring필수

    enum: "complete", "verifying", "skipped", "missing"

  • gate_openboolean필수

    브랜드 또는 도메인이 완료되거나 건너뛰어지지 않았으면 True예요.

  • missingarray필수

    건너뛰거나 수행하지 않은 부분

  • 각 항목string

    enum: "connect", "brand", "domain"

  • unlock_video_dueboolean

    도메인 검증 후 워크스페이스가 "지금 할 수 있는 일" 동영상을 볼 때까지 True예요.

  • agent_client_namestring | null

    연결된 AI 앱

  • completeboolean필수
  • shared_education_completeboolean
  • outcomestring필수

    enum: "in_progress", "production_deferred", "production_ready"

  • recommended_actionstring필수
  • readinessobject필수
  • 추가 속성boolean
  • progressobject필수
  • 추가 속성모든 값
  • stepsarray필수
  • 각 항목object
  • idstring필수
  • titlestring필수
  • explanationstring
  • statusstring필수

    enum: "not_started", "in_progress", "waiting", "needs_attention", "complete", "skipped"

  • blocking_dependencystring | null
  • recommended_actionstring
  • actionsarray필수
  • 각 항목string
  • resource_idsarray필수
  • 각 항목string
  • evidenceobject필수
  • 추가 속성모든 값
  • 추가 속성모든 값

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/guided?details=1' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-product-id: 00000000-0000-4000-8000-000000000001'
POST/v1/workspaces/{workspaceId}/onboarding/guided

선택한 제품에 재시도 안전한 명시적 온보딩 작업 하나를 실행해요.

발송은 허가한 사용자의 검증된 가입 주소만 대상으로 해요. 여정은 비활성이고 단체 발송은 미발송 상태를 유지해요. 기존 이전 승인 경계를 적용해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

x-banger-product-id
header

선택한 제품이며 활성 제품이 여러 개면 필수예요.

  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • actionstring필수

    enum: "begin_guidance", "save_business", "discover_brand", "skip_business", "choose_identity", "defer_identity", "skip_domain", "choose_delivery", "setup_receiving", "defer_receiving", "setup_sending", "dns_applied", "verify_dns", "continue_domain", "add_inboxes", "skip_inboxes", "finish_for_now", "finish"

  • dataobject

    비즈니스 필드는 company_name, primary_goal, website_url, brand이며 임시저장 필드는 name, subject, preview_text, body_text, edit, ID 필드는 domain, local_part예요. 수신자 입력은 받지 않아요.

  • 추가 속성모든 값

성공 응답 200

요청한 작업 후 새로 고친 기준 상태.

application/json

  • valueobject
  • dataobject필수
  • product_idstring필수

    format: "uuid"

  • lessonobject
  • stepstring필수
  • purposestring필수
  • setupstring필수
  • boundarystring필수
  • example_requeststring필수
  • resultstring필수
  • choicestring필수
  • skipstring | null필수
  • guidancestring
  • current_stepstring필수

    enum: "connect", "business", "identity", "sending"

  • completed_countinteger필수
  • total_stepsinteger필수

    enum: 4

  • setupobject

    웹 설정 게이트와 설정 완료 배너예요. 각 부분은 complete, verifying(도메인 레코드 추가, DNS 확인 중), skipped 또는 missing이에요.

  • connectstring필수

    enum: "complete", "skipped", "missing"

  • brandstring필수

    enum: "complete", "skipped", "missing"

  • domainstring필수

    enum: "complete", "verifying", "skipped", "missing"

  • gate_openboolean필수

    브랜드 또는 도메인이 완료되거나 건너뛰어지지 않았으면 True예요.

  • missingarray필수

    건너뛰거나 수행하지 않은 부분

  • 각 항목string

    enum: "connect", "brand", "domain"

  • unlock_video_dueboolean

    도메인 검증 후 워크스페이스가 "지금 할 수 있는 일" 동영상을 볼 때까지 True예요.

  • agent_client_namestring | null

    연결된 AI 앱

  • completeboolean필수
  • shared_education_completeboolean
  • outcomestring필수

    enum: "in_progress", "production_deferred", "production_ready"

  • recommended_actionstring필수
  • readinessobject필수
  • 추가 속성boolean
  • progressobject필수
  • 추가 속성모든 값
  • stepsarray필수
  • 각 항목object
  • idstring필수
  • titlestring필수
  • explanationstring
  • statusstring필수

    enum: "not_started", "in_progress", "waiting", "needs_attention", "complete", "skipped"

  • blocking_dependencystring | null
  • recommended_actionstring
  • actionsarray필수
  • 각 항목string
  • resource_idsarray필수
  • 각 항목string
  • evidenceobject필수
  • 추가 속성모든 값
  • 추가 속성모든 값

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/guided' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'x-banger-product-id: 00000000-0000-4000-8000-000000000001' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "action": "begin_guidance",
  "data": {}
}'
GET/v1/workspaces/{workspaceId}/onboarding/agent-state

브라우저와 MCP의 공유 온보딩 여정을 재개해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 서버 소유 온보딩 상태.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/start

에이전트 주도 진입 화면 또는 브라우저 대안을 선택해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • entry_surfacestring필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser"

  • client_namestring

    minLength: 1 · maxLength: 100

성공 응답 200

여정이 시작되거나 재개됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/start' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "entry_surface": "codex",
  "client_name": "example"
}'
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/aha-one

영구 호스팅 메일함을 멱등하게 만들고 실제 환영 메시지 송수신 왕복을 시작해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

호스팅 메일함과 기존 증명이 재개됐어요.

application/json

  • valueobject
  • dataobject필수
  • proof_idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • mailbox_addressstring필수

    format: "email"

  • command_idstring필수

    format: "uuid"

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

  • send_completeboolean필수
  • receive_completeboolean필수
  • round_trip_check_completeboolean필수
  • agent_check_completeboolean필수
  • completeboolean필수
  • expected_subjectstring필수
  • expected_body_textstring필수
  • received_message_idstring

    format: "uuid"

  • received_thread_idstring

    format: "uuid"

  • received_subjectstring
  • received_body_textstring
  • received_atstring

    format: "date-time"

  • agent_labelstring
  • agent_suggested_actionstring
  • error_codestring
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/aha-one' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/agent-proof

OAuth에 연결된 에이전트 연결 증명을 기준 호스팅 메일함으로 보내요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

같은 OAuth 권한이 증명을 재실행했거나 이미 완료했어요.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수

    enum: "pending", "verified"

  • attempt_idstring필수

    format: "uuid"

  • oauth_grant_idstring필수
  • oauth_client_idstring | null필수
  • client_namestring | null필수
  • mailbox_idstring필수

    format: "uuid"

  • mailbox_addressstring필수

    format: "email"

  • expected_subjectstring필수
  • initiated_atstring필수

    format: "date-time"

  • command_idstring

    format: "uuid"

  • send_statusstring
  • dispatch_statusstring

    enum: "completed", "already-running", "already-settled"

  • replayedboolean
  • message_idstring

    format: "uuid"

  • thread_idstring

    format: "uuid"

  • received_atstring

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/agent-proof' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PUT/v1/workspaces/{workspaceId}/onboarding/agent-state/decision

명시적 점진적 온보딩 선택 하나를 기록해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • decisionstring필수

    enum: "agent_connection_skipped", "goals_chosen", "domain_bundle_approved", "dns_computer_use_authorized", "dns_manual_selected", "dns_records_applied", "services_reviewed", "persistent_mcp_acknowledged", "autopilot_proposed", "autopilot_skipped", "autopilot_activated", "intro_video_seen", "unlock_video_seen"

  • detailsobject
  • 추가 속성모든 값

성공 응답 200

선택이 기준 여정에 저장돼요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/decision' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "decision": "agent_connection_skipped",
  "details": {}
}'
PUT/v1/workspaces/{workspaceId}/onboarding/agent-state/domain-choice

사용자의 회사 도메인 또는 도메인 없음 온보딩 결정을 저장하고 기준 탐색을 실행해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • choicestring필수

    enum: "company_domain", "no_domain"

  • domainstring

    minLength: 3 · maxLength: 253

성공 응답 200

도메인 결정이 저장되고 여정이 재개됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/domain-choice' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "choice": "company_domain",
  "domain": "example"
}'
PUT/v1/workspaces/{workspaceId}/onboarding/agent-state/context

브라우저나 연결된 에이전트가 제공한 검토된 비즈니스 맥락을 저장해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • contextobject필수
  • 추가 속성모든 값
  • company_domainstring

    chooseAgentOnboardingDomain 이전의 캐시된 커넥터용 호환 브리지예요. 에이전트는 여전히 먼저 사용자에게 물어야 해요.

    minLength: 3 · maxLength: 253

  • client_namestring

    minLength: 1 · maxLength: 100

성공 응답 200

맥락이 접수됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/context' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "context": {},
  "company_domain": "example",
  "client_name": "example"
}'
PUT/v1/workspaces/{workspaceId}/onboarding/agent-state/plan

실제 이메일 활성화가 통과한 후 개인화된 다음 단계 선택을 저장해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • opportunitiesarray필수

    minItems: 1 · maxItems: 100

  • 각 항목object
  • 추가 속성모든 값

성공 응답 200

기회 계획이 접수됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/plan' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "opportunities": [
    {}
  ]
}'
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/apply

기회 계획으로 준비한 검토된 산출물을 기록해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • summaryobject필수
  • 추가 속성모든 값

성공 응답 200

구현 요약이 기록됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/apply' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "summary": {}
}'
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/plan/approve

에이전트가 민감한 변경을 준비하기 전에 제안된 기회 지도를 승인해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

인증된 워크스페이스 관리자가 기회 계획을 승인했어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/plan/approve' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/validate

Banger 소유 증명 상태에서 결정론적 활성화 검증을 도출해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • summaryobject
  • 추가 속성모든 값

성공 응답 200

검증 결과가 기록됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/validate' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "summary": {}
}'
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/complete

결정론적 검증이 통과한 후 온보딩을 완료해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

온보딩이 완료됐어요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • workspace_idstring필수

    format: "uuid"

  • statusstring필수

    enum: "choose_agent", "discovering", "planning", "implementing", "validating", "ready", "complete"

  • entry_surfacestring | null필수

    enum: "codex", "chatgpt", "claude", "grok", "other_agent", "browser", null

  • agent_statusstring필수

    enum: "not_connected", "connecting", "connected", "browser_only"

  • agent_client_namestring | null필수
  • domain_choicestring필수

    enum: "undecided", "company_domain", "no_domain"

  • company_domainstring | null필수
  • domain_chosen_atstring | null필수

    format: "date-time"

  • business_contextobject필수
  • 추가 속성모든 값
  • opportunity_planarray필수
  • 각 항목object
  • 추가 속성모든 값
  • implementation_summaryobject필수
  • 추가 속성모든 값
  • validation_summaryobject필수
  • 추가 속성모든 값
  • journey_metadataobject필수
  • 추가 속성모든 값
  • context_reviewed_atstring | null필수

    format: "date-time"

  • plan_proposed_atstring | null필수

    format: "date-time"

  • plan_approved_atstring | null필수

    format: "date-time"

  • completed_atstring | null필수

    format: "date-time"

  • versioninteger필수

    format: "int64" · minimum: 1

  • updated_atstring필수

    format: "date-time"

  • allOf 2object
  • domain_discovery지정되지 않음필수
  • oneOf 1object
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수

    추가 중첩 생략

  • website_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

    추가 중첩 생략

  • company_namestring필수

    추가 중첩 생략

  • summarystring필수

    추가 중첩 생략

  • audiencestring필수

    추가 중첩 생략

  • offeringsarray필수

    추가 중첩 생략

  • logo_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • favicon_urlstring | null필수

    format: "uri"

    추가 중첩 생략

  • visual_identityobject필수

    추가 중첩 생략

  • source_snapshotobject필수

    추가 중첩 생략

  • dns_signalsarray필수
  • 각 항목object

    추가 중첩 생략

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

    추가 중첩 생략

  • oneOf 2null

    추가 중첩 생략

  • provider_detectionsarray필수
  • 각 항목object

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object

    추가 중첩 생략

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

    추가 중첩 생략

  • limitationsarray필수
  • 각 항목string

    추가 중첩 생략

  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

  • oneOf 2null
  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object

    추가 중첩 생략

  • domain_bundleobject | null필수
  • 추가 속성모든 값
  • growthobject필수
  • 추가 속성모든 값
  • activationobject필수
  • modestring필수

    enum: "hosted", "company_domain", "starter"

  • statusstring필수

    enum: "hosted_mailbox_required", "hosted_mailbox_proving", "hosted_mailbox_ready", "needs_context", "needs_provisioning", "provisioning", "dns_required", "ready_for_proof", "proving", "activated", "starter_required", "starter_proving", "starter_ready"

  • domainstring | null필수
  • sending_domain_idstring | null필수

    format: "uuid"

  • mailbox_idstring | null필수

    format: "uuid"

  • mailbox_addressstring | null필수

    format: "email"

  • exact_dns_recordsarray필수
  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

    추가 중첩 생략

  • lane_idstring필수

    format: "uuid"

    추가 중첩 생략

  • providerstring필수

    enum: "banger", "resend"

    추가 중첩 생략

  • purposestring필수

    추가 중첩 생략

  • typestring필수

    enum: "TXT", "MX", "CNAME"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • priorityinteger | null필수

    추가 중첩 생략

  • requiredboolean필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "verified", "error"

    추가 중첩 생략

  • provider_statusstring필수

    enum: "pending", "verified", "error", "not_applicable"

    추가 중첩 생략

  • first_observed_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • last_checked_atstring | null필수

    format: "date-time"

    추가 중첩 생략

  • errorobject필수

    추가 중첩 생략

  • provider_referencestring | null필수

    추가 중첩 생략

  • checkpointsarray필수
  • 각 항목object
  • keystring필수

    enum: "domain", "provider", "infrastructure", "dns", "mailbox", "product", "broadcast"

    추가 중첩 생략

  • labelstring필수

    추가 중첩 생략

  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • lanesobject필수
  • mailboxobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • transactionalobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • marketingobject필수
  • statusstring필수

    enum: "pending", "working", "action_required", "verified"

    추가 중첩 생략

  • detailstring필수

    추가 중첩 생략

  • proof지정되지 않음필수
  • oneOf 1object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • command_idstring필수

    format: "uuid"

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • round_trip_check_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • expected_subjectstring필수

    추가 중첩 생략

  • expected_body_textstring필수

    추가 중첩 생략

  • received_message_idstring

    format: "uuid"

    추가 중첩 생략

  • received_thread_idstring

    format: "uuid"

    추가 중첩 생략

  • received_subjectstring

    추가 중첩 생략

  • received_body_textstring

    추가 중첩 생략

  • received_atstring

    format: "date-time"

    추가 중첩 생략

  • agent_labelstring

    추가 중첩 생략

  • agent_suggested_actionstring

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 2object
  • proof_idstring필수

    format: "uuid"

    추가 중첩 생략

  • domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • native_domain_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_idstring필수

    format: "uuid"

    추가 중첩 생략

  • mailbox_addressstring필수

    format: "email"

    추가 중첩 생략

  • transactional_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • marketing_send_intent_idstring

    format: "uuid"

    추가 중첩 생략

  • transactional_subjectstring필수

    추가 중첩 생략

  • marketing_subjectstring필수

    추가 중첩 생략

  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

    추가 중첩 생략

  • send_completeboolean필수

    추가 중첩 생략

  • transactional_receivedboolean필수

    추가 중첩 생략

  • marketing_receivedboolean필수

    추가 중첩 생략

  • receive_completeboolean필수

    추가 중첩 생략

  • agent_check_completeboolean필수

    추가 중첩 생략

  • completeboolean필수

    추가 중첩 생략

  • error_codestring

    추가 중첩 생략

  • replayedboolean필수

    추가 중첩 생략

  • oneOf 3null
  • overall_readyboolean필수
  • production_readyboolean필수
  • completedboolean필수
  • pendingboolean필수
  • next_actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • action_requiredobject필수
  • typestring필수
  • requiredboolean필수
  • actionstring필수

    enum: "choose_agent", "provision_hosted_mailbox", "send_aha_1", "wait_for_aha_1", "offer_custom_domain", "review_domain_bundle", "provision_domain_bundle", "wait_for_dns_records", "ask_computer_use_permission", "configure_dns_with_computer_use", "present_manual_dns_instructions", "wait_for_dns_propagation", "send_aha_2", "wait_for_aha_2", "create_starter_mailbox", "run_starter_proof", "wait_for_starter_proof", "collect_business_context", "build_lifecycle_map", "review_growth_system", "connect_required_services", "explain_persistent_mcp", "offer_autopilot", "activate_autopilot", "validate", "complete", "open_dashboard"

  • urlstring | null필수

    format: "uri"

  • instructionsstring | null필수
  • secure_urlstring | null필수

    format: "uri"

  • mcp_urlstring필수

    format: "uri"

  • dashboard_urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/complete' \
  --header "Authorization: Bearer $BANGER_API_KEY"
GET/v1/workspaces/{workspaceId}/onboarding/starter-proof

시작 주소 왕복의 영구 상태를 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

mailbox_id
query · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 증명 상태.

application/json

  • valueobject
  • dataobject필수
  • proof_idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • mailbox_addressstring필수

    format: "email"

  • command_idstring필수

    format: "uuid"

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

  • send_completeboolean필수
  • receive_completeboolean필수
  • round_trip_check_completeboolean필수
  • agent_check_completeboolean필수
  • completeboolean필수
  • expected_subjectstring필수
  • expected_body_textstring필수
  • received_message_idstring

    format: "uuid"

  • received_thread_idstring

    format: "uuid"

  • received_subjectstring
  • received_body_textstring
  • received_atstring

    format: "date-time"

  • agent_labelstring
  • agent_suggested_actionstring
  • error_codestring
  • replayedboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/starter-proof?mailbox_id=00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/onboarding/starter-proof

시작 주소의 실제 송수신 증명을 시작하거나 재개해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • mailbox_idstring필수

    format: "uuid"

성공 응답 200

기존 증명이 재개됐어요.

application/json

  • valueobject
  • dataobject필수
  • proof_idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • mailbox_addressstring필수

    format: "email"

  • command_idstring필수

    format: "uuid"

  • phasestring필수

    enum: "sending", "sent", "received", "checked", "failed"

  • send_completeboolean필수
  • receive_completeboolean필수
  • round_trip_check_completeboolean필수
  • agent_check_completeboolean필수
  • completeboolean필수
  • expected_subjectstring필수
  • expected_body_textstring필수
  • received_message_idstring

    format: "uuid"

  • received_thread_idstring

    format: "uuid"

  • received_subjectstring
  • received_body_textstring
  • received_atstring

    format: "date-time"

  • agent_labelstring
  • agent_suggested_actionstring
  • error_codestring
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/starter-proof' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "mailbox_id": "00000000-0000-4000-8000-000000000001"
}'
GET/v1/workspaces/{workspaceId}/onboarding/domain-proof

도메인 인프라 검사의 영구 상태를 읽어요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 증명 상태.

application/json

  • valueobject
  • dataobject필수
  • proof_idstring필수

    format: "uuid"

  • domain_idstring필수

    format: "uuid"

  • native_domain_idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • mailbox_addressstring필수

    format: "email"

  • transactional_send_intent_idstring

    format: "uuid"

  • marketing_send_intent_idstring

    format: "uuid"

  • transactional_subjectstring필수
  • marketing_subjectstring필수
  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

  • send_completeboolean필수
  • transactional_receivedboolean필수
  • marketing_receivedboolean필수
  • receive_completeboolean필수
  • agent_check_completeboolean필수
  • completeboolean필수
  • error_codestring
  • replayedboolean필수

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/domain-proof' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/onboarding/domain-proof

검증된 Banger 인프라의 실제 송수신 검사 두 개를 시작하거나 재개해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • native_domain_idstring필수

    format: "uuid"

성공 응답 200

기존 증명이 재개됐어요.

application/json

  • valueobject
  • dataobject필수
  • proof_idstring필수

    format: "uuid"

  • domain_idstring필수

    format: "uuid"

  • native_domain_idstring필수

    format: "uuid"

  • mailbox_idstring필수

    format: "uuid"

  • mailbox_addressstring필수

    format: "email"

  • transactional_send_intent_idstring

    format: "uuid"

  • marketing_send_intent_idstring

    format: "uuid"

  • transactional_subjectstring필수
  • marketing_subjectstring필수
  • phasestring필수

    enum: "sending", "receiving", "received", "checked", "failed"

  • send_completeboolean필수
  • transactional_receivedboolean필수
  • marketing_receivedboolean필수
  • receive_completeboolean필수
  • agent_check_completeboolean필수
  • completeboolean필수
  • error_codestring
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/domain-proof' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "native_domain_id": "00000000-0000-4000-8000-000000000001"
}'
PUT/v1/workspaces/{workspaceId}/onboarding/goal

selectActivationGoal

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • goalstring필수

    enum: "work_inbox", "product_email", "campaign", "company_workflow"

성공 응답 200

첫 결과가 선택됐으며 안내 실행이 제품 셸에서 열릴 수 있어요.

application/json

  • valueobject
  • dataobject필수
  • goalstring필수

    enum: "work_inbox", "product_email", "campaign", "company_workflow"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/goal' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "goal": "work_inbox"
}'
GET/v1/workspaces/{workspaceId}/onboarding/discovery

getWorkspaceDomainDiscovery

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

현재 회사와 이메일 구성 탐색.

application/json

  • valueobject
  • dataobject필수
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수
  • website_urlstring | null필수

    format: "uri"

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

  • company_namestring필수
  • summarystring필수
  • audiencestring필수
  • offeringsarray필수
  • 각 항목string
  • logo_urlstring | null필수

    format: "uri"

  • favicon_urlstring | null필수

    format: "uri"

  • visual_identityobject필수
  • colorsarray필수

    maxItems: 6

  • 각 항목string
  • fontsarray필수

    maxItems: 6

  • 각 항목string
  • tonearray필수

    maxItems: 6

  • 각 항목string
  • source_confidencestring필수

    enum: "high", "medium", "low"

  • hero_image_urlstring

    format: "uri"

  • palettearray필수

    maxItems: 6

  • 각 항목object

    추가 속성 없음

  • valuestring필수

    추가 중첩 생략

  • rolestring필수

    enum: "primary", "accent", "background", "surface", "text", "other"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • typographyarray필수

    maxItems: 6

  • 각 항목object

    추가 속성 없음

  • familystring필수

    추가 중첩 생략

  • rolestring필수

    enum: "heading", "body", "mono", "other"

    추가 중첩 생략

  • weightsarray필수

    추가 중첩 생략

  • assetsarray필수

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • urlstring필수

    format: "uri"

    추가 중첩 생략

  • kindstring필수

    enum: "logo", "wordmark", "favicon", "hero"

    추가 중첩 생략

  • sourcestring필수

    추가 중첩 생략

  • brand_summarystring필수
  • imagery_stylearray필수

    maxItems: 6

  • 각 항목string
  • source_snapshotobject필수
  • 추가 속성모든 값
  • dns_signalsarray필수
  • 각 항목object
  • namestring필수
  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

  • valuestring필수
  • ttlinteger필수

    minimum: 0

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • confidencestring필수

    enum: "high", "medium", "low"

  • dashboard_urlstring필수

    format: "uri"

  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • oneOf 2null
  • provider_detectionsarray필수
  • 각 항목object
  • keystring필수
  • namestring필수
  • categoriesarray필수
  • 각 항목string

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • confidencestring필수

    enum: "high", "medium", "low"

  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object
  • kindstring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • labelstring필수
  • statusstring필수

    enum: "detected", "missing", "needs_review"

  • provider_keysarray필수
  • 각 항목string
  • recommendationstring필수

    enum: "connect", "setup_banger", "review"

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

  • capabilitystring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • provider_keystring
  • actionstring필수

    enum: "connect", "setup_banger", "review"

  • domainstring

    minLength: 3 · maxLength: 253

  • limitationsarray필수
  • 각 항목string
  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/discovery' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/onboarding/discovery

scanWorkspaceDomain

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • domainstring필수

    minLength: 3 · maxLength: 253

  • stream_kindstring

    default: "default" · enum: "default", "transactional", "marketing"

성공 응답 201

공개 DNS와 웹사이트 탐색이 완료되고 저장됐어요.

application/json

  • valueobject
  • dataobject필수
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수
  • website_urlstring | null필수

    format: "uri"

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

  • company_namestring필수
  • summarystring필수
  • audiencestring필수
  • offeringsarray필수
  • 각 항목string
  • logo_urlstring | null필수

    format: "uri"

  • favicon_urlstring | null필수

    format: "uri"

  • visual_identityobject필수
  • colorsarray필수

    maxItems: 6

  • 각 항목string
  • fontsarray필수

    maxItems: 6

  • 각 항목string
  • tonearray필수

    maxItems: 6

  • 각 항목string
  • source_confidencestring필수

    enum: "high", "medium", "low"

  • hero_image_urlstring

    format: "uri"

  • palettearray필수

    maxItems: 6

  • 각 항목object

    추가 속성 없음

  • valuestring필수

    추가 중첩 생략

  • rolestring필수

    enum: "primary", "accent", "background", "surface", "text", "other"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • typographyarray필수

    maxItems: 6

  • 각 항목object

    추가 속성 없음

  • familystring필수

    추가 중첩 생략

  • rolestring필수

    enum: "heading", "body", "mono", "other"

    추가 중첩 생략

  • weightsarray필수

    추가 중첩 생략

  • assetsarray필수

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • urlstring필수

    format: "uri"

    추가 중첩 생략

  • kindstring필수

    enum: "logo", "wordmark", "favicon", "hero"

    추가 중첩 생략

  • sourcestring필수

    추가 중첩 생략

  • brand_summarystring필수
  • imagery_stylearray필수

    maxItems: 6

  • 각 항목string
  • source_snapshotobject필수
  • 추가 속성모든 값
  • dns_signalsarray필수
  • 각 항목object
  • namestring필수
  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

  • valuestring필수
  • ttlinteger필수

    minimum: 0

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • confidencestring필수

    enum: "high", "medium", "low"

  • dashboard_urlstring필수

    format: "uri"

  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • oneOf 2null
  • provider_detectionsarray필수
  • 각 항목object
  • keystring필수
  • namestring필수
  • categoriesarray필수
  • 각 항목string

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • confidencestring필수

    enum: "high", "medium", "low"

  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object
  • kindstring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • labelstring필수
  • statusstring필수

    enum: "detected", "missing", "needs_review"

  • provider_keysarray필수
  • 각 항목string
  • recommendationstring필수

    enum: "connect", "setup_banger", "review"

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

  • capabilitystring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • provider_keystring
  • actionstring필수

    enum: "connect", "setup_banger", "review"

  • domainstring

    minLength: 3 · maxLength: 253

  • limitationsarray필수
  • 각 항목string
  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/discovery' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain": "example",
  "stream_kind": "default"
}'
PUT/v1/workspaces/{workspaceId}/onboarding/discovery

confirmWorkspaceDomainDiscovery

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • company_namestring필수

    minLength: 1 · maxLength: 200

  • summarystring필수

    minLength: 1 · maxLength: 4000

  • audiencestring

    maxLength: 2000

  • offeringsarray

    maxItems: 8

  • 각 항목string

    maxLength: 120

  • website_urlstring | null

    format: "uri"

  • connection_planarray필수

    maxItems: 30

  • 각 항목object

    추가 속성 없음

  • capabilitystring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • provider_keystring
  • actionstring필수

    enum: "connect", "setup_banger", "review"

  • domainstring

    minLength: 3 · maxLength: 253

성공 응답 200

회사 맥락과 제안된 연결 계획이 확인됐어요.

application/json

  • valueobject
  • dataobject필수
  • domainstring필수
  • scan_statusstring필수

    enum: "complete", "partial", "failed"

  • companyobject필수
  • domainstring필수
  • website_urlstring | null필수

    format: "uri"

  • website_statusstring필수

    enum: "available", "missing", "blocked", "error"

  • company_namestring필수
  • summarystring필수
  • audiencestring필수
  • offeringsarray필수
  • 각 항목string
  • logo_urlstring | null필수

    format: "uri"

  • favicon_urlstring | null필수

    format: "uri"

  • visual_identityobject필수
  • colorsarray필수

    maxItems: 6

  • 각 항목string
  • fontsarray필수

    maxItems: 6

  • 각 항목string
  • tonearray필수

    maxItems: 6

  • 각 항목string
  • source_confidencestring필수

    enum: "high", "medium", "low"

  • hero_image_urlstring

    format: "uri"

  • palettearray필수

    maxItems: 6

  • 각 항목object

    추가 속성 없음

  • valuestring필수

    추가 중첩 생략

  • rolestring필수

    enum: "primary", "accent", "background", "surface", "text", "other"

    추가 중첩 생략

  • namestring필수

    추가 중첩 생략

  • typographyarray필수

    maxItems: 6

  • 각 항목object

    추가 속성 없음

  • familystring필수

    추가 중첩 생략

  • rolestring필수

    enum: "heading", "body", "mono", "other"

    추가 중첩 생략

  • weightsarray필수

    추가 중첩 생략

  • assetsarray필수

    maxItems: 8

  • 각 항목object

    추가 속성 없음

  • urlstring필수

    format: "uri"

    추가 중첩 생략

  • kindstring필수

    enum: "logo", "wordmark", "favicon", "hero"

    추가 중첩 생략

  • sourcestring필수

    추가 중첩 생략

  • brand_summarystring필수
  • imagery_stylearray필수

    maxItems: 6

  • 각 항목string
  • source_snapshotobject필수
  • 추가 속성모든 값
  • dns_signalsarray필수
  • 각 항목object
  • namestring필수
  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

  • valuestring필수
  • ttlinteger필수

    minimum: 0

  • dns_provider지정되지 않음필수
  • oneOf 1object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • confidencestring필수

    enum: "high", "medium", "low"

  • dashboard_urlstring필수

    format: "uri"

  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • oneOf 2null
  • provider_detectionsarray필수
  • 각 항목object
  • keystring필수
  • namestring필수
  • categoriesarray필수
  • 각 항목string

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • confidencestring필수

    enum: "high", "medium", "low"

  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • capability_summaryarray필수
  • 각 항목object
  • kindstring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • labelstring필수
  • statusstring필수

    enum: "detected", "missing", "needs_review"

  • provider_keysarray필수
  • 각 항목string
  • recommendationstring필수

    enum: "connect", "setup_banger", "review"

  • recommended_connectionsarray필수
  • 각 항목object

    추가 속성 없음

  • keystring필수
  • namestring필수
  • categorystring필수

    enum: "email", "customer", "product", "work", "data"

  • prioritystring필수

    enum: "required", "recommended"

  • reasonstring필수
  • sourcestring필수

    enum: "dns", "business_context", "opportunity_plan", "banger_recommendation"

  • setup_modestring필수

    enum: "oauth", "secure_credentials"

  • availableboolean필수
  • provider_keystring
  • evidencearray필수
  • 각 항목object
  • namestring필수

    추가 중첩 생략

  • typestring필수

    enum: "MX", "TXT", "CNAME", "NS"

    추가 중첩 생략

  • valuestring필수

    추가 중첩 생략

  • ttlinteger필수

    minimum: 0

    추가 중첩 생략

  • connection_planarray필수
  • 각 항목object

    추가 속성 없음

  • capabilitystring필수

    enum: "work_mailbox", "transactional", "marketing", "deliverability"

  • provider_keystring
  • actionstring필수

    enum: "connect", "setup_banger", "review"

  • domainstring

    minLength: 3 · maxLength: 253

  • limitationsarray필수
  • 각 항목string
  • scanned_atstring필수

    format: "date-time"

  • confirmed_atstring | null필수

    format: "date-time"

curl 예제

curl --request PUT --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/discovery' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "company_name": "example",
  "summary": "example",
  "audience": "example",
  "offerings": [
    "example"
  ],
  "website_url": "https://example.com",
  "connection_plan": [
    {
      "capability": "work_mailbox",
      "provider_key": "example",
      "action": "connect",
      "domain": "example"
    }
  ]
}'
POST/v1/workspaces/{workspaceId}/onboarding/agent-state/confirm-connection

현재 OAuth 에이전트 연결 확인

현재 에이전트 클라이언트에 설치된 OAuth 자격 증명과 automation:read 범위가 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수

    enum: "connected"

  • messagestring필수
  • workspace_idstring필수

    format: "uuid"

  • client_namestring필수
  • confirmed_atstring필수

    format: "date-time"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/onboarding/agent-state/confirm-connection' \
  --header "Authorization: Bearer $BANGER_API_KEY"

접근

GET/v1/workspaces/{workspaceId}/access

워크스페이스 멤버와 활성 초대를 조회해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

워크스페이스 디렉터리.

application/json

  • valueobject
  • dataobject필수
  • actorIdstring필수
  • identitiesarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • userIdstring필수
  • emailstring

    format: "email"

  • displayNamestring
  • kindstring필수

    const: "user"

  • rolestring필수

    enum: "owner", "admin", "member", "viewer"

  • statusstring필수

    enum: "active", "suspended"

  • pendingInvitationsarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • codestring필수

    format: "uuid"

  • inviteCodestring

    format: "uuid"

  • invitedEmailstring

    format: "email"

  • workspaceIdstring필수

    format: "uuid"

  • workspaceNamestring필수
  • rolestring필수

    enum: "admin", "member", "viewer"

  • accessScopestring

    const: "workspace"

  • statusstring필수

    enum: "pending", "accepted"

  • expiresAtstring필수

    format: "date-time"

  • notificationSentboolean

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/access' \
  --header "Authorization: Bearer $BANGER_API_KEY"

초대

POST/v1/workspaces/{workspaceId}/invitations

사람을 워크스페이스에 초대해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • emailstring필수

    format: "email" · maxLength: 320

  • rolestring

    default: "member" · enum: "admin", "member", "viewer"

  • mailbox_idsarray

    maxItems: 250

  • 각 항목string

    format: "uuid"

  • send_modestring

    default: "direct" · enum: "direct", "approval_required"

  • expires_in_hoursinteger

    minimum: 1 · maximum: 720 · default: 168

성공 응답 201

초대가 생성됐어요.

application/json

  • valueobject
  • dataobject필수
  • idstring필수

    format: "uuid"

  • codestring필수

    format: "uuid"

  • inviteCodestring

    format: "uuid"

  • invitedEmailstring

    format: "email"

  • workspaceIdstring필수

    format: "uuid"

  • workspaceNamestring필수
  • rolestring필수

    enum: "admin", "member", "viewer"

  • accessScopestring

    const: "workspace"

  • statusstring필수

    enum: "pending", "accepted"

  • expiresAtstring필수

    format: "date-time"

  • notificationSentboolean

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/invitations' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "email": "person@example.com",
  "role": "member",
  "mailbox_ids": [
    "00000000-0000-4000-8000-000000000001"
  ],
  "send_mode": "direct",
  "expires_in_hours": 168
}'

API 키

GET/v1/workspaces/{workspaceId}/api-keys

listWorkspaceApiKeys

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

활성 범위 API 키이며 비밀 값은 반환하지 않아요.

application/json

  • valueobject
  • dataarray필수
  • 각 항목object
  • idstring필수

    format: "uuid"

  • namestring필수
  • prefixstring필수
  • scopesarray필수
  • 각 항목string

    enum: "mail:read", "mail:write", "mail:send", "contacts:read", "contacts:write", "campaigns:read", "campaigns:write", "campaigns:send", "automation:read", "automation:execute", "connections:read", "connections:use", "connections:admin", "workspace:admin"

  • expires_atstring

    format: "date-time"

  • last_used_atstring

    format: "date-time"

  • created_atstring필수

    format: "date-time"

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/api-keys' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/api-keys

createWorkspaceApiKey

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 100

  • scopesarray필수

    minItems: 1 · uniqueItems: true

  • 각 항목string

    enum: "mail:read", "mail:write", "mail:send", "contacts:read", "contacts:write", "campaigns:read", "campaigns:write", "campaigns:send", "automation:read", "automation:execute", "connections:read", "connections:use", "connections:admin", "workspace:admin"

  • expires_atstring

    format: "date-time"

성공 응답 201

API 키가 생성됐어요. 토큰은 한 번만 반환돼요.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • prefixstring필수
  • scopesarray필수
  • 각 항목string

    enum: "mail:read", "mail:write", "mail:send", "contacts:read", "contacts:write", "campaigns:read", "campaigns:write", "campaigns:send", "automation:read", "automation:execute", "connections:read", "connections:use", "connections:admin", "workspace:admin"

  • expires_atstring

    format: "date-time"

  • last_used_atstring

    format: "date-time"

  • created_atstring필수

    format: "date-time"

  • allOf 2object
  • tokenstring필수
  • smtpobject

    SMTP로만 보내는 앱(Supabase Auth, Auth0, WordPress, 프레임워크 메일러)이 Banger를 통해 보내는 방법이에요. 비밀번호는 mail:send가 있는 API 키이며 Banger는 각 메시지를 작성된 대로 중계하고 모든 검사가 통과한 뒤에만 응답해요. 제출 호스트가 응답하는 환경에서 메일을 보낼 수 있는 키에만 있어요.

  • hoststring필수
  • portinteger필수

    암시적 TLS를 권장해요.

  • starttls_portinteger필수

    AUTH 이전 STARTTLS.

  • alternate_portsobject필수

    465와 587을 차단하는 네트워크용 동일한 리스너 두 개.

  • tlsinteger필수
  • starttlsinteger필수
  • usernamestring필수

    모든 사용자 이름이 작동하며 키만으로 워크스페이스와 제품을 식별해요.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/api-keys' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example",
  "scopes": [
    "mail:read"
  ],
  "expires_at": "2026-01-01T00:00:00Z"
}'
DELETE/v1/workspaces/{workspaceId}/api-keys/{apiKeyId}

revokeWorkspaceApiKey

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

apiKeyId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 204

API 키가 취소됐어요.

응답 본문 없음.

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/api-keys/{apiKeyId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"

청구

GET/v1/workspaces/{workspaceId}/billing

청구, 사용량, 사용 가능한 요금제 읽기

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • billingobject필수
  • workspaceIdstring필수

    format: "uuid"

  • tierstring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • planKeystring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • statusstring필수
  • planIntervalstring | null필수

    enum: "month", "year", null

  • stripeCustomerIdstring | null필수
  • stripeSubscriptionIdstring | null필수
  • currentPeriodEndinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • cancelAtPeriodEndboolean필수
  • prepaidPlanKeystring | null필수
  • prepaidUntilinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • usageobject필수
  • storageBytesnumber필수
  • storageLimitBytesnumber필수
  • sendsThisMonthnumber필수
  • sendLimitnumber필수
  • sendsTodaynumber필수
  • dailySendLimitnumber | null필수
  • periodEndinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • catalogobject필수
  • plansarray필수
  • 각 항목object
  • planKeystring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • labelstring필수
  • sendLimitnumber필수
  • storageGbnumber필수
  • gmailImportLimitnumber필수
  • triageRuleLimitnumber필수
  • triageRunLimitnumber필수
  • pricesarray필수
  • 각 항목object

    추가 중첩 생략

  • addonsarray필수

    maxItems: 0

  • 각 항목지정되지 않음
  • agentPayment지정되지 않음필수
  • anyOf 1object
  • network_idstring필수
  • currencystring필수

    enum: "usd"

  • howstring필수
  • optionsarray필수
  • 각 항목object
  • plan_keystring필수

    enum: "starter", "pro"

    추가 중첩 생략

  • intervalstring필수

    enum: "month", "year"

    추가 중첩 생략

  • monthsinteger필수

    enum: 1, 12

    추가 중첩 생략

  • amount_centsinteger필수

    What to mint the token for

    추가 중첩 생략

  • discountobject

    추가 중첩 생략

  • anyOf 2null
  • switchOffer지정되지 않음

    The month free on a yearly plan this workspace gets for switching from Mailchimp; null when it doesn't.

  • anyOf 1object
  • offerstring필수

    enum: "switch_from_mailchimp"

  • sourcestring필수

    enum: "signup_campaign", "mailchimp_connection"

  • appliesTostring필수

    enum: "year"

  • plansarray필수
  • 각 항목object
  • planKeystring필수

    enum: "starter", "pro", "business", "scale"

    추가 중첩 생략

  • currencystring필수

    추가 중첩 생략

  • yearlyPriceinteger필수

    In the currency's smallest unit.

    추가 중첩 생략

  • firstYearPriceinteger필수

    In the currency's smallest unit.

    추가 중첩 생략

  • messagestring필수
  • anyOf 2null

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/billing' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/billing

Stripe 청구 동기화

POST /billing/sync의 별칭이며 workspace:admin이 필요해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • billingobject필수
  • workspaceIdstring필수

    format: "uuid"

  • tierstring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • planKeystring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • statusstring필수
  • planIntervalstring | null필수

    enum: "month", "year", null

  • stripeCustomerIdstring | null필수
  • stripeSubscriptionIdstring | null필수
  • currentPeriodEndinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • cancelAtPeriodEndboolean필수
  • prepaidPlanKeystring | null필수
  • prepaidUntilinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • usageobject필수
  • storageBytesnumber필수
  • storageLimitBytesnumber필수
  • sendsThisMonthnumber필수
  • sendLimitnumber필수
  • sendsTodaynumber필수
  • dailySendLimitnumber | null필수
  • periodEndinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • catalogobject필수
  • plansarray필수
  • 각 항목object
  • planKeystring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • labelstring필수
  • sendLimitnumber필수
  • storageGbnumber필수
  • gmailImportLimitnumber필수
  • triageRuleLimitnumber필수
  • triageRunLimitnumber필수
  • pricesarray필수
  • 각 항목object

    추가 중첩 생략

  • addonsarray필수

    maxItems: 0

  • 각 항목지정되지 않음
  • agentPayment지정되지 않음필수
  • anyOf 1object
  • network_idstring필수
  • currencystring필수

    enum: "usd"

  • howstring필수
  • optionsarray필수
  • 각 항목object
  • plan_keystring필수

    enum: "starter", "pro"

    추가 중첩 생략

  • intervalstring필수

    enum: "month", "year"

    추가 중첩 생략

  • monthsinteger필수

    enum: 1, 12

    추가 중첩 생략

  • amount_centsinteger필수

    What to mint the token for

    추가 중첩 생략

  • discountobject

    추가 중첩 생략

  • anyOf 2null
  • switchOffer지정되지 않음

    The month free on a yearly plan this workspace gets for switching from Mailchimp; null when it doesn't.

  • anyOf 1object
  • offerstring필수

    enum: "switch_from_mailchimp"

  • sourcestring필수

    enum: "signup_campaign", "mailchimp_connection"

  • appliesTostring필수

    enum: "year"

  • plansarray필수
  • 각 항목object
  • planKeystring필수

    enum: "starter", "pro", "business", "scale"

    추가 중첩 생략

  • currencystring필수

    추가 중첩 생략

  • yearlyPriceinteger필수

    In the currency's smallest unit.

    추가 중첩 생략

  • firstYearPriceinteger필수

    In the currency's smallest unit.

    추가 중첩 생략

  • messagestring필수
  • anyOf 2null

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/billing' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/billing/sync

최신 Stripe 구독 동기화

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • billingobject필수
  • workspaceIdstring필수

    format: "uuid"

  • tierstring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • planKeystring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • statusstring필수
  • planIntervalstring | null필수

    enum: "month", "year", null

  • stripeCustomerIdstring | null필수
  • stripeSubscriptionIdstring | null필수
  • currentPeriodEndinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • cancelAtPeriodEndboolean필수
  • prepaidPlanKeystring | null필수
  • prepaidUntilinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • usageobject필수
  • storageBytesnumber필수
  • storageLimitBytesnumber필수
  • sendsThisMonthnumber필수
  • sendLimitnumber필수
  • sendsTodaynumber필수
  • dailySendLimitnumber | null필수
  • periodEndinteger | null필수

    밀리초 단위 Unix 타임스탬프.

  • catalogobject필수
  • plansarray필수
  • 각 항목object
  • planKeystring필수

    enum: "free", "starter", "pro", "business", "scale", "enterprise"

  • labelstring필수
  • sendLimitnumber필수
  • storageGbnumber필수
  • gmailImportLimitnumber필수
  • triageRuleLimitnumber필수
  • triageRunLimitnumber필수
  • pricesarray필수
  • 각 항목object

    추가 중첩 생략

  • addonsarray필수

    maxItems: 0

  • 각 항목지정되지 않음
  • agentPayment지정되지 않음필수
  • anyOf 1object
  • network_idstring필수
  • currencystring필수

    enum: "usd"

  • howstring필수
  • optionsarray필수
  • 각 항목object
  • plan_keystring필수

    enum: "starter", "pro"

    추가 중첩 생략

  • intervalstring필수

    enum: "month", "year"

    추가 중첩 생략

  • monthsinteger필수

    enum: 1, 12

    추가 중첩 생략

  • amount_centsinteger필수

    What to mint the token for

    추가 중첩 생략

  • discountobject

    추가 중첩 생략

  • anyOf 2null
  • switchOffer지정되지 않음

    The month free on a yearly plan this workspace gets for switching from Mailchimp; null when it doesn't.

  • anyOf 1object
  • offerstring필수

    enum: "switch_from_mailchimp"

  • sourcestring필수

    enum: "signup_campaign", "mailchimp_connection"

  • appliesTostring필수

    enum: "year"

  • plansarray필수
  • 각 항목object
  • planKeystring필수

    enum: "starter", "pro", "business", "scale"

    추가 중첩 생략

  • currencystring필수

    추가 중첩 생략

  • yearlyPriceinteger필수

    In the currency's smallest unit.

    추가 중첩 생략

  • firstYearPriceinteger필수

    In the currency's smallest unit.

    추가 중첩 생략

  • messagestring필수
  • anyOf 2null

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/billing/sync' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/billing/checkout

결제 시작 또는 청구 포털 열기

workspace:admin이 필요해요. 유료 셀프서비스 요금제만 판매해요. 활성 구독은 고객 포털을 열어요. snake-case 필드는 camel-case 별칭보다 우선해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • plan_keystring

    enum: "starter", "pro", "business", "scale"

  • planKeystring

    enum: "starter", "pro", "business", "scale"

  • intervalstring

    default: "month" · enum: "month", "year"

  • billing_attempt_idstring

    선택적 재시도 ID: 문자, 숫자 또는 하이픈 8–64개. 잘못된 ID는 무시해요.

  • billingAttemptIdstring
  • anyOf 1지정되지 않음
  • anyOf 2지정되지 않음

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • urlstring필수

    format: "uri"

  • kindstring필수

    enum: "checkout", "portal"

  • discount지정되지 않음

    The switch-from-Mailchimp month applied to this yearly checkout.

  • allOf 1object

    Switch from Mailchimp: one month off the first yearly invoice.

  • offerstring필수

    enum: "switch_from_mailchimp"

  • sourcestring필수

    enum: "signup_campaign", "mailchimp_connection"

  • planKeystring필수

    enum: "starter", "pro", "business", "scale"

  • intervalstring필수

    enum: "year"

  • currencystring필수

    Lowercase ISO currency the amounts are in.

  • amountOffinteger필수

    In the currency's smallest unit.

  • yearlyPriceinteger필수

    In the currency's smallest unit.

  • firstYearPriceinteger필수

    In the currency's smallest unit.

  • messagestring필수

    A sentence to tell the person.

  • switchOffer지정되지 않음

    On a monthly checkout, the month a yearly one would get instead.

  • allOf 1object

    Switch from Mailchimp: one month off the first yearly invoice.

  • offerstring필수

    enum: "switch_from_mailchimp"

  • sourcestring필수

    enum: "signup_campaign", "mailchimp_connection"

  • planKeystring필수

    enum: "starter", "pro", "business", "scale"

  • intervalstring필수

    enum: "year"

  • currencystring필수

    Lowercase ISO currency the amounts are in.

  • amountOffinteger필수

    In the currency's smallest unit.

  • yearlyPriceinteger필수

    In the currency's smallest unit.

  • firstYearPriceinteger필수

    In the currency's smallest unit.

  • messagestring필수

    A sentence to tell the person.

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/billing/checkout' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '"example"'
POST/v1/workspaces/{workspaceId}/billing/portal

고객 청구 포털 열기

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • urlstring필수

    format: "uri"

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/billing/portal' \
  --header "Authorization: Bearer $BANGER_API_KEY"
POST/v1/workspaces/{workspaceId}/billing/agent-payment

Shared Payment Token으로 선불 요금제 기간 구매

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject
  • plan_keystring필수

    enum: "starter", "pro"

  • intervalstring

    default: "month" · enum: "month", "year"

  • shared_payment_tokenstring필수

    pattern: "^spt_[A-Za-z0-9_]{6,200}$"

성공 응답 200

성공 응답.

application/json

  • valueobject
  • dataobject필수
  • statusstring필수
  • payment_intent_idstring필수
  • messagestring필수
  • plan_keystring

    enum: "starter", "pro"

  • prepaid_untilstring | null

    format: "date-time"

  • amount_centsinteger

    What was charged.

  • discountobject
  • offerstring필수

    enum: "switch_from_mailchimp"

  • amount_off_centsinteger필수
  • full_price_centsinteger필수
  • messagestring필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}/billing/agent-payment' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "plan_key": "starter",
  "interval": "month",
  "shared_payment_token": "example"
}'

워크스페이스

POST/v1/workspaces

createWorkspace

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
Idempotency-Key
header · 필수
  • valuestring

    minLength: 16 · maxLength: 128

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 200

성공 응답 200

이전에 생성된 워크스페이스의 멱등 재실행.

application/json

  • valueobject
  • data지정되지 않음필수
  • allOf 1object
  • idstring필수

    format: "uuid"

  • namestring필수
  • shardstring필수
  • rolestring필수

    enum: "owner", "admin", "member", "viewer"

  • revisioninteger필수

    format: "int64"

  • name_sourcestring필수

    워크스페이스 이름 출처: signup(자동 가입 이름), brand(온보딩에서 확인한 회사나 브랜드), user(사람이 입력했으며 브랜드 확인이 더 이상 이름을 바꾸지 않음).

    enum: "signup", "brand", "user"

  • owner_emailstring | null필수

    가장 먼저 활성화된 소유자의 이메일 주소예요. 호출자가 정적 API 키이거나 소유자 주소 기록이 없으면 Null이에요.

  • avatar_urlstring | null필수

    워크스페이스 브랜드 마크: 기본 제품의 브랜드 로고, 없으면 가장 최근 확인된 회사 탐색 로고.

  • allOf 2object
  • replayedboolean필수

curl 예제

curl --request POST --globoff 'https://api.bangermail.com/v1/workspaces' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Idempotency-Key: examplexxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example"
}'
GET/v1/workspaces/{workspaceId}

워크스페이스, 소유자, 로그인한 사람의 다른 워크스페이스를 읽어요.

워크스페이스에 허가된 모든 작업자는 읽을 수 있어요. other_workspaces는 로그인한 사람의 다른 활성 멤버십을 나열해요. OAuth 권한 또는 API 키는 이 워크스페이스만 허가받아 다른 곳의 정보를 얻지 못하므로 other_workspaces는 비어 있고 응답에 이를 설명하는 메모가 있어요. 정적 API 키에는 사람이 없으므로 owner_email은 null이에요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 200

호출자가 보는 워크스페이스.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • namestring필수
  • name_sourcestring필수

    워크스페이스 이름 출처: signup(자동 가입 이름), brand(온보딩에서 확인한 회사나 브랜드), user(사람이 입력했으며 브랜드 확인이 더 이상 이름을 바꾸지 않음).

    enum: "signup", "brand", "user"

  • rolestring필수

    enum: "owner", "admin", "member", "viewer"

  • owner_emailstring | null필수
  • avatar_urlstring | null필수
  • other_workspacesarray필수

    maxItems: 50

  • 각 항목object

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • namestring필수
  • rolestring필수

    enum: "owner", "admin", "member", "viewer"

  • notestring

    연결이 이 워크스페이스에만 허가된 API 키 및 OAuth 호출자에 있어요.

curl 예제

curl --request GET --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"
PATCH/v1/workspaces/{workspaceId}

워크스페이스 이름을 바꿔요.

활성 소유자 또는 관리자가 필요하며 자격 증명에는 이 워크스페이스의 workspace:admin이 필요해요. 이름은 앞뒤 공백을 제거하고 1-80자여야 해요. 입력된 이름은 최종이며 이후 브랜드 확인은 이름을 바꾸지 않아요(name_source가 user가 됨). 워크스페이스 개정판을 올리고 "workspace" 변경을 기록해요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문 필수

application/json

  • valueobject

    추가 속성 없음

  • namestring필수

    minLength: 1 · maxLength: 80

성공 응답 200

워크스페이스 이름이 변경됐어요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • namestring필수

    minLength: 1 · maxLength: 80

  • name_sourcestring필수

    const: "user"

curl 예제

curl --request PATCH --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}' \
  --header "Authorization: Bearer $BANGER_API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "example"
}'
DELETE/v1/workspaces/{workspaceId}

소유한 워크스페이스를 영구 삭제하고 물리 객체 정리를 대기열에 넣어요.

인증된 작업자는 소유자여야 해요. 정적 워크스페이스 API 키는 삭제할 수 없으며 사람 세션 또는 workspace:admin이 있는 사용자 승인 OAuth 권한이 필요해요. 유료 구독은 먼저 취소해야 해요. PostgreSQL 상태는 원자적으로 삭제되고 워크스페이스 접두사 아래 모든 B2 객체 버전은 비동기 제거돼요.

인증: Bearer 워크스페이스 API 키.

매개변수

이름 / 위치스키마
workspaceId
path · 필수
  • valuestring

    format: "uuid"

요청 본문

계약에 요청 본문이 지정돼 있지 않아요.

성공 응답 202

기준 워크스페이스가 삭제되고 물리 객체 정리가 대기열에 들어갔어요.

application/json

  • valueobject
  • dataobject필수

    추가 속성 없음

  • idstring필수

    format: "uuid"

  • namestring필수
  • deletedboolean필수

    const: true

  • storage_cleanupstring필수

    const: "queued"

  • next_workspace_idstring

    format: "uuid"

curl 예제

curl --request DELETE --globoff 'https://api.bangermail.com/v1/workspaces/{workspaceId}' \
  --header "Authorization: Bearer $BANGER_API_KEY"