Tenvio Docs
Version 0.1.0 · Under validation

Official server SDKs

Thin clients for the canonical Tenvio v1 API across eight ecosystems.

Not published: package-manager installation is unavailable until validation is complete, each registry release is completed, and its catalog status changes to published.

Server-side secret boundary

Never embed a sending or Management API key in browser or mobile code. SDKs have no telemetry and do not log keys, email content, attachments, BCC recipients, or sensitive server responses.

Choose a language

EcosystemPre-release sourceSend surface
Node.js/TypeScripttenvio-nodeclient.emails.send(request, key)
Pythontenvio-pythonclient.emails.send(request, key)
Gotenvio-goclient.Emails.Send(ctx, request, key)
PHPtenvio-php$client->sendEmail($request, $key)
Javatenvio-javaclient.emails().send(json, key)
.NETtenvio-dotnetclient.Emails.SendAsync(request, key)
Rubytenvio-rubyclient.emails.send(request, idempotency_key: key)
Rusttenvio-rustclient.emails().send(&request, key).await

Idempotency, retries, and errors

Every send requires a caller-owned idempotency key. Bounded retries reuse that exact key and apply only to transport failures, 429, and retryable 5xx responses; Retry-After is honored. Authentication, validation, policy, resource-limit, and idempotency-conflict errors are not blindly retried. Clients expose HTTP status, stable error code, a safe message, Retry-After, and safe request metadata.

The pre-release SDK surface covers critical and transactional email. Approved Custom accounts use the separate REST Broadcast API directly until SDK validation includes that surface.