Generic Webhook¶
Sends each alert as a small JSON message to a web address you choose.
Settings → Signal Notification Accounts → Generic Webhook. The same page has Telegram, Discord, and Email (SMTP).
A signal with Webhook checked posts that JSON to every webhook account you have saved. The URL is the only secret: Apathia does not sign the message or send a password with it. It posts JSON, and any response that is not a success counts as a failure.
The message¶
Verify posts this, and only to the account you clicked:
{"text": "Apathia test notification — credentials verified.", "context": {}}
A signal posts the same shape. text is the alert, for example "ENTRY long · okx BTC/USDT 64,210 (touch) · BTC dip alert". context is only the fields the signal has, never the candle history:
| Field | What it is |
|---|---|
rule_id |
The signal's id. |
name |
The signal's name. |
exchange_id |
The exchange. |
market_type |
The pair's market, such as spot or swap. |
symbol |
The pair, such as BTC/USDT. |
timestamp |
The candle's open time, in milliseconds. |
candle_time |
That same moment, as text. |
price |
With On candle touch, the latest price of the forming candle. With On candle close, that candle's close. |
trigger |
touch or close. |
side |
entry or exit. |
Settings¶
| Setting | What to enter |
|---|---|
| Account nickname | A name you will recognize. Required. At most 64 characters. |
| URL | The address that should receive the POST. The field is masked. The form's example is https://example.com/hook. |
Click Save Generic Webhook. The form clears and says Saved. The account is listed under the form with Verify and Delete. With none saved, the card says "No Generic Webhook accounts saved."
Verify says "Verifying…", then Test message sent or Failed to send test message.
Delete asks 'Delete notification account "…"? Its saved details are wiped from disk.' There is no edit: delete the account and add it again. The list never shows the URL again.
On a signal¶
Signals → create or edit a signal. Under Notification methods, check Webhook (the card title is Generic Webhook; the checkbox says Webhook). The checkbox appears only after at least one webhook account is saved. Leave every method unchecked to only log alerts.
A signal does not pick one nickname. Webhook sends to every webhook account. One account that fails does not skip the others. The notification counts as sent only when every webhook account answered in time.
Warnings¶
- "Account nickname is required": the nickname was empty.
- A nickname longer than 64 characters is refused.
- 'Another webhook account is also called "…".': another webhook account uses the same nickname, ignoring capital letters. The account is still saved. The message uses the word
webhook, not the card title. - "Failed to send test message": the address did not answer with success, or it did not answer in time. Each send is given 15 seconds. A signal waits 20 seconds for all of the webhook accounts together.
Good to know¶
- The URL is stored encrypted. Logs name the account type, the nickname, and the account id, not the URL.
- If an account already has two sends still unfinished, a further send to it is skipped. A send still waiting after 60 seconds is not attempted. A signal stops waiting after 20 seconds; a send that has not answered by then counts as not sent. A send that misses that wait can still arrive afterwards, and the log marks it "late".
- Help is on the app's Support page, and by email at team@apathia.app.