SchemaVaults Mail Server API
v0.0.113OpenAPI 3.1.0API for managing mailing lists and sending transactional email. Admin operations require an admin's access token; /api/send, /api/templates and /api/test-emails also accept a mail-server API key. Interactive documentation lives at /docs.
- Server
- https://mail.schemavaults.com
Authentication
How to present credentials to this API. Each operation lists which of these it accepts.
- Mail-server API key (Bearer)mail-server-api-keyhttp
Authorization: Bearer <token>Mail-server API key (
svlts_mail_pk_...) created by an admin at /admin/keys.Missing credentials answer with
WWW-Authenticate: Bearer realm="mail-server-api-key" - Access token (Bearer)schemavaults-access-tokenhttp
Authorization: Bearer <JWT>Access token issued by the auth server for this API server.
Missing credentials answer with
WWW-Authenticate: Bearer realm="schemavaults"
Send
Send transactional or mailing-list email through a configured transport.
| Method | Path |
|---|---|
| POST | /api/send Send an email Authenticated |
Mailing Lists
Mailing lists, double-opt-in subscriptions, and unsubscribes.
| Method | Path |
|---|---|
| GET | /api/mailing-lists List mailing lists Public |
| POST | /api/mailing-lists Create a mailing list Admin |
| POST | /api/mailing-lists/join Start a mailing list subscription (double opt-in) Public |
| POST | /api/mailing-lists/confirm Confirm a pending mailing list subscription Public |
| POST | /api/mailing-lists/unsubscribe Unsubscribe from a mailing list Public |
| GET | /api/mailing-lists/subscribers List a mailing list's subscribers Admin |
Templates
The react-email template catalog.
| Method | Path |
|---|---|
| GET | /api/templates List available email templates Authenticated |
Branding
Public white-label branding assets (logo, favicon).
| Method | Path |
|---|---|
| GET | /api/branding/{asset_kind} Serve a branding asset (logo or favicon) Public |
Test Emails
Read emails captured by the fake-send test-database transport, for E2E-testing the /api/send flow.
| Method | Path |
|---|---|
| GET | /api/test-emails List emails captured by the test-database transport Authenticated |
| GET | /api/test-emails/{test_email_id} Read one email captured by the test-database transport Authenticated |
Admin: API Keys
Manage API keys and their audience, sender, and transport scopes (admin only).
| Method | Path |
|---|---|
| GET | /api/admin/api-keys List active API keys Admin |
| POST | /api/admin/api-keys Create an API key Admin |
| PATCH | /api/admin/api-keys/{api_key_id} Update an API key Admin |
| DELETE | /api/admin/api-keys/{api_key_id} Revoke an API key Admin |
| GET | /api/admin/api-keys/{api_key_id}/allowlist List an API key's audience mailing-list allowlist entries Admin |
| POST | /api/admin/api-keys/{api_key_id}/allowlist Add a mailing list to an API key's audience mailing-list allowlist Admin |
| DELETE | /api/admin/api-keys/{api_key_id}/allowlist Remove a mailing list from an API key's audience mailing-list allowlist Admin |
| GET | /api/admin/api-keys/{api_key_id}/recipients List an API key's audience recipient allowlist entries Admin |
| POST | /api/admin/api-keys/{api_key_id}/recipients Add a recipient to an API key's audience recipient allowlist Admin |
| DELETE | /api/admin/api-keys/{api_key_id}/recipients Remove a recipient from an API key's audience recipient allowlist Admin |
| GET | /api/admin/api-keys/{api_key_id}/senders List an API key's allowed-senders scope entries Admin |
| POST | /api/admin/api-keys/{api_key_id}/senders Add a sender to an API key's allowed-senders scope Admin |
| DELETE | /api/admin/api-keys/{api_key_id}/senders Remove a sender from an API key's allowed-senders scope Admin |
| GET | /api/admin/api-keys/{api_key_id}/transports List an API key's allowed-transports scope entries Admin |
| POST | /api/admin/api-keys/{api_key_id}/transports Add a transport to an API key's allowed-transports scope Admin |
| DELETE | /api/admin/api-keys/{api_key_id}/transports Remove a transport from an API key's allowed-transports scope Admin |
Admin: Branding
Upload or remove white-label branding assets (admin only).
| Method | Path |
|---|---|
| PUT | /api/admin/branding/{asset_kind} Upload a custom branding asset Admin |
| DELETE | /api/admin/branding/{asset_kind} Remove a custom branding asset Admin |
Admin: CORS
Manage the CORS origin allowlist for public API routes (admin only).
| Method | Path |
|---|---|
| GET | /api/admin/cors-origins List allowed CORS origins Admin |
| POST | /api/admin/cors-origins Allow a CORS origin Admin |
| DELETE | /api/admin/cors-origins/{cors_origin_id} Remove an allowed CORS origin Admin |
Admin: Email Send Log
Review outbound send attempts: when each email was delivered, or why it failed, and how many went through each transport over time (admin only).
| Method | Path |
|---|---|
| GET | /api/admin/email-send-log List the email send log Admin |
| GET | /api/admin/email-send-stats Count send attempts per transport over time Admin |
Admin: Settings
Deployment-wide settings, such as the time zone admin pages show times in (admin only).
| Method | Path |
|---|---|
| GET | /api/admin/settings Read the deployment settings Admin |
| PATCH | /api/admin/settings Change the deployment settings Admin |
Admin: Templates
Inspect and preview email templates (admin only).
| Method | Path |
|---|---|
| GET | /api/admin/templates List email template IDs Admin |
| GET | /api/admin/templates/preview Preview a template with sample props Admin |
| POST | /api/admin/templates/preview Preview a template with custom props Admin |
Admin: Transports
Inspect configured mail transports (admin only).
| Method | Path |
|---|---|
| GET | /api/admin/transports List mail transports with configured/default status Admin |
| PATCH | /api/admin/transports/{transport_id} Enable or disable the test-database transport Admin |