연락처·리스트·태그·세그먼트

연락처는 워크스페이스 안에서 이메일 하나에 하나예요. POST /api/v1/contacts 는 같은 이메일이 있으면 갱신해요(upsert). 태그는 이름으로 주면 없을 때 만들어요.

curl
curl -X POST https://send.ad/api/v1/contacts -H "Authorization: Bearer $SEND_API_KEY" -H "content-type: application/json" \\\n  -d '{"email":"kim@example.com","first_name":"민수","attrs":{"plan":"pro","city":"서울"},"list_ids":["<list-uuid>"],"tags":["VIP"]}'

대량

POST /api/v1/contacts/bulk { contacts: [ … ≤5,000 ], list_ids: [ … ] }  → { imported, updated, skipped, suppressed }\nPOST /api/v1/contacts/import  (multipart: file=CSV, list_id, mapping?)  — Mailchimp 내보내기 열 이름 자동 인식

리스트·태그·세그먼트

엔드포인트설명
GET/POST /api/v1/lists리스트 목록·만들기 {name, description, double_opt_in}
POST /api/v1/lists/{id}/contacts{emails|contact_ids} 로 리스트에 추가
GET/POST /api/v1/tags · POST /api/v1/tags/{id}/contacts태그 · 태그 붙이기
POST /api/v1/segments{name, rules:{match:"all"|"any", conditions:[{field, op, value}]}}
POST /api/v1/segments/preview규칙만 보내 수·샘플 미리보기

억제 목록

수신거부·반송·신고 주소는 자동으로 들어가고 모든 발송에서 제외돼요. Mailchimp 「Unsubscribed」 CSV는 POST /api/v1/suppressions/import 로 넣어요. 억제 목록에서 빼는 건 사람이 명시적으로 지시했을 때만 해요.