Before you send | Brixus365 Docs
Docs Getting Started Before you send

Before you send

A 10-minute setup that takes you from “free signup” to “first production send” with your own domain. Skip this if you only want a 30-second test — see Path A instead.

The free plan unlocks the full Brixus365 product: raw HTML, batch send, SMTP, your own domain, and the Spark campaign dashboard. But because it sends from your own brand (not ours), there’s a small setup checklist before your first email goes out.

This page walks through it. Total time: about 10 minutes, mostly waiting on DNS.


1. Sign up free

Go to app.brixus365.com/signup and create an account.

You’ll need:

  • A real email address (we send a 6-digit verification code)
  • A name and company name (used to label your tenant)
  • A password (8+ chars)

After signup you’ll be sent a verification email with a one-time code. Enter it on the next screen and your account is active.

If you already have a bx_preview_… key from the developers page, the email-only widget account upgrades to a full free account when you complete signup with the same email. Your existing preview key is revoked and a new bx_live_… key is issued.


2. Create an API key

In the dashboard, go to Settings → API Keys → Create new.

You’ll see four presets. Pick the one that matches what you’re doing:

PresetPick this when…Grants
Send emails (transactional)You only need to send transactional email — receipts, password resets, magic links, OTPs. Works with the HTTP API, SMTP relay, and MCP server.Permission to send emails
Full Spark accessYou want to manage Spark campaigns, contacts, and templates programmatically. Use this for marketing automation backends.Manage campaigns, contacts, templates
Spark analytics (read-only)You’re feeding Brixus data into a BI tool, dashboard, or warehouse. Read-only by design.Read campaigns, contacts, analytics
Custom (advanced)You want a specific slice of permissions. Pick exact Read/Write checkboxes per resource.Whatever you tick

Most integrations want “Send emails (transactional)”. If you’re not sure, start with this — you can always create additional keys later for specific use cases.

Give the key a descriptive name (e.g. production-backend, staging-worker) and click Create Key.

The full key value (bx_live_…) is shown once, immediately after creation. Copy it now and store it securely — there’s no way to retrieve it later. If you lose it, revoke and create a new one.

export BRIXUS_API_KEY=bx_live_your_key_here

Never commit API keys to version control. Use environment variables or a secrets manager.


3. Verify your domain

Brixus365 needs proof that you’re authorised to send from a domain before it’ll dispatch email under it. This is a one-time DNS setup.

In the dashboard, go to Settings → Email Setup → Custom Email Domains and click Add Domain.

  1. Enter your sending domain (e.g. mail.yourbrand.com or yourbrand.com)
  2. The dashboard shows a list of DNS records to add — typically two TXT records (SPF + DKIM)
  3. Add those records at your DNS provider (Cloudflare, Route 53, Namecheap, etc.)
  4. Click Verify Domain in the dashboard

Verification usually completes within a few minutes once DNS has propagated. Larger providers can take up to an hour. The dashboard shows a green Verified badge when it’s done.

Subdomain or apex? Most senders use a subdomain like mail.yourbrand.com so the brand’s main domain reputation is isolated from email reputation. Either works.


4. Set a default sender

This is the step everyone forgets. Verifying a domain isn’t enough — you need at least one sender address marked as your default before the API will accept sends.

In Settings → Email Setup → Sender Addresses:

  1. Click Add Sender
  2. Enter the address you want to send from (e.g. hello@yourbrand.com) and a display name
  3. Click the verification link in the email that gets sent to that address
  4. Once verified, click Set as Default

That’s it — you’re ready to send.

Why this step exists: a single account can have multiple verified senders (e.g. billing@, support@, noreply@) for different brands or workflows. The transactional API uses the one marked Default for every send. To send from a different verified sender, change the Default in this screen first.


Verify the setup works

Run the same starter-template send as in the Quickstart — but with your bx_live_… key:

Bash
1curl -X POST https://app.brixus365.com/api/v1/emails \
2-H "X-API-Key: $BRIXUS_API_KEY" \
3-H "Content-Type: application/json" \
4-d '{
5  "to": "you@example.com",
6  "starterTemplate": "welcome",
7  "variables": { "name": "You", "app_name": "Your Brand" }
8}'

A successful response:

{
  "messageId": "dceaaa96-a806-43d2-ac2d-8396bbd3188a",
  "status": "queued",
  "from": "hello@yourbrand.com"
}

The from field reflects whichever sender address you marked as Default in step 4.


Common errors

If something didn’t work, the response will tell you exactly which step is incomplete:

HTTPCodeWhat it meansFix
401missing_api_keyYou sent the wrong header (or none)Use X-API-Key: bx_live_…. Don’t use Authorization: Bearer for API keys — that’s the dashboard JWT.
401invalid_api_keyKey value is wrong, revoked, or has whitespaceRe-copy from Settings → API Keys. The full value is only shown once — if you lost it, revoke and create a new one.
403scope_requiredThe key exists but lacks the permission this endpoint needsCheck the key’s scope badges in Settings → API Keys. The “Send emails (transactional)” preset is the right one for the API.
403no_verified_senderNo sender is marked Default — step 4 is incompleteOpen Settings → Email Setup → Sender Addresses and click Set as Default on a verified sender.
403upgrade_requiredYou’re trying to use a feature that needs a paid plan (e.g. programmatic campaign send)The response includes an upgrade_url field. Free accounts can run Spark campaigns from the dashboard — only programmatic marketing:* scopes are paid-only.
422validation_failedBody shape is wrong — wrong field names, missing required fieldsCheck error.details.errors[] for the exact field path. CamelCase field names — starterTemplate not starter_template.

Note: the from field on free plans is currently ignored — every send uses your default sender regardless of what you put in from. To send from a different verified sender, change the Default in Settings → Email Setup. We’re working on per-message from override for free accounts.

Stuck on something not in the table? Email support@brixus365.com.