By using our site, you agree to our use of cookies. Cookie Policy
SDKs & libraries

Start in the language your team already uses.

Find the right package, connect your sender, and make a first request with the tools your team knows.

Example integration
npm install utobo-email
import { UtoboEmail } from 'utobo-email';

const apiKey = process.env.UTOBO_EMAIL_API_KEY;
if (!apiKey) throw new Error('Set UTOBO_EMAIL_API_KEY on the server.');

const client = new UtoboEmail(apiKey);
const { data, error } = await client.emails.send({
  from: 'Northstar <hello@example.com>',
  to: 'alex@example.net',
  subject: 'Your workspace is ready',
  html: '<p>Sign in to start your first project.</p>',
});

if (error) console.error(error);
else console.log(data);

Examples do not execute on this page. Replace the example sender with an address on your verified domain.

Choose your library

A direct path to the package.

Use the maintained reference for the language you choose. Package syntax, response handling, and feature coverage can differ.

Node.jsnpm install utobo-emailOpen package ↗
Pythonpip install utobo-emailOpen package ↗
Gogo get github.com/myutobo/utobo-email-goOpen package ↗
Rubygem install utobo-emailOpen package ↗
PHP# Native SDK coming soon — use the REST API or SMTP todayIn preview
Before the first request

Set up the sender.
Keep the key on the server.

Installing a package connects your code to a library. Your account still needs the appropriate plan, a verified sending domain, and an API key with suitable access.

Load the credential from a server environment. Never expose a sending key in browser code or bundle it into a public application.

Follow sender and key setup ↗
Example request path

Your application server

Event + message + server-side API key

Authenticated request

utobo Email

Sending request and returned result

Your customer-facing page never needs the sending credential.

Start with one messageExample
From
Northstar <hello@example.com>
To
alex@example.net
Subject
Your workspace is ready
Content
Sign in to start your first project.
Next check
Inspect the returned result and keep the message ID.
Small first, then build

Make the first request easy to understand.

A familiar subject, a short body, and an address you control make a useful first test. Handle errors using the selected package’s documented response model.

When you have a successful request, keep its ID and review the result. Then connect the sending call to the application event that should trigger it.

Understand requests and status ↗
More ways to connect

Choose the interface that fits your application.

Use raw HTTPS.

Send JSON directly to the Email API when you prefer your own HTTP client. Keep authentication and error handling in your application.

Keep an SMTP workflow.

If your application already supports custom SMTP, configure the host, credentials, and port/TLS pair instead.

Render React Email.

Pass a React component as the react field and the Node SDK renders it to HTML for you — add the @react-email/render peer dependency.

Get connected

Give the first send a clear checklist.

  1. 01

    Choose the package.

    Use the published package or repository for Node.js, Python, Ruby, or Go.

  2. 02

    Prepare your sender.

    Verify the sending domain and create a suitably scoped API key.

  3. 03

    Follow the example.

    Use the package’s own constructor, send method, and error-handling conventions.

  4. 04

    Keep the useful context.

    Save the result and message ID. Include the SDK version and a sanitized example if you need support.

Good questions

A few things you might be wondering.

Find the detail you need before your first send.

Talk to the team ↗
Do all SDKs expose the same features?

Check the reference for the particular package and release. A library’s published availability does not mean every endpoint or response model is identical across languages.

Can I use the library directly in browser code?

Keep sending credentials on your server. Do not put the API key in browser bundles or any customer-accessible code.

Is a PHP SDK available?

A native PHP SDK is coming soon (in preview). Today, official libraries cover Node.js, Python, Ruby, and Go — and you can send from PHP right now with the REST API or SMTP.

What should I send to support when an integration fails?

Share the SDK and version, a sanitized request example, the response or error, approximate time, and message ID if available. Remove API keys and unnecessary recipient information.

Where should I begin if I am not sure which package to choose?

Start with the language your application already uses. If you prefer a direct HTTP connection or an existing SMTP workflow, both paths are available.

Bring your language.
Build the next customer message.

Use the package reference and sender setup guide to get your first request ready.