연락처·리스트·태그·세그먼트
연락처는 워크스페이스 안에서 이메일 하나에 하나예요. 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 로 넣어요. 억제 목록에서 빼는 건 사람이 명시적으로 지시했을 때만 해요.