Connection Log
Ready. Configure your topic and API key above.\n
Publish Encrypted Message
Post an encrypted message to your topic. Any existing message will be automatically deleted first — only 1 message is ever stored.
Encrypted Message (Base64 AES-CBC)
Publish Message
Delete All
Publish Log
Waiting for publish action...
Read Latest Message
Fetch the current stored message. No API key required for reading — access key (topic) only. This is what the Android app calls.
Fetch Message
Clear
Current Stored Message
No message fetched yet...
COPY
Read Log
Waiting for read action...
Topic Management
Current Topic (stored locally)
No config saved yet
COPY
Delete All Messages
Check Status
Manage Log
Waiting for action...
API Reference
All endpoints operate under /api/{topic}
GET
/api/{topic}
Returns: {"message":"<base64>","published_at":"<iso>"}
Auth: none (topic = access key)
Used by: Android app NtfyManager.kt
POST
/api/{topic}
Body: raw base64 encrypted string (text/plain)
Header: X-API-Key: <your_api_key>
Action: deletes old → stores new (1 msg max)
Used by: Python server ntfy_manager.py
DELETE
/api/{topic}
Header: X-API-Key: <your_api_key>
Action: deletes the stored message
Returns: {"deleted":true}
GET
/api/{topic}/status
Returns: {"exists":true/false,"published_at":"..."}
Auth: none
NOTE: This site uses Cloudflare Workers + KV for storage.
Deploy the worker code alongside this HTML file.
Set KV namespace binding: SIYA_KV
Set Worker secret: API_KEY in environment vars.
Cloudflare Worker Code (functions/api/[[path]].js)
Copy Worker Code