Skip to main content

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
TierMax channels
Free0 (blocked)
Growth3
Pro25
EnterpriseUnlimited

Create a channel

POST /v1/notifications/channels
Headers
HeaderRequiredDescription
X-API-KeyYesYour API key
Content-TypeYesapplication/json
Body fields
FieldTypeRequiredDescription
namestringYesFriendly label for this channel
channel_typestringYesemail · slack · teams · fcm · sns
webhook_urlstringSlack/TeamsIncoming webhook URL (encrypted at rest)
smtp_hoststringEmailSMTP server hostname
smtp_portintEmailSMTP port (default: 587)
smtp_userstringEmailSMTP username
smtp_passwordstringEmailSMTP password (encrypted at rest)
email_fromstringEmailSender address
email_tostring[]EmailRecipient addresses
digest_interval_minutesintEmailDigest frequency, minimum 1 (default: 5)
fcm_device_tokenstringFCMFirebase device registration token
sns_topic_arnstringSNSAmazon SNS topic ARN
sns_regionstringSNSAWS region (default: us-east-1)
aws_access_keystringSNSAWS access key ID (encrypted at rest)
aws_secret_keystringSNSAWS secret access key (encrypted at rest)
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." }