Console
The console is a browser page over the public API. It signs you in, creates keys, manages alert rules and shows delivery logs. It is Early access. Each action in it maps to an endpoint you can call yourself.
#Access
Sign in with a Solana wallet such as Phantom, Solflare or Backpack. The wallet signs one message. Signing sends no transaction and costs nothing. There is no password and no email. EVM wallet sign-in is Planned.
The session lasts 7 days in an HttpOnly cookie, so page scripts cannot read it. Sign out ends it. If the browser has no Solana wallet, the page says so, and you can sign in over the API.
| Action | What happens | API call |
|---|---|---|
| Sign in | Gets a message, asks the wallet to sign it, opens a session | POST /auth/challenge, POST /auth/verify |
| Sign out | Ends the session and clears the cookie | POST /auth/logout |
#Account panel
After sign-in, the console shows the wallet, the plan, the limit per key and the units used today. "Today" is the UTC day. The values come from Account. The plan is always free, and nothing can be bought.
#API keys
| Action | What happens | API call |
|---|---|---|
| Create key | Shows the key once. Save it before you leave the page. | POST /keys |
| Revoke | Revokes one key. Rules stay with the account. | DELETE /keys/{id} |
An account holds up to 5 active keys. Farbeam stores only a SHA-256 hash of a key, so it cannot show the key again. If you lose a key, revoke it and create a new one.
#Telegram
Telegram delivery is Planned. The console says so while the bot is not connected. When it is connected, the panel gives a bot link that works for 15 minutes. See alerts.
#Rules
The console lists every rule of the account, with name, on or off state, format, expression, URL and failures in a row. Each rule card has these actions.
| Button action | What it does | API call |
|---|---|---|
| Send test | Queues one signed test delivery. Limit 10 per hour per rule. | POST /rules/{id}/test |
| Deliveries | Shows the log: UTC time, result, tries, HTTP code, error. | GET /rules/{id}/deliveries |
| Turn on, Turn off | Turning on also clears the failure count. | PATCH /rules/{id} |
| Delete | Removes the rule and its log. | DELETE /rules/{id} |
#New rule form
| Field | Rule |
|---|---|
| Name | 1 to 80 characters |
| Delivery | Webhook with signed JSON, Discord webhook, or Telegram when it is linked. See Discord delivery. |
| Cooldown seconds | 60 to 86,400. The default is 300. After a rule fires, it ignores matches for this time. |
| Beamline expression | Up to 1,000 characters. See Beamline. |
| HTTPS URL | Public HTTPS on port 443. See webhook URL rules. |
On success, the console shows the signing secret once. Copy it into your receiver's config before you leave the page. If you lose it, there is no way to read it back. Create a new rule and delete the old one.
A parse error shows the Beamline message with its character position, for example Unknown field "foo" (at position 0).
#Test a rule first
Saving a rule does not run it against old data. Rules match only transfers indexed after they are saved. To see which stored rows an expression would have matched, use the rule tester, which calls Validate a rule. It needs no key.
#Limits that apply
#What the console does not have
There are no team accounts, SSO, roles, shared projects or billing screens. These are Planned, and nothing can be bought today. There is no key rotation button. See authentication for the manual steps. Email delivery is also Planned.
#Doing the same in code
curl -s "https://farbeamlabs.com/api/v1/rules" -H "Authorization: Bearer $FARBEAM_KEY"const res = await fetch("https://farbeamlabs.com/api/v1/rules", {
headers: { Authorization: `Bearer ${process.env.FARBEAM_KEY}` },
});
console.log((await res.json()).data);import os, requests
res = requests.get(
"https://farbeamlabs.com/api/v1/rules",
headers={"Authorization": f"Bearer {os.environ['FARBEAM_KEY']}"},
timeout=30,
)
print(res.json()["data"])