Farbeam
Docs / Get started

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.

ActionWhat happensAPI call
Sign inGets a message, asks the wallet to sign it, opens a sessionPOST /auth/challenge, POST /auth/verify
Sign outEnds the session and clears the cookiePOST /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

ActionWhat happensAPI call
Create keyShows the key once. Save it before you leave the page.POST /keys
RevokeRevokes 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 actionWhat it doesAPI call
Send testQueues one signed test delivery. Limit 10 per hour per rule.POST /rules/{id}/test
DeliveriesShows the log: UTC time, result, tries, HTTP code, error.GET /rules/{id}/deliveries
Turn on, Turn offTurning on also clears the failure count.PATCH /rules/{id}
DeleteRemoves the rule and its log.DELETE /rules/{id}

#New rule form

FieldRule
Name1 to 80 characters
DeliveryWebhook with signed JSON, Discord webhook, or Telegram when it is linked. See Discord delivery.
Cooldown seconds60 to 86,400. The default is 300. After a rule fires, it ignores matches for this time.
Beamline expressionUp to 1,000 characters. See Beamline.
HTTPS URLPublic 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"])