Skip to content

Vilna API (1.0.0)

Welcome to the Vilna API Reference. This is the complete OpenAPI specification for all API endpoints.

Quick Links

API Endpoints

Asset Management

  • Assets - Discover and manage digital assets

Address Operations

Monitoring and Notifications

System

Need Help?

Visit our documentation portal for detailed guides and examples.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.vilna.io/_mock/apis/spec/
Production environment
https://{namespace}.vilna.app/{version}/

system

System and service status operations

Operations

blockchain

Operations related to supported blockchains for monitoring and balance queries

Operations

block

Operations for retrieving and filtering blockchain blocks

Operations

token

Manage blockchain tokens such as native and ERC-20 assets

Operations

public_key

Public key (BIP44/49/84) management operations for HD wallets

Operations

address

Address management operations for tracking blockchain addresses

Operations

notification_channel

Notification delivery channel management for alerts and event notifications

Operations

Request

Returns a paginated list of all notification delivery channels

Security
ApiKeyAuth
Query
limitinteger[ 1 .. 100 ]

Maximum number of items to return

Default 20
Example: limit=20
pageinteger>= 1

Page number for pagination

Default 1
Example: page=1
kindstring(NotificationChannelKind)

Filter notification channels by their delivery type.

When specified, only channels of the given type will be returned:

  • nats — NATS subject-based messaging channels
  • telegram — Telegram bot message delivery channels
  • webhook — HTTP webhook callback channels
Enum"nats""telegram""webhook"
Example: kind=webhook
is_archivedboolean

Filter notification channels by their archived status.

  • true — Returns only archived (disabled) channels
  • false — Returns only active (enabled) channels
  • Omit parameter — Returns both active and archived channels

Archived channels are temporarily disabled but retain their configuration for potential reactivation later.

searchstring[ 1 .. 128 ] characters

Search notification channels by name using case-insensitive pattern matching.

The search is performed on the channel name field using SQL ILIKE pattern matching:

  • Partial matches are supported
  • Case-insensitive search
  • Whitespace is normalized

Examples:

  • "webhook" — matches channels with "webhook" in the name
  • "prod" — matches "Production Alerts", "prod-monitoring", etc.
  • "alert" — matches "System Alerts", "Critical Alert Channel", etc.
Example: search=production
sort_bystring

Field to sort results by. Use "-" prefix for descending order

Default "-created_at"
Enum"name""-name""kind""-kind""created_at""-created_at""updated_at""-updated_at"
Example: sort_by=name
curl -i -X GET \
  'https://docs.vilna.io/_mock/apis/spec/notification_channels?limit=20&page=1&kind=webhook&is_archived=true&search=production&sort_by=name' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

List of notification channels with pagination

Bodyapplication/json
itemsArray of objects(NotificationChannel)required
items[].​idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
items[].​kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
items[].​namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
items[].​configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
items[].​config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
items[].​config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
items[].​is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
items[].​created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
items[].​updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
metaobject(PaginationMeta)required
meta.​limitinteger(uint)>= 1required

Number of items per page

Example: 20
meta.​pageinteger(uint)>= 1required

Current page number

Example: 1
meta.​totalinteger(uint)>= 0required

Total number of items available

Example: 42
meta.​total_pagesinteger(uint)>= 0required

Total number of pages available

Example: 3
Response
application/json
{ "items": [ {}, {}, {} ], "meta": { "page": 1, "limit": 30, "total": 15, "total_pages": 1 } }

Request

Creates a new NATS notification channel for subject-based messaging

Security
ApiKeyAuth
Bodyapplication/jsonrequired
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
curl -i -X POST \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/nats \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "System Alerts NATS",
    "url": "nats://nats.example.com:4222",
    "subject": "notifications.system.alerts"
  }'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Request

Update the configuration of an existing NATS notification channel

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyapplication/jsonrequired
non-empty
namestring(NotificationChannelName)[ 1 .. 255 ] characters

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
urlstring(uri)(NATSServerURL)

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
subjectstring(NATSSubject)[ 1 .. 255 ] characters

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
curl -i -X PATCH \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/nats/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Updated NATS Channel"
  }'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Create Telegram notification channel

Request

Creates a new Telegram notification channel for bot message delivery

Security
ApiKeyAuth
Bodyapplication/jsonrequired
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
bot_tokenstring(TelegramBotToken)^\d{7,12}:[A-Za-z0-9_-]{35}$required

Telegram Bot API token obtained from @BotFather.

Format: {bot_id}:{auth_token} Example: "123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"

Security Note: This is sensitive data and should be handled securely. In some API responses, this may be masked or omitted.

Example: "123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
chat_idinteger(int64)(TelegramChatID)required

Telegram chat ID where notifications will be sent.

Chat ID formats:

  • Private chats (positive numbers)
  • Group chats (negative numbers)
  • Channel chats (negative numbers starting with -100)

You can obtain chat IDs by:

  • Adding the bot to a chat and using /start command
  • Using Telegram Bot API methods like getUpdates
  • Using @userinfobot for user/chat information
Example: -1001234567890
curl -i -X POST \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/telegram \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Production Alerts",
    "bot_token": "987654321:ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789",
    "chat_id": -1001234567890
  }'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Update Telegram notification channel

Request

Update the configuration of an existing Telegram notification channel

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyapplication/jsonrequired
non-empty
namestring(NotificationChannelName)[ 1 .. 255 ] characters

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
bot_tokenstring(TelegramBotToken)^\d{7,12}:[A-Za-z0-9_-]{35}$

Telegram Bot API token obtained from @BotFather.

Format: {bot_id}:{auth_token} Example: "123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"

Security Note: This is sensitive data and should be handled securely. In some API responses, this may be masked or omitted.

Example: "123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
chat_idinteger(int64)(TelegramChatID)

Telegram chat ID where notifications will be sent.

Chat ID formats:

  • Private chats (positive numbers)
  • Group chats (negative numbers)
  • Channel chats (negative numbers starting with -100)

You can obtain chat IDs by:

  • Adding the bot to a chat and using /start command
  • Using Telegram Bot API methods like getUpdates
  • Using @userinfobot for user/chat information
Example: -1001234567890
curl -i -X PATCH \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/telegram/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Updated Telegram Channel"
  }'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Create Webhook notification channel

Request

Creates a new Webhook notification channel for HTTP callback delivery

Security
ApiKeyAuth
Bodyapplication/jsonrequired
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
urlstring(uri)(WebhookURL)required

HTTP/HTTPS URL endpoint where notification webhooks will be sent.

The URL must be accessible from the notification service and should accept POST requests with JSON payloads. Only HTTP and HTTPS protocols are supported for security reasons.

Security Note: URLs containing sensitive information (API keys in query params) should use headers for authentication instead.

Example: "https://api.example.com/webhooks/notifications"
headersobject(WebhookHeaders)required

Optional HTTP headers to include with webhook requests.

Commonly used for:

  • Authentication: "Authorization: Bearer token"
  • Content type: "Content-Type: application/json"
  • API keys: "X-API-Key: your-api-key"
  • Custom headers for routing or identification

Security Note: Sensitive headers (tokens, API keys) should be handled securely and may be masked in API responses.

Example: {"Authorization":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","Content-Type":"application/json","X-API-Key":"your-secret-api-key"}
headers.​property name*stringadditional property
curl -i -X POST \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/webhook \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Production Alerts Webhook",
    "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
    "headers": {
      "Authorization": "Bearer token123"
    }
  }'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Update Webhook notification channel

Request

Update the configuration of an existing Webhook notification channel

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyapplication/jsonrequired
non-empty
namestring(NotificationChannelName)[ 1 .. 255 ] characters

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
urlstring(uri)(WebhookURL)

HTTP/HTTPS URL endpoint where notification webhooks will be sent.

The URL must be accessible from the notification service and should accept POST requests with JSON payloads. Only HTTP and HTTPS protocols are supported for security reasons.

Security Note: URLs containing sensitive information (API keys in query params) should use headers for authentication instead.

Example: "https://api.example.com/webhooks/notifications"
headersobject(WebhookHeaders)

Optional HTTP headers to include with webhook requests.

Commonly used for:

  • Authentication: "Authorization: Bearer token"
  • Content type: "Content-Type: application/json"
  • API keys: "X-API-Key: your-api-key"
  • Custom headers for routing or identification

Security Note: Sensitive headers (tokens, API keys) should be handled securely and may be masked in API responses.

Example: {"Authorization":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","Content-Type":"application/json","X-API-Key":"your-secret-api-key"}
curl -i -X PATCH \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/webhook/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Updated Webhook Channel"
  }'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Request

Returns detailed information about a specific notification channel

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X GET \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/550e8400-e29b-41d4-a716-446655440000 \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

Notification channel details

Bodyapplication/json
idstring(uuid)(UUID)required

Unique identifier in UUID format

Example: "550e8400-e29b-41d4-a716-446655440000"
kindstring(NotificationChannelKind)required

Defines the type of notification delivery channel.

Each kind determines the transport mechanism and configuration structure:

  • nats — NATS subject-based messaging for internal microservice communication
  • telegram — Telegram bot message delivery to chats or direct messages
  • webhook — HTTP POST callbacks to external endpoints
Enum"nats""telegram""webhook"
Example: "webhook"
namestring(NotificationChannelName)[ 1 .. 255 ] charactersrequired

User-defined human-readable name for the notification channel.

Used to identify and distinguish between different notification channels. The name should be descriptive and help users understand the purpose or destination of the channel.

Example: "Production Alerts Webhook"
configNATSChannelConfig (object) or TelegramChannelConfig (object) or WebhookChannelConfig (object)(NotificationChannelConfig)required

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
One of:

Configuration structure for notification channels. The exact schema depends on the channel kind.

Each channel type has specific configuration requirements:

  • NATS channels require a subject for message routing
  • Telegram channels require bot token and chat ID for message delivery
  • Webhook channels require URL and optional headers/authentication
config.​urlstring(uri)(NATSServerURL)required

NATS server URL for connection.

Specifies the NATS server endpoint where notifications will be published. Supports various NATS URL formats:

  • nats://localhost:4222 - Standard NATS connection
  • nats://user:[email protected]:4222 - With authentication

Security Note: URLs containing credentials should be handled securely and may be masked in API responses.

Example: "nats://nats.example.com:4222"
config.​subjectstring(NATSSubject)[ 1 .. 255 ] charactersrequired

NATS subject (topic) where notifications will be published.

Subjects are hierarchical and use dot notation (e.g., "notifications.alerts.critical"). Wildcards can be used for subscription patterns:

  • * matches any single token
  • > matches any number of tokens at the end

Examples:

  • "notifications.system.alerts"
  • "events.user.created"
  • "monitoring.metrics.cpu"
Example: "notifications.webhooks.delivery"
is_archivedbooleanrequired

Indicates whether the notification channel is archived (disabled)

Example: false
created_atstring(date-time)(CreatedAt)required

Timestamp when the resource was created

Example: "2024-01-15T10:30:00Z"
updated_atstring(date-time)(UpdatedAt)required

Timestamp when the resource was last updated

Example: "2024-01-15T10:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "kind": "nats", "name": "System Alerts NATS", "config": { "url": "nats://nats.example.com:4222", "subject": "notifications.system.alerts" }, "is_archived": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Request

Delete a notification channel by its unique identifier

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X DELETE \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/550e8400-e29b-41d4-a716-446655440000 \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

The request was successful but there is no content to return

Response
No content

Request

Archives (disables) a notification channel while preserving its configuration

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X POST \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/550e8400-e29b-41d4-a716-446655440000/actions/archive \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

The request was successful but there is no content to return

Response
No content

Request

Restores an archived notification channel, making it active again

Security
ApiKeyAuth
Path
notification_channel_idstring(uuid)(UUID)required

Unique identifier (UUID) of the notification channel.

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X POST \
  https://docs.vilna.io/_mock/apis/spec/notification_channels/550e8400-e29b-41d4-a716-446655440000/actions/restore \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

The request was successful but there is no content to return

Response
No content

transaction

Blockchain transaction tracking and monitoring operations

Operations

simulate

Transaction simulation operations for various blockchain networks

asset

Asset management operations for blockchain assets

Operations