Choose what Ranla thinks with in Settings › Ranla's brain: Included (her own models, part of your plan), or your own OpenRouter, Anthropic, OpenAI or Google key. Ranla tests a key with one tiny call before saving it encrypted, and never shows it again. With your key, her chat, writing and background work, the heartbeat included, is billed by your provider and takes no credits; Usage and billing lists those calls. Her decisions still run on her own tuned model, at no cost to you. If the key runs out of credit or stops working, Ranla stops that work and tells you in Needs you, then picks up once it works again, unless you turn on "If my key fails, use Included". From a terminal: ranla brain key <provider>.
Claude Code, Codex, Cursor or any agent with a terminal can now work your Ranla account through ranla-cli. Run npx -y ranla-cli@latest login and approve the link in your browser: you pick the workspace and the CLI saves its own key, so nobody pastes one. Then ranla run gives the agent the same commands Ranla uses in chat (campaigns, segments, pages, ads, Reddit and more) under the same roles, plan and credits. Anything that sends, publishes or spends waits as an approval card you decide with ranla approvals or in the app.
The new Affiliates desk runs a partner program on your own Stripe. Partners join on a branded portal at your subdomain or your own domain, get a ?via= link and an optional coupon code, and see their clicks, signups, customers and earnings. Ranla reads your Stripe invoices and writes each commission: percent or flat, one-time or recurring, tiers, per-product rates and two-tier. A refund or dispute during the hold reverses it on its own. Payouts go from your Stripe balance to each partner through Stripe, or by PayPal, Wise or a manual transfer, and every run waits for your approval unless you turn on auto-pay with a cap. Partners, referrals, commissions and payouts are in the API and SDK, with webhooks for each event.
Install the Ranla API client with npm i @supersend/ranla. new Ranla(key) sends to api.ranla.ai by default. Existing supersendtx installs are unchanged.
Bearer API keys may start with stx_ or rnl_. A rnl_ key with the same secret after the prefix authenticates as the existing key. Official SDKs and MCP accept both prefixes.
supersendtx-nodemailer now ships the full transport implementation in its public GitHub repo (not a re-export stub). Prefer import from supersendtx-nodemailer; supersendtx/nodemailer still works.
composer require supersendtx/symfony-mailer for a first-class Symfony Mailer transport (DSN supersendtx+api://…). Laravel’s mailer uses the same package under the hood.
Deliver Clerk email.created webhooks with supersendtx-clerk, and wire Payload 3 email with supersendtxAdapter from supersendtx-payload. Guides at /guides/clerk and /guides/payload.
Drop-in magic-link provider for Auth.js. npm install supersendtx-authjs, add SuperSendTX({ from }) to providers, set AUTH_SUPERSENDTX_KEY. Same pattern as other Auth.js email providers; requires a database adapter.
The Node client is no longer the only one. supersendtx is on PyPI and RubyGems, supersendtx/supersendtx is on Packagist, and the Go module is at github.com/Super-Send/supersendtx-sdks/go, plus a supersendtx/laravel package with config and a facade. Every client wraps the same REST contract, so from / to / subject / html works the same everywhere.
API contract
Breaking API changes are announced here and in the OpenAPI spec. SDK and CLI versions on npm follow semver for the public client packages.
On this changelog for customer-visible ships. Each note has its own page under /changelog, and the list is the public record of what changed in the product.