Product guide
Lists and tags
Two independent ways of saying which people something is about. A list is a group you send to; a tag is something you know about a person. Somebody can be on a list, carry tags, both, or neither — and either one arriving can start an automation.
Keyed on the number, not a contact
Membership is stored against the canonical handle, so importing four hundred phone numbers does not require creating four hundred contacts first.
Adding twice adds once
Only rows the call actually creates count as somebody arriving. Re-uploading yesterday's spreadsheet starts nobody.
Tags are normalised
Lowercased and trimmed, so VIP, vip and “ vip ” are one tag rather than three that look identical in a list.
5,000 per call
Enough for a real import, small enough that a runaway integration is noticed rather than absorbed. A bigger list arrives as several calls.
Make a list
curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/lists \
-H "Authorization: Bearer $MISS_BLUE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Spring promo","description":"Asked about the spring offer"}'Put people on it
The response says what actually happened, which is the number worth logging: added is how many rows this call created, already how many were there, and started how many runs of an automation it began.
curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/lists/$LIST/members \
-H "Authorization: Bearer $MISS_BLUE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"handles":["+13055550142","+13055550143"],"source":"api"}'
{"added": 2, "already": 0, "started": 2}Tag people
curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/tags \
-H "Authorization: Bearer $MISS_BLUE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tag":"vip","handles":["+13055550142"]}'What is true about one person
curl https://api.missblue.dev/v1/projects/$PROJECT/audience/%2B13055550142 \
-H "Authorization: Bearer $MISS_BLUE_API_KEY"
{"lists":[{"id":"…","name":"Spring promo"}],"tags":["vip"]}Taking somebody off
Removing somebody from a list does not stop an automation they are already inside. That is deliberate: leaving an audience is not the same as asking not to be messaged, and the thing that means that is the do-not-message list.
curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/lists/$LIST/remove \
-H "Authorization: Bearer $MISS_BLUE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"handle":"+13055550142"}'