Sunnybox 2.0 - Faster, Smarter, and Built for Scale
      Read more in our blog post
      Added
      
        - 
          Email Drafts Management 
- 
          Email Folder Management 
- 
          Email Batch Operations 
- 
          Webhook Event Listing 
- 
          Gmail Support 
Changed
      
        - 
          URL structure 
- 
          Cursor based pagination 
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 
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
      
    
      
      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) 
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
      
    
      
      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
      
    
      
      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 
Improve IMAP provider configuration and password handling
      Added
      
      Changed
      
        - 
          Renamed enableSsltotlsfor IMAP connections for consistency
 
- 
          Removed redundant smtpSslfield (usesmtpTlsinstead)
 
- 
          Improved form UX - no need to re-enter passwords when updating other settings 
- 
          Better naming consistency across SSL/TLS configuration options 
Deprecated
      
    
      
      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
      
    
      
      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
      
    
      
      Standardize all error responses to JSON:API format and switch to camelCase naming convention
      Added
      
      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
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 
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 
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
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 
Add Reply-To to message sending
      Added
      
        - Reply-To field for sending emails
Streams API
      Read more in our blog post
      Added
      
        - Added the Streams API Endpoints
General Performance Improvements
    
      
      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
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.
New search endpoint
      Added
      
        - The Sunnybox API now has a search endpoint for filtering mailboxes.
Make Sunnybox API ChatGPT compliant
      Read more in our blog post
      Changed
      
        - The Sunnybox API now works with OpenAIs implementation of OpenAPI.
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.
Message Flagging
      Added
      
        - You can add remove or replace message flags via our new patch message endpoint
Autoconfig UI
      Read more in our blog post
      Added
      
    
      
      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) 
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)
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
      
      Changed
      
    
      
      Public Beta Release of the Sunnybox Email API.
      Read more in our blog post