Documentation Index Fetch the complete documentation index at: https://docs.ivory.finance/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Notification channels store your delivery credentials for each notification type. Credentials are
encrypted at rest and never returned in plain text — sensitive fields appear as "***" in all
responses.
A channel answers where to send a notification. What triggers it — which filings, keywords,
countries, or languages — is configured on the subscription
that points at the channel. One channel can have multiple subscriptions with different filters.
Auth required. Pass your API key in the X-API-Key header (Growth tier or above).
Tier limits
Tier Max channels Free 0 (blocked) Growth 3 Pro 25 Enterprise Unlimited
Create a channel
POST /v1/notifications/channels
Headers
Header Required Description X-API-KeyYes Your API key Content-TypeYes application/json
Body fields
Field Type Required Description namestring Yes Friendly label for this channel channel_typestring Yes email · slack · teams · fcm · snswebhook_urlstring Slack/Teams Incoming webhook URL (encrypted at rest) smtp_hoststring Email SMTP server hostname smtp_portint Email SMTP port (default: 587) smtp_userstring Email SMTP username smtp_passwordstring Email SMTP password (encrypted at rest) email_fromstring Email Sender address email_tostring[] Email Recipient addresses digest_interval_minutesint Email Digest frequency, minimum 1 (default: 5) fcm_device_tokenstring FCM Firebase device registration token sns_topic_arnstring SNS Amazon SNS topic ARN sns_regionstring SNS AWS region (default: us-east-1) aws_access_keystring SNS AWS access key ID (encrypted at rest) aws_secret_keystring SNS AWS secret access key (encrypted at rest)
Slack
Email
Teams
FCM (Firebase)
SNS (Amazon)
curl -X POST https://api.ivory.finance/v1/notifications/channels \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Slack Alerts",
"channel_type": "slack",
"webhook_url": "https://hooks.slack.com/services/T.../B.../..."
}'
Response
{
"id" : "3fa85f64-5717-4562-b3fc-2c963f66afa6" ,
"name" : "My Slack Alerts" ,
"channel_type" : "slack" ,
"is_active" : true ,
"webhook_url" : "***" ,
"created_at" : "2026-02-24T10:00:00Z"
}
List channels
GET /v1/notifications/channels
Returns all your channels. Credentials are masked.
curl https://api.ivory.finance/v1/notifications/channels \
-H "X-API-Key: YOUR_API_KEY"
Get a channel
GET /v1/notifications/channels/{id}
curl https://api.ivory.finance/v1/notifications/channels/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
-H "X-API-Key: YOUR_API_KEY"
Update a channel
PUT /v1/notifications/channels/{id}
All fields are optional — only supplied fields are updated.
curl -X PUT https://api.ivory.finance/v1/notifications/channels/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"digest_interval_minutes": 30, "is_active": true}'
Delete a channel
DELETE /v1/notifications/channels/{id}
Deletes the channel and all associated subscriptions and delivery logs.
curl -X DELETE https://api.ivory.finance/v1/notifications/channels/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
-H "X-API-Key: YOUR_API_KEY"
Test a channel
POST /v1/notifications/channels/{id}/test
Sends a test notification immediately using the stored credentials. The result is also logged
to your delivery log .
curl -X POST https://api.ivory.finance/v1/notifications/channels/3fa85f64-5717-4562-b3fc-2c963f66afa6/test \
-H "X-API-Key: YOUR_API_KEY"
Response
{ "status" : "sent" , "message" : "Test notification dispatched." }