Webhook functionality is available for Growth and Enterprise plans only.
Webhook Overview
Mobula provides Webhook support to receive blockchain events in real-time. Currently, you can capture curated events like Swaps and Transfers across EVM, Solana, and SVM chains.Product demo
Coming soon.Endpoint Details
- URL:
https://api.mobula.io/api/1/webhook
- Method:
POST
- Body (JSON): Same as the Webhook example
Parameters
Parameter | Type | Description |
---|---|---|
name | string | A unique name for your webhook. |
chainIds | string[] | Blockchain identifiers. Supported chains: EVM, Solana. Example: ["evm:1", "evm:8453", "solana:solana"] . More info |
events | string[] | Event types to subscribe to. Currently supported: "swap" , "transfer" |
filters | object | Optional filters to refine which events are sent max 1k operation . See Filters Documentation |
url | string | The destination URL where Mobula will POST the event payloads. |
apiKey | string | Your API key to authenticate the webhook request. |
Create a webhook
First we need to create a webhook: The API key is mandatory to create a webhook.
Your webhook is now active and will start sending events to the specified server URL.If you receive data from your webhook in response, then your webhook is functional and will start receiving events.
List out Registered Webhooks
You can retrieve all registered webhooks using your API key:Update a Webhook
No need to keep creating new webhooks every time — just update your existing one! Perfect for tracking new wallets, pools, or other events without the extra hassle. Think of it as giving your webhook a little upgrade — keeping it fresh, smart, and in sync with your latest needs. Webhooks support two modes for updating filters:merge
: Appends your new filters to the existing ones. Great for adding without losing what you already track.replace
: Completely replaces all existing filters with your new configuration. This is the default mode.
Required Parameters for Update
To update a webhook, you need:streamId
: The ID of the webhook. If you don’t remember it, you can retrieve it by listing your webhooks.apiKey
: The same API key used when creating the webhook.filters
: Your updated filter configuration.mode
: Optional. Use"merge"
to append filters;"replace"
(default) to overwrite existing filters.
Delete a webhook
To delete a webhook, use the webhook ID:Usage Examples
Before diving into the examples, make sure to check the data models for both EVM and SVM chains for swaps and transfers. Pro Tip for Devs: Dive into these data models and experiment with filters — your imagination is the only limit! Mix
and
/ or
, combine keys, and watch your streams come alive!- Explore
poolType
,poolAddress
,transactionFrom
,transactionTo
, and other keys in the data models. - Combine multiple conditions using
and
/or
operators to capture exactly the events you want. - Mix and match filters across swaps and transfers to suit your application needs.
Sample Swap Filters
The filter logic and data model are the same for SVM and EVM swaps.
Check out the curated swap model: EVM transfers model.
Check out the curated swap model: EVM transfers model.
Filter Swaps by Token Address
This example captures all swaps involving the$SPARK
token 5zCETicUCJqJ5Z3wbfFPZqtSpHPYqnggs1wX7ZRpump
from all supported pools on Solana:
Filter Swaps by Minimum USD Value
This example captures all large swaps of the$SPARK
token worth more than $25 USD:
Track Multiple Whales swaps by Single Webhook
This example captures all swaps from specific wallet addresses:Track Multiple Whales by Token or Swap Amount
This example captures swaps from specific wallet addresses and filters by swap amount in USD:Sample Transfer Filters
The filter logic is the same for both SVM and EVM transfers
For EVM transfers, just update the identifiers according to the EVM transfers model.
For EVM transfers, just update the identifiers according to the EVM transfers model.
Filter Transfer by Multiple Wallets
This example captures all transfers from multiple wallets, with some conditions on the transfer amount (e.g.,amountUSD
greater than 200 or 300):
Filter Transfers by Sender
This stream captures all transfers sent to a specificaddress
: