Godot Alerts SDK
The API Alerts Godot SDK sends alerts from your Godot 4 games and applications. Drop it into game scripts, server-side game logic, or any Godot project that needs to notify you when something important happens, like a player crossing a milestone, a server hitting an error threshold, or a build needing attention. Minimal setup, fire-and-forget by default, and zero infrastructure.
Installation
Godot Asset Store
Find APIAlerts on the Godot Asset Store, download the addon, and extract addons/apialerts/ into your project’s addons/ directory. In Godot 4.7 and later the Asset Store is built into the editor, so you can search for and install it from the AssetLib tab.
Manual
Copy the addons/apialerts/ folder from the latest release into your project’s addons/ directory.
Enable the plugin
After either method, enable the plugin under Project → Project Settings → Plugins.
Once enabled, APIAlerts is available as an autoloaded singleton throughout your project.
Quick Start
func _ready():
APIAlerts.configure("your-api-key")
APIAlerts.send(ApiAlertsEvent.new("Player reached level 10"))
Usage
Fire and forget
APIAlerts.configure("your-api-key")
# Non-blocking. Errors are logged to output, never thrown.
APIAlerts.send(ApiAlertsEvent.new("Deploy complete"))
Wait for response
var result: ApiAlertsSendResult = await APIAlerts.send_async(
ApiAlertsEvent.new(
"New user signed up", # message (required)
"revenue", # channel
"user.signup", # event
"New Signup", # title
["growth", "organic"], # tags
"https://dashboard.example.com/users/123", # link
{"plan": "pro", "source": "organic"} # data
)
)
if result.success:
print("Sent to %s (%s)" % [result.workspace, result.channel])
else:
print("Error: ", result.error)
Multiple workspaces
var result: ApiAlertsSendResult = await APIAlerts.send_with_key_async(
"other-api-key",
ApiAlertsEvent.new("Cross-workspace event")
)
Debug logging
APIAlerts.configure("your-api-key")
APIAlerts.set_debug(true) # logs sends and errors to Godot output
Event Fields
| Field | Type | Required | Description |
|---|---|---|---|
message | String | Yes | Main notification message |
channel | String | No | Target channel name |
event | String | No | Event key for routing |
title | String | No | Short title |
tags | Array[String] | No | Categorisation tags |
link | String | No | URL attached to the notification |
data | Dictionary | No | Arbitrary key-value metadata |
send_async returns a typed ApiAlertsSendResult:
| Property | Type | Description |
|---|---|---|
success | bool | Whether the event was accepted |
workspace | String | Workspace name from the response |
channel | String | Channel the event was delivered to |
warnings | Array[String] | Any warnings returned by the API |
error | String | Error message if success is false |
Platform support
Alerts go over HTTPS via Godot’s HTTPRequest, so some export targets need network access granted:
- Android - enable the Internet permission in your Android export preset (Permissions > Internet). Android blocks all network calls without it.
- macOS - for a sandboxed or App Store build, enable Outgoing Network Connections (Client) in the macOS export options (the
com.apple.security.network.cliententitlement). - iOS - works out of the box. The API is HTTPS, so App Transport Security is satisfied.
- Web - your API key ships inside the exported build and is visible to anyone who inspects it. Don’t put a production key in a public web export; use a restricted key or send from a trusted backend.
- Windows / Linux - no extra configuration.