API KEYを用意
必要な権限を与える

refference: https://sendgrid.com/docs/API_Reference/api_v3.html

campaine用のリストにメンバーを追加する

APIはcampaineの権限を与えたものを用意

リストを用意しておく

手動 or API

リストを取得する

$ curl --request GET \
  --url https://api.sendgrid.com/v3/contactdb/lists \
  --header 'Authorization: Bearer (key)' \
  --header 'Content-Type: application/json'

list_idが取得できる

メンバーを登録する

$ curl --request POST \
  --url 'https://api.sendgrid.com/v3/contactdb/recipients' \
  --header 'Authorization: Bearer (key)' \
  --header 'Content-Type: application/json' \
  --data '[{
   "email": "sample@example.com",
   "first_name": "first",
   "last_name": "last"
  }]'

Responseでrecipient_idが取得できる
最初からリストに登録はできない様子
ALL CONTACTSに登録される

登録したメンバーをリストに登録する

$ curl --request POST \
  --url https://api.sendgrid.com/v3/contactdb/lists/(list id)/recipients/(recipients id) \
  --header 'Authorization: Bearer (key)' \
  --data null

メンバー全員を取得する

$ curl --request GET \
  --url 'https://api.sendgrid.com/v3/contactdb/(list id)/1092377/recipients?page_size=1000&page=1' \
  --header 'Authorization: Bearer (key)' \
  --header 'Content-Type: application/json'

メンバーを削除する

登録を削除する方法
削除せずメールを送らないようにするには、Unsubscriped groupに追加のほうがよさそう

メンバー情報を取得

curl --request GET \
  --url https://api.sendgrid.com/v3/contactdb/recipients/search?email=sample@sample.com \
  --header 'authorization: Bearer (key)' \
  --data '{}'

recipient_idが取得できる

削除

$ curl --request DELETE \
  --url https://api.sendgrid.com/v3/contactdb/recipients/(recipient id) \
  --header 'authorization: Bearer (key)' \
  --data null