Create an SMS messaging profile
/v1/sms/messaging-profilesbird sms messaging-profiles create --body-file - <<'JSON'
{
"name": "device-activation",
"senders": [
{
"country_code": "US",
"sender_id": "snd_01krdgeqcxet5s7t44vh8rt9mg"
}
],
"inbound": {
"numbers": [
{
"number": "+14155550100"
}
]
},
"default_category": "authentication"
}
JSONcurl -X POST "https://us1.platform.bird.com/v1/sms/messaging-profiles" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "device-activation",
"senders": [
{
"country_code": "US",
"sender_id": "snd_01krdgeqcxet5s7t44vh8rt9mg"
}
],
"inbound": {
"numbers": [
{
"number": "+14155550100"
}
]
},
"default_category": "authentication"
}'{
"id": "mpr_01krdgeqcxet5s7t44vh8rt9mg",
"name": "device-activation",
"senders": [
{
"country_code": "US",
"sender_id": "snd_01krdgeqcxet5s7t44vh8rt9mg"
}
],
"inbound": {
"numbers": [
{
"country_code": "US",
"number": "34001"
}
],
"callback_url": "https://receipts.example.com/bird/sms/inbound",
"outbound_matching": {
"enabled": false,
"time_window": "1d"
}
},
"default_category": "authentication",
"validity_period": 3600,
"cost_center": "CC001234",
"options": {
"smart_encoding": false,
"ignore_suppression": false,
"callback_url": "https://receipts.example.com/bird/sms/activation"
},
"callback_events": [
"sms.delivered",
"sms.failed"
]
}
Creates a messaging profile for one program in your workspace.
A profile chooses the sender for each destination country, lists the numbers that receive replies, and sets defaults such as the category and smart encoding. Every sender and number must belong to your workspace, and a number can belong to one profile at a time. A send that names the profile in messaging_profile_id takes its sender, default category, and smart encoding from it when the send leaves them out. The values on a profile are defaults: an explicit from, category, or options.smart_encoding on the send wins.
Verzoekpayload
nameA label for the profile. Names are not unique, so two profiles can share one.
sendersThe sender for each destination country, and optionally a default sender. Each country appears at most once, and at most one entry omits country_code.
inboundHow the profile receives replies. Omit it for a profile that only sends.
default_categoryThe category a free-text send that names this profile uses when it sets none: transactional, marketing, authentication, or service. A template send takes the template's category.
Possible values: transactional, marketing, authentication, service
validity_periodHow many seconds a message stays valid before it expires undelivered. A send that omits validity_period uses it.
cost_centerA label for assigning the cost of this profile's messages. A send that omits cost_center uses it.
optionsSending options for messages that do not set their own. Booleans default to false.
Onderliggende parameters tonen
options.smart_encodingWhether text is converted to the GSM-7 character set where possible.
options.ignore_suppressionWhether messages are sent even if the recipient is suppressed for the sender, including after replying STOP. Messages that do not set ignore_suppression use this value. Only authentication and transactional messages can skip suppressions. It cannot be true when default_category is marketing or service. Bird must enable it for your workspace; until then, messages that use it are refused.
options.callback_urlThe HTTPS URL that receives this profile's message events instead of your webhook endpoints. Messages that do not set callback_url use it, and so do replies on the profile's numbers that have no inbound.callback_url. Each event is a signed POST, signed with your workspace callback signing secret, which rotateWebhookCallbackSigningSecret creates and returns once. While a URL applies, a message's events skip your plain webhook endpoints. MCP Events subscriptions and connector endpoints still receive them. It must be an absolute HTTPS URL of at most 2048 characters with a public host: an HTTP URL, a malformed one, or a private, loopback or link-local host returns 422.
callback_eventsThe events of this profile's outbound messages that go to a callback URL. The list is fixed when a message is accepted, and applies only while the message has a callback URL: an event outside it then reaches neither the URL nor a plain webhook endpoint. Without a callback URL the list has no effect, and every event goes to your webhook endpoints. A value other than sms.accepted, sms.sent, sms.delivered, sms.undelivered, sms.failed, sms.rejected or sms.expired returns 422. sms.received is never filtered. Omit it to deliver every event.
Response Payload
idIdentifier of this profile.
nameA label for the profile. Names are not unique, so two profiles can share one.
sendersThe sender for each destination country, and the default sender when an entry has no country_code.
inboundHow the profile receives replies. A profile without numbers only sends.
default_categoryThe category a free-text send that names this profile uses when it sets none: transactional, marketing, authentication, or service. A template send takes the template's category. Null when none is set.
validity_periodHow many seconds a message stays valid before it expires undelivered. Null when none is set. A send that omits validity_period uses it.
cost_centerA label for assigning the cost of this profile's messages. Null when none is set. A send that omits cost_center uses it.
optionsSending options that messages from this profile use when a message does not set its own.
callback_eventsThe events of this profile's outbound messages that go to a callback URL: sms.accepted, sms.sent, sms.delivered, sms.undelivered, sms.failed, sms.rejected, and sms.expired. The list is fixed when a message is accepted, and applies only while the message has a callback URL: an event outside it then reaches neither the URL nor a plain webhook endpoint. Without a callback URL the list has no effect, and every event goes to your webhook endpoints. sms.received is never filtered. Null means every outbound event goes to the URL.
created_atWhen the profile was created.
updated_atWhen the profile was last changed.
Gerelateerde bronnen
Ga verder met de documentatie, handleidingen en voorbeelden voor dit onderwerp.