NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1611 most downloaded on PyPI
Svix webhooks API client and webhook verification library
Last release 3 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
231 releases · first in 2021
One column per quarter.
Libs/Javascript: Fix bug where a missing content-type header would cause some requests to fail
Libs/Java and Libs/Kotlin: Fix bug introduced in v1.61.1, where message.create would return 422 on all requests
message.create would return 422 on all requestsLibs/Java (Breaking): The type of MessageIn.transformationsParams changed from Object to Map .
MessageIn.transformationsParams changed from Object to Map<String,Object>.MessageIn.payload now accepts a JSON encoded string instead of an Object (for Java) or Map<String, Any> (for Kotlin)&svix.Error instead of svix.ErrorLibs/Ruby (Breaking): Deprecated methods MessageAttempt.list and MessageAttempt.list_attempts_for_endpoint are removed
2.7 to 3.4.2MessageAttempt.list and MessageAttempt.list_attempts_for_endpoint are removedLibs/Javascript: Fix regression causing json deserialization to throw exception in a few edge cases
Libs/Java (Breaking): Deprecated methods MessageAttempt.list and MessageAttempt.listAttemptsForEndpoint are removed
ListOptions/PostOptions are removed, and renamed to {Resource}{Operation}Options. For example in Endpoint.List you would now use EndpointListOptionsMessageAttempt.list and MessageAttempt.listAttemptsForEndpoint are removedLibs/Go: Fixed regression where go >= 1.23 was needed, now Go >= 1.21 is supported
Libs/JavaScript: Fixed regression introduced in version 1.59.0, types are now correctly exported
Libs/Kotlin (Breaking): Deprecated functions MessageAttempt.list and MessageAttempt.listAttemptsForEndpoint are removed
appId and msgId were swapped on Message.get and Message.expungeContentListOptions/PostOptions are removed, and renamed to {Resource}{Operation}Options. For example in Endpoint.List you would now use EndpointListOptions*Patch patch models, nullable fields are of type MaybeUnset<T> instead of T. call MaybeUnset.Present(val) to initialize this valueSvixOptions no longer has initialRetryDelayMillis or numRetries instead use retrySchedule{Resource}{Operation}Options and model classes (ApplicationIn/MessageOut) are now data classesMessageAttempt.list and MessageAttempt.listAttemptsForEndpoint are removedjava.time.OffsetDateTime replaced with kotlinx.datetime.Instantjava.net.URL in request/response models are replaced with Stringendpoint.oauthUpdate and endpoint.oauthDelete operations.MessageAttempt.listwebhook.ts, import them from index.ts insteadLibs/Go: New Message.ExpungeContent is now available
Message.ExpungeContent is now available1.58.0. All models are now exported from the svix package.1.58.0. Nullable fields are now *T instead of T, this affects ListResponseXXXOut.IteratorLibs/Go: Fix a null-pointer deference regression introduced in previous version.
Libs/Rust: Fix regression in previous version. Nullable fields are now Option instead of T, this affects ListResponseXXXOut.iterator and EnvironmentOu
Option<T> instead of T, this affects ListResponseXXXOut.iterator and EnvironmentOut.settingsLibs/Python: In Application the dashboard_access method is deprecated in favor of app_portal_access. (Both sync and async)
This version contains a big overhaul of the client libraries, with improved typing.
Libs/Go: Add Authentication.ExpireAll (and ExpireAllWithOptions)
Libs/Go (Breaking): Excluding specific fields on the *Patch models (ApplicationPatch for example), all Nullable{Type} removed from the models
Libs/Go (Breaking): All Nullable{Type} (for example NullableString) are replaced with a new generic Nullable[T] type, the new type can be imported from github.com/svix/svix-webhooks/go/utils
Libs/Go (Breaking): All custom model types are now imported from github.com/svix/svix-webhooks/go/models instead of github.com/svix/svix-webhooks/go
Libs/Go (Breaking): All -WithOptions methods are now removed. Their regular counterparts now take a pointer to an Options type which can be nil when not needed. For example in Endpoint.RecoverWithOptions is now Endpoint.Recover
Libs/C# and Libs/Go (Breaking): All uses of ListOptions/PostOptions are removed, and renamed to {Resource}{Operation}Options. For example in Endpoint.List you would now use EndpointListOptions
Libs/C# (Breaking): All IdempotencyKey method parameters are removed, and are now part of {Resource}{Operation}Options. For example in Message.Create; to the use IdempotencyKey, simply pass it in the MessageCreateOptions
Libs/C# (Breaking): The Throw parameter is removed from SvixOptions
Libs/C# (Breaking): All redundant interfaces along with the Svix.Abstractions namespace are removed
Libs/C# (Breaking): The Svix.Model and Svix.Models namespaces are now merged into a single Svix.Models namespace
Libs/C# (Breaking): The Svix.Client namespace is removed, The SvixClient class can now be found in the Svix namespace
Libs/Python (Breaking): PostOptions and ListOptions are no longer used in methods for Authentication,Endpoint,EventType,Integration,MessageAttempt,Message, Statistics and OperationalWebhookEndpoint resources. Instead each API call now has its own {Resource}{Operation}Options. (Both sync and async)
Libs/Python: In Application the dashboard_access method is deprecated in favor of app_portal_access. (Both sync and async)
Libs/Python (Breaking): EndpointStatsOptions is renamed to EndpointGetStatsOptions
Libs/Python (Breaking): MessageAttemptListOptions is removed in favor of call specific {Resource}{Operation}Options
Libs/Python (Breaking): For Statistics in the aggregate_event_types method the task_id parameter is removed, Please note that previously this parameter was ignored and had no affect (Both sync and async)
Libs/Kotlin (Breaking): Mark api field of all API resource classes as private (previously
only some were private, accidentally)
Libs/Kotlin (Breaking): Update recover to return RecoverOut (instead of nothing)
Libs/Kotlin (Breaking): Update replayMissing to return ReplayOut (instead of nothing)
Libs/Kotlin (Breaking): Update sendExample to return MessageOut (instead of nothing)
Libs/Kotlin (Breaking): Update MessageAttempt list methods to each have its own type for
list options, since they don't all support the exact same set of parameters and some of the
parameters that could be set before would just get ignored
Libs/Kotlin: Fix a bug in EventType.list where options.order was not getting honored
Libs/Rust (Breaking): Add optional EventTypeDeleteOptions parameter to EventType::delete
Libs/Rust (Breaking): Add optional options parameters to Endpoint::recover,
Endpoint::rotate_secret, Integration::rotate_key and MessageAttempt::resend
Libs/Rust (Breaking): Remove model files that were not referenced by any operations available
through the Svix object
Libs/Rust (Breaking): Switch Patch struct fields from Option<Option<T>> to
js_option::JsOption<T>
Libs/Rust (Breaking): Change rate_limit from i32 to u16 in several places
Libs/Rust (Breaking): Remove settings parameter from EnvironmentIn::new
Libs/Rust (Breaking): Replace PostOptions with operation-specific options structs
Libs/Rust (Breaking): Remove Period from BackgroundTaskType variant names; this was introduced by accident a few releases ago
Server: Fix Docker image tagging
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Skipping versions: we had an issue with our CI that created duplicated Go library releases and forced us to bump the version across the libs and the s
Skipping versions: we had an issue with our CI that created duplicated Go library releases and forced us to bump the version across the libs and the server. Apologies for any inconvenience caused.
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.45.1...v1.56.0
CLI: Rename the binary back from svix-cli to svix
svix-cli to svixApiClient between all Svix instances. Fixes a bug where multiple
independently instantiated Svix instances would always use the same base path and auth token.Libs/Rust: Rename some Options types. The old names remain as deprecated type aliases ([#1584])
api::MessageAttemptListAttemptedMessagesOptions and use it for
MessageAttempt::list_attempted_messages, replacing MessageAttemptListOptions which contained
some extra parameters never used with this method / endpoint (#1568)options parameters on
MessageAttempt.list, MessageAttempt.listByMsg, MessageAttempt.listAttemptedMessages and
MessageAttempt.listAttemptedDestinations (#1571)EndpointStatsOptions interface to
EndpointGetStatsOptions (#1585)ListOptions class. Usage of classes that were inheriting
from it should not change though (#1587)api::Authentication::expire_all (#1584)Options types. The old names remain as deprecated type aliases (#1584)MessageAttempt API cleanup by @svix-jplatte in https://github.com/svix/svix-webhooks/pull/1568native-tls to rustls by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1590authors to manifest by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1595svix-cli by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1597dist by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1593--no-logging flag by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1600Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.44.0...v1.45.0
Libs/JavaScript: Revert packaging-related change because it broke for some users ([#1556])
PostOptions parameters from non-POST methods (#1557)PostOptions parameters from non-POST methods by @svix-jplatte in https://github.com/svix/svix-webhooks/pull/1557Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.43.0...v1.44.0
Libs/Go: Add convenient construction of messages with pre-serialized payload ([#1538])
NullableX types to where they actually have a use (#1543)Server: Return 413 on large payloads
iterator fields (#1534)Libs/JS: Allow iterator and date parameters on list endpoints to be null (in addition to undefined)
iterator and date parameters on list endpoints to be null (in addition to undefined)status query parametersOption<T> to Option<Option<T>> that came with 1.39.0Libs(JS): downgrade @stablelib/base64 avoiding ERR_REQUIRE_ESM by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1506
@stablelib/base64 avoiding ERR_REQUIRE_ESM by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1506Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.39.0...v1.40.0
Libs: Add operational webhook endpoint API
Option<Option<T>> fields to allow explicitly sending nulls to unset those fields.[]T instead of *[]T. Serialization handles the empty case correctly.openapi-generator to 7.9.0, with dependency upgrades and internal changes in the SDKs.Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.38.0...v1.39.0
Server: Increase max endpoint rotations
expunge parameter to event-type deletion endpointmessage.attempt.recovered operational webhookpath-to-regexp via openapi-generator-cli by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1473Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.37.0...v1.38.0
Libs(Go): EndpointUpdate and EndpointPatch allow null for channels, filter types
EndpointUpdate and EndpointPatch allow null for channels, filter typesEndpointUpdate and EndpointPatch for nulls by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1462Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.36.0...v1.37.0
Libs/Go: edit EndpointIn to allow null for channels, filter types
EndpointIn to allow null for channels, filter typesEndpointIn to allow null for channels, filter types by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1448Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.35.0...v1.36.0
server: Fix flaky attempt test by @svix-jplatte in https://github.com/svix/svix-webhooks/pull/1436
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.34.0...v1.35.0
Remove windows and macos bridge release by @jaymell in https://github.com/svix/svix-webhooks/pull/1431
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.33.0...v1.34.0
V1MessageEventsParamsServer: Add support for deprecating event types
release environment to release jobs by @jaymell in https://github.com/svix/svix-webhooks/pull/1424Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.32.0...v1.33.0
Libs/Go Remove modules no longer produced by the generator
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.31.0...v1.32.0
Libs/Go: prune out unused import for "time" in codegen output
application to app-portal-access endpointIgnoredResponse with serde's IgnoredAny by @slanesuke in https://github.com/svix/svix-webhooks/pull/1403Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.30.0...v1.31.0
Server: Support filtering by before and after at the same time
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.29.0...v1.30.0
Bridge: Rebuild RabbitMQ producer on error
with_content for Message.List by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1389with_msg param on MessageAttempt.ListByEndpoint by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1387order in Integtation.List by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1390order for EventType.List by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1391tag for several MessageAttempt list endpoints by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1388Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.28.0...v1.29.0
Libs: update spec by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1379
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.27.0...v1.28.0
Libs/Python: add missing 'get_stats' function
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.26.0...v1.27.0
Server: add configuration to for changing service name on OpenTelemetry
/events poller/events poller by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1363Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.25.0...v1.26.0
Libs/PHP: Replace ctype_digit for PHP 8.1 deprecation of non-string arguments
tcp_nodelaySvix::with_token to allow changing API tokentcp_nodelay by @jaymell in https://github.com/svix/svix-webhooks/pull/1316Svix::with_token to allow changing api token by @svix-aaron1011 in https://github.com/svix/svix-webhooks/pull/1339Recover Failed Webhooks response by @jaymell in https://github.com/svix/svix-webhooks/pull/1349Recover Failed Webhooks use configurable until by @jaymell in https://github.com/svix/svix-webhooks/pull/1352Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.24.0...v1.25.0
Server: Update redis health check
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.23.0...v1.24.0
Libs/Javascript: Fix method naming consistency
/events param, after by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1311Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.22.0...v1.23.0
Server: Don't require trailing slash at the end of request paths
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.21.0...v1.22.0-2
Server: Improve error information on failed assertions in Redis module
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.20.0...v1.21.0
Server and Bridge: Performance improvements in test setup
svix_beta feature by @svix-aaron1011 in https://github.com/svix/svix-webhooks/pull/1223Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.19.0...v1.20.0
Libs/Python: Make request timeout and retries configurable
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.18.0...v1.19.0
Server: adopt omniqueue as a queue backend
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.17.0...v1.18.0
Libs/Rust: [Important] Fix a bug in the webhook signature verification method where certain signatures could bypass the verification.
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.16.0...v1.17.0
Server: Add tag parameter to list-message for Go, JavaScript, and Python.
tag parameter to list-message for Go, JavaScript, and Python.Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.15.0...v1.16.0
Libs: update OpenAPI spec and libs.
chrono, time by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1144Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.14.0...v1.15.0
Server: separate out the message content to its own model.
messagecontent model by @jaymell in https://github.com/svix/svix-webhooks/pull/1100envsubst for shellexpand by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1105ahash dependency by @jaymell in https://github.com/svix/svix-webhooks/pull/1121Unit methods by @jaymell in https://github.com/svix/svix-webhooks/pull/1124Statistics endpoints by @jaymell in https://github.com/svix/svix-webhooks/pull/1119Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.13.0...v1.14.0
Server: Fix tracking of backtrace in some error cases.
EventType.DeleteWithOptionsmap_err in order to preserve #[track_caller] by @svix-aaron1011 in https://github.com/svix/svix-webhooks/pull/1078EventType.DeleteWithOptions by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1081EventType.DeleteWithOptions by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1082Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.12.0...v1.13.0
Update OpenAPI spec and regenerate libs by @svix-lucho in https://github.com/svix/svix-webhooks/pull/1071
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.11.0...v1.12.0
Server: update Docker image to Debian bookworm.
EventType.importOpenApi() by @svix-onelson in https://github.com/svix/svix-webhooks/pull/1066Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.10.0...v1.11.0
Server: Remove unused redis dependency by @jaymell in https://github.com/svix/svix-webhooks/pull/1059
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.9.0...v1.10.0
Server: add missing field documentation for query params.
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.8.1...v1.9.0
Server: correctly disconnect the tracing provider when shutting down in some rare scenarios.
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.8.0...v1.8.1
Deprecate Endpoint version field and make it optional by @svix-lucho in https://github.com/svix/svix-webhooks/pull/1005
NullableInt32 and NullableStringwith_content to attempt listing endpointsNullableString() now takes a pointer argument by @rkuprov in https://github.com/svix/svix-webhooks/pull/1020openapi.NullableInt32 by @rkuprov in https://github.com/svix/svix-webhooks/pull/1018chrono and run Cargo update by @svix-gabriel in https://github.com/svix/svix-webhooks/pull/1022with_content to attempt listing endpoints by @svix-nick in https://github.com/svix/svix-webhooks/pull/1025Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.7.0...v1.8.0
Server: update Docker image to use latest Rust version
Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.6.0...v1.7.0
Server: add 'event_types' query param to 'list-attempted-messages'
patch endpoints for partial updatespatch endpoints for partial updates by @tasn in https://github.com/svix/svix-webhooks/pull/987CacheKey::PREFIX_CACHE, kv_def!, string_kv_def! by @svix-onelson in https://github.com/svix/svix-webhooks/pull/992Full Changelog: https://github.com/svix/svix-webhooks/compare/v1.5.2...v1.6.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →