Bird (MessageBird)
Bird (formerly MessageBird) is a built-in Norq SMS provider. It builds
requests for the
POST /workspaces/{workspaceId}/channels/{channelId}/messages endpoint on
api.bird.com.
Configuration
providers:
bird:
config:
workspace_id: ${BIRD_WORKSPACE_ID}
channel_id: ${BIRD_CHANNEL_ID}
access_key: ${BIRD_ACCESS_KEY}
from: "Acme" # optional alphanumeric sender ID
routing:
sms: birdworkspace_id, channel_id, and access_key are required. from is
optional — when set, the request body includes a per-channel sender
override block.
Environment-variable fallback
If providers.bird is not declared, Norq registers Bird when these env
vars are set:
| Var | Required |
|---|---|
NORQ_BIRD_WORKSPACE_ID |
yes |
NORQ_BIRD_CHANNEL_ID |
yes |
NORQ_BIRD_ACCESS_KEY |
yes |
NORQ_BIRD_FROM |
optional |
Capabilities
- Channels: SMS only.
- Batching: none. Bird’s API sends one message per request; the SDKs
iterate recipients and call
prepare_sendper message. - CLI: works. Bird uses the
AccessKeyauth scheme, which the CLI executor handles natively. No OAuth2 or HTTP/2 required.
Request shape
-
Body:
application/json. Shape:{ "receiver": { "contacts": [{ "identifierValue": "+15551234567" }] }, "body": { "type": "text", "text": { "text": "Hello, world!" } } } -
Auth:
Authorization: AccessKey <token>— note the literalAccessKeyprefix is part of Bird’s authentication scheme, not a typo forBearer. -
Success:
200or202. Norq extracts the message ID from$.id. -
Retry: defaults — 429 + 5xx, 2 retries, 500ms backoff.