Changelog

This is a quick overview of the latest changes and additions.

Version 1.9.3 (2025-07-30)

Enhanced webhook security and stream identification

Read more in our blog post

Added

  • Stream identification in all webhook payloads for better webhook routing

  • Job completion webhooks now include streamId and streamName in metadata

  • New message webhooks now include complete stream object in meta section

Changed

  • All API endpoints now use secure public IDs instead of internal database IDs

  • Webhook payloads are now consistently formatted as JSON objects (fixes string payload bug)

  • Stream metadata in webhooks matches provider metadata structure for consistency

Version 1.9.2 (2025-07-30)

API Autodiscoverability, Jobs Dashboard, and CASA Certification

Read more in our blog post

Added

  • API autodiscoverability feature for easier client integration

  • Jobs view in admin dashboard for monitoring background operations

  • CASA certification achieved (Google LOV processing)

  • Restish CLI documentation and setup guide

Changed

  • Enhanced API documentation with CLI tool examples

  • Improved developer experience with standardized discovery endpoints

Version 1.9.1 (2025-07-28)

Minor Bugfixes and Documentation Tweaks

Changed

  • Adding attachments now correctly sets the main Content-Type to multipart/mixed which fixes Thunderbird attachment display

  • Improved Mail Sent Job Results

  • Minor Documentation Tweaks (remove 500 error codes from job results, better result documentation)

Version 1.9.0 (2025-07-26)

Automatic webhook notifications for job completions and failures

Added

  • Job completion webhooks sent to all associated streams when jobs complete or fail

  • Webhook events include job.completed and job.failed with full job details

  • Provider-based routing ensures streams only receive notifications for their jobs

  • Global streams receive notifications for all jobs without specific providers

  • Comprehensive webhook payload includes job ID, status, duration, metadata, and results

Changed

  • Job notifications are now always enabled for all streams (no configuration needed)

  • Comprehensive webhook documentation added to OpenAPI specification for both job completions and new messages

Version 1.8.0 (2025-07-25)

Track background jobs and monitor email delivery status with new Jobs API

Added

  • Jobs API endpoints to track background operations like email sending

  • Real-time status monitoring for sent emails (pending, processing, completed, failed)

  • Job details include execution duration, error messages, and retry attempts

  • Filter jobs by status or type for better visibility into async operations

  • Send Message API now returns job tracking information for monitoring delivery

Changed

  • Message sending is now asynchronous with immediate job ID response

  • Enhanced pagination system with standardized metadata across all list endpoints

Version 1.7.2 (2025-07-21)

Improve email sending API with smart input filtering and MIME type detection

Added

  • Automatic MIME type detection for attachments when contentType is missing

  • Intelligent filtering of empty strings in email arrays (to, cc, bcc, replyTo)

  • Automatic removal of empty attachment objects

Changed

  • Email arrays now accept and filter out empty strings while maintaining validation for actual email addresses

  • Attachment contentType is now optional - automatically detected from filename when possible

  • More forgiving API that handles common client-side edge cases gracefully

Version 1.7.1 (2025-07-16)

Improve IMAP provider configuration and password handling

Added

  • Optional password fields when updating IMAP providers - passwords remain unchanged when left blank

  • Helpful placeholder text and validation messages for password fields

Changed

  • Renamed enableSsl to tls for IMAP connections for consistency

  • Removed redundant smtpSsl field (use smtpTls instead)

  • Improved form UX - no need to re-enter passwords when updating other settings

  • Better naming consistency across SSL/TLS configuration options

Deprecated

  • enableSsl field renamed to tls (automatically migrated)

  • smtpSsl field removed in favor of smtpTls (automatically migrated)

Version 1.7.0 (2025-07-14)

Add email attachment support for sending messages

Added

  • Email attachment support when sending messages via the API

  • Attachments array parameter accepting filename, content (base64), and contentType

  • Comprehensive OpenAPI documentation with base64 encoding examples

  • Code examples for encoding attachments in JavaScript, Python, Ruby, PHP, and curl

  • Multiple request examples showing how to send emails with attachments

Changed

  • Message sending endpoint now accepts attachments array with base64-encoded file content

  • Enhanced OpenAPI documentation with detailed attachment formatting instructions

Version 1.6.0 (2025-07-09)

Major API consolidation and architecture improvements for email providers

Read more in our blog post

Added

  • Gmail OAuth2 provider support (currently requires your own OAuth tokens - automated token flow coming soon pending CASA verification)

  • Unified provider configuration with embedded settings

  • Enhanced autoconfig detection for popular email providers

  • Discriminated union schemas for type-safe provider configurations

Changed

  • Consolidated all provider operations under single /api/v1/providers endpoint

  • Provider configurations now embedded directly in provider objects

  • Replaced polymorphic providableType/providableId with simple providerType field

  • Improved OpenAPI documentation with comprehensive examples

  • Streamlined provider creation with automatic server detection

  • Provider IDs now use URL-safe Base58 format (e.g., “h8Kzj9Tx5mFqL3Nw7pRcVb2Y”) for better security and uniqueness

Deprecated

  • Removed separate /api/v1/imap_providers endpoints (use /api/v1/providers instead)

  • Deprecated providableType and providableId fields in favor of embedded configuration

Version 1.5.0 (2025-07-04)

Standardize all error responses to JSON:API format and switch to camelCase naming convention

Added

  • Consistent JSON:API error format for all 4xx and 5xx responses

  • Error documentation in OpenAPI spec with example format

Changed

  • All API parameter names converted from snake_case to camelCase (e.g., provider_id → providerId)

  • All request body field names converted to camelCase (e.g., save_to_sent → saveToSent)

  • Schema references renamed to camelCase convention

  • Operation IDs updated to camelCase format

  • Provider update endpoint now uses PATCH method instead of separate activate/deactivate endpoints

  • All ID fields in responses are now strings instead of integers for consistency

Deprecated

  • Separate /activate and /deactivate endpoints removed in favor of PATCH with active field

Version 1.4.2 (2025-06-30)

Introduce Global Streams for automatic email collection across all providers

Read more in our blog post

Added

  • Global stream type that automatically includes all active providers

  • Every account now gets an “All Emails” global stream on creation

  • Visual indicators and tooltips for global streams in the UI

  • Protection against deleting or modifying system-managed global stream fields

Changed

  • Streams now have a stream_type field (standard or global)

  • Stream index page shows global streams first

  • API returns 422 error when attempting to delete global streams

Version 1.4.1 (2025-06-20)

Enhanced webhook monitoring and UI improvements

Read more in our blog post

Added

  • Comprehensive webhook event tracking with request/response details

  • Success rate indicators on streams page

  • Color-coded performance chips for webhook health

  • Improved event details view with copy functionality

Changed

  • Unified table-based layouts across all index pages

  • Removed redundant stream detail pages

  • Replaced inline JavaScript with Stimulus controllers

Version 1.4.0 (2025-06-19)

Add HTML body support to webhook payloads

Added

  • {“showHtmlBody field to Stream API for controlling HTML inclusion in webhooks (default”=>”true)”}

  • bodyHtmlSanitized field now populated in webhook payloads when showHtmlBody is enabled

  • Existing streams automatically get HTML body in webhooks (backwards compatible)

Changed

  • Stream API responses now include showHtmlBody attribute

Version 1.3.2 (2025-06-14)

Save sent emails to IMAP sent folders with smart provider defaults

Added

  • {“save_to_sent parameter to control saving sent messages (default”=>”true)”}

  • sent_folder parameter to specify custom sent folder location

  • Smart default folder detection (Gmail “Sent Mail”, Outlook “Sent Items”, others “Sent”)

  • Automatic saving of sent emails to IMAP folders for visibility in email clients

Version 1.1.0 (2024-02-04)

OpenAPI 3.1 compliant

Changed

  • The whole API is now OpenAPI 3.1 compliant

  • The documentation was improved

  • Error Messages are now using application/problem+json MIME-type and are JSON:API 1.1 compliant

  • Minor Bugfixes

Deprecated

  • Removed the RECENT endpoint as it was superseeded by the SEARCH endpoint

Version 1.0.6 (2024-01-29)

Improved Threads Endpoint

Changed

  • The threads endpoint is now json:api compliant. You can page it and get all messages of a thread nested into the response.

Version 1.0.3 (2023-12-20)

New Threads endpoint

Added

  • You can now view the thread structure of your IMAP Account via the threads endpoint. The endpoint will probably get some more polish but it’s there for you to try out now.

Changed

  • There were some internal updates to improve speed and the application itself.

Version 1.0.2 (2023-12-01)

Message Flagging

Added

  • You can add remove or replace message flags via our new patch message endpoint

Version 1.0.0 (2023-11-20)

Sunnybox API is now stable.

Read more in our blog post

Added

  • Toggle to show the headers of all fetched messages

Changed

  • Sending messages has been enhanced to include CC, BCC, Plain Body and HTML Body

  • Returned list of messages has been reversed (newest is the first array item)

Version 1.0.0-rc.2 (2023-11-18)

Sunnybox now adds an endpoint for automatic imap provider creation. This endpoint deducts configuration settings from Thunderbird-Database and DNS SRV records.

Read more in our blog post

Added

  • Create a new IMAP Provider via automatic configuration API Endpoint: https://api.sunnybox.io/api/v1/imap_providers/autoconfig.

Changed

  • Payload nesting for imap_providers CRUD (post/patch/put)

Version 1.0.0-rc.1 (2023-09-28)

Sunnybox now supports the creation of Streams. A Stream can group Providers together and posts new mails to a given callback URL.

Read more in our blog post

Added

  • Message Streams

  • Webhooks via Message Streams

Changed

  • Improve robustness with for handling certain non UTF-8 compliant notifications

  • Minor Bugfixes