Beta Versions
Certain WorkOS features may be available only in the beta version of the SDK. Beta versions have the-beta.* suffix, for example,
3.2.0-beta.1. For more information on how to use beta
versions, refer to the README in the GitHub repository.
Releases
June 18, 2026
v9.3.0
Latest June 18, 2026
- #566 feat(generated)!: regenerate from spec (11 changes)
⚠️ Breaking
- organization_membership:
- Changed response of
UserManagementOrganizationMembership.listfromUserOrganizationMembershiptoUserOrganizationMembershipList - pipes:
- SDK surface change:
PipeService.CreateDataIntegrationTokenwas renamed toPipeService.GetAccessToken - user_management:
- Changed response of
UserManagementInvitations.listfromUserInvitetoUserInviteList
Features
- authorization:
- Added model
ReplaceGroupRoleAssignmentEntry - Added model
ReplaceGroupRoleAssignments - Added model
DeleteGroupRoleAssignmentsByCriteria - Added endpoint
POST /authorization/groups/{group_id}/role_assignments - Added endpoint
PUT /authorization/groups/{group_id}/role_assignments - Added endpoint
DELETE /authorization/groups/{group_id}/role_assignments - Added endpoint
GET /authorization/groups/{group_id}/role_assignments/{role_assignment_id} - Added endpoint
DELETE /authorization/groups/{group_id}/role_assignments/{role_assignment_id} - client:
- Added model
ClientApiToken - Added model
ClientApiTokenResponse - Added service
Client - connect:
- Added
auth_methodtoConnectedAccount - Added
api_key_last_4toConnectedAccount - Added enum
ConnectedAccountAuthMethod - groups:
- Added model
CreateGroupRoleAssignment - Added model
GroupRoleAssignment - Added model
GroupRoleAssignmentList - Added model
GroupRoleAssignmentResource - organization_membership:
- Added model
UserOrganizationMembershipList - Added model
UserOrganizationMembershipListListMetadata - pipes:
- Added model
DataIntegrationCredentials - Added model
DataIntegrationConfigurationResponse - Added model
DataIntegrationConfigurationListResponse - Added model
ConfigureDataIntegrationBody - Added
auth_methodstoDataIntegrationsListResponseData - Added
auth_methodtoDataIntegrationsListResponseDataConnectedAccount - Added
api_key_last_4toDataIntegrationsListResponseDataConnectedAccount - Added enum
DataIntegrationCredentialsCredentialsType - Added enum
DataIntegrationsListResponseDataAuthMethods - Added enum
DataIntegrationsListResponseDataConnectedAccountAuthMethod - Added service
PipesProvider - user_management:
- Added model
UserInviteList - Added model
UserInviteListListMetadata - Made
AuthorizationCodeSessionAuthenticateRequest.client_secretoptional - Made
RefreshTokenSessionAuthenticateRequest.client_secretoptional - widgets:
- Added
widgets:pipes:managetoWidgetSessionTokenScopes
June 17, 2026
v9.2.0
June 17, 2026
Bug Fixes
- #563 feat(generated): regenerate from spec (5 changes)
⚠️ Breaking
- api_keys:
- Made
expires_atrequired in API key models - directory_sync:
- Removed model
DsyncDeactivated - Removed model
DsyncDeactivatedData - Removed model
DsyncDeactivatedDataDomain - Removed enum
DsyncDeactivatedDataType - Removed enum
DsyncDeactivatedDataState - radar:
- Removed
domain_sign_up_rate_limitfromRadarStandaloneResponseControl - user_management:
- Removed
return_tofromRevokeSession
Features
- api_keys:
- Added model
ExpireApiKey - Added model
ApiKeyUpdated - Added model
ApiKeyUpdatedData - Added model
ApiKeyUpdatedDataOwner - Added model
UserApiKeyUpdatedDataOwner - Added model
ApiKeyUpdatedDataPreviousAttribute - Added endpoint
POST /api_keys/{id}/expire - audit_logs:
- Added
SnowflaketoAuditLogConfigurationLogStreamType - connect:
- Added
nametoUserObject - directory_sync:
- Added model
DsyncTokenCreated - Added model
DsyncTokenCreatedData - Added model
DsyncTokenRevoked - Added model
DsyncTokenRevokedData - user_management:
- Added
nameto user management models - webhooks:
- Added
api_key.updatedtoCreateWebhookEndpointEvents - Added
api_key.updatedtoUpdateWebhookEndpointEvents
May 27, 2026
v9.1.0
May 27, 2026
Features
Bug Fixes
- #554 feat(generated)!: regenerate from spec (11 changes)
⚠️ Breaking
- audit_logs: Rename audit log model types (breaking)
- Rename
AuditLogExportJSONtoAuditLogExport - Rename
AuditLogsRetentionJSONtoAuditLogsRetention - Rename
AuditLogActionJSONtoAuditLogAction - Rename
AuditLogExportJSONStatetoAuditLogExportState - Update method signatures to use new type names
- authorization: Remove
Searchparameter fromAuthorizationListResourcesParams - radar: Remove device_fingerprint and bot_score parameters
- Remove
DeviceFingerprintfield fromRadarCreateAttemptParams - Remove
BotScorefield fromRadarCreateAttemptParams - Remove enum values
CREDENTIAL_STUFFINGandIP_SIGN_UP_RATE_LIMITfromRadarStandaloneResponseControl - Remove and update enum values in
RadarStandaloneAssessRequestAction(keep onlySignUpandSignInwith updated values) - user_management: Refactor organization membership to dedicated service
- Move organization membership operations from
UserManagementServiceto newOrganizationMembershipService - Remove
ListOrganizationMemberships,CreateOrganizationMembership,GetOrganizationMembership,UpdateOrganizationMembership,DeleteOrganizationMembership,DeactivateOrganizationMembership,ReactivateOrganizationMembershipmethods from user management - Remove role helper types (
UserManagementRole,UserManagementRoleSingle,UserManagementRoleMultiple) from user management (now in organization_membership) - Add
ExpiresAtfield toUserManagementCreateAPIKeyParams - Remove
UserManagementOrganizationMembershipGroups()client accessor (replaced byOrganizationMembership()) - Remove
UserManagementOrganizationMembershipGroupServicetype andListOrganizationMembershipGroupsmethod - vault: Rewrite vault service with breaking API changes
- Remove
KeyContextstruct (replaced bymap[string]string) - Remove
DataKeyPairstruct (replaced byCreateDataKeyResponse) - Remove
DataKeystruct (replaced byDecryptResponse) - Remove hand-written types:
VaultObject,VaultObjectDigest,VaultObjectVersion,VaultListObjectsParams,VaultListObjectsResponse,VaultCreateObjectParams,VaultUpdateObjectParams,VaultDecryptDataKeyParams - Rename methods:
ListObjects→ListKv,CreateObject→CreateKv,ReadObject→GetKv,ReadObjectByName→GetName,UpdateObject→UpdateKv,DeleteObject→DeleteKv,ListObjectVersions→ListKvVersions,DescribeObject→ListKvMetadata,DecryptDataKey→CreateDecrypt - Change
LocalEncryptsignature: second param fromDataKeyPairtoCreateDataKeyResponse - Change
LocalDecryptsignature: second param fromDataKeytoDecryptResponse - Change
Encryptmethod:KeyContextparam type tomap[string]string - Change
VaultEncryptResult.KeyContextfield type fromKeyContexttomap[string]string
Features
- api_keys: Add expires_at field to API key models
- Add optional
expires_atfield toAPIKeysCreateOrganizationAPIKeyParams - Add optional
expires_atfield toUserManagementCreateAPIKeyParams - Add optional
expires_atfield toAPIKey,APIKeyCreatedData,APIKeyRevokedData,OrganizationAPIKey,OrganizationAPIKeyWithValue,UserAPIKey, andUserAPIKeyWithValuemodels - authorization: Add filter parameters to role/resource assignment list
- Add
ResourceID,ResourceExternalID,ResourceTypeSlugparameters toAuthorizationListRoleAssignmentsParams - Add
RoleSlugparameter toAuthorizationListRoleAssignmentsForResourceByExternalIDParamsandAuthorizationListRoleAssignmentsForResourceParams - organization_membership: Add new organization membership service
- Add new
OrganizationMembershipServicewith methods:List,Create,Get,Update,Delete,Deactivate,Reactivate,ListGroups - Define
OrganizationMembershipRoleinterface with single and multiple variants for flexible role assignment - Add corresponding parameter types for all service methods
- vault: Add new generated vault methods
- Add
CreateRekeymethod for re-encrypting data keys under a new context - Add
ListKvMetadatamethod for retrieving object metadata - Add object CRUD operations via generated service:
CreateKv,GetKv,GetName,UpdateKv,DeleteKv,ListKv,ListKvVersions - webhooks: Rename webhook endpoint model type
- Rename
WebhookEndpointJSONtoWebhookEndpoint - Rename
WebhookEndpointJSONStatustoWebhookEndpointStatus - Update method signatures and return types accordingly
- pipes: Add pipes connected account event models
- Add
PipeConnectedAccountmodel with state tracking - Add
PipesConnectedAccountConnected,PipesConnectedAccountDisconnected,PipesConnectedAccountReauthorizationNeededevent models - Add
PipeConnectedAccountStateenum withconnectedandneeds_reauthorizationvalues - Add webhook event types for pipes integration events
- generated: Add new vault-related model types
- Add
Actormodel for audit log actor representation - Add vault encryption models:
CreateDataKeyResponse,DecryptResponse,DeleteObjectResponse - Add vault object models:
Object,ObjectMetadata,ObjectSummary,ObjectVersion,ObjectWithoutValue - Add vault request models:
CreateDataKeyRequest,DecryptRequest,RekeyRequest,CreateObjectRequest,UpdateObjectRequest - Add error and metadata models:
Error,ListMetadata,VersionListResponse
- session:
Session.Refreshnow returns a non-nil error alongside the result on authentication-level failures (refresh_token_revoked,refresh_failed). TheRefreshSessionResult.Errfield has been removed — use the second return value instead. Callers should checkresult.Authenticated(noterr == nil) as the success signal.
Migration: replace result.Err with the err return value from Refresh:
// Before (v8)
result, _ := session.Refresh(ctx)
if !result.Authenticated {
if result.Err != nil {
var apiErr *workos.APIError
errors.As(result.Err, &apiErr)
}
}
// After (v9)
result, err := session.Refresh(ctx)
if !result.Authenticated {
if err != nil {
var apiErr *workos.APIError
errors.As(err, &apiErr)
}
}May 26, 2026
v9.0.0
May 26, 2026
⚠ BREAKING CHANGES
- return error from Session.Refresh on auth failures (#549)
- audit_logs: Rename audit log model types (breaking) (#554)
- radar: Remove device_fingerprint and bot_score parameters (#554)
- user_management: Refactor organization membership to dedicated service (#554)
Features
- api_keys: Add expires_at field to API key models (#554) (0add116)
- audit_logs: Rename audit log model types (breaking) (#554) (0add116)
- authorization: Add filter parameters to role/resource assignment list (#554) (0add116)
- generated: Add new vault-related model types (#554) (0add116)
- organization_membership: Add new organization membership service (#554) (0add116)
- pipes: Add pipes connected account event models (#554) (0add116)
- radar: Remove device_fingerprint and bot_score parameters (#554) (0add116)
- user_management: Refactor organization membership to dedicated service (#554) (0add116)
- vault: Add new vault service for encryption key management (#554) (0add116)
- webhooks: Rename webhook endpoint model type (#554) (0add116)
Bug Fixes
May 13, 2026
v8.0.1
May 13, 2026
May 6, 2026
v8.0.0
May 6, 2026
8.0.0 (2026-05-06)
⚠ BREAKING CHANGES
- authorization: Change email field type in multiple models
- user_management: Add user API key management endpoints
- user_management: Change email field type in user management models
- authorization: Rename RoleAssignment to UserRoleAssignment
Features
- add API documentation site generation (#546) (b9701ea)
- api_keys: Add organization and user API key models (1b8f1d6)
- authorization: Add pagination order enum and update enum handling (1b8f1d6)
- authorization: Change email field type in multiple models (1b8f1d6)
- authorization: Rename RoleAssignment to UserRoleAssignment (1b8f1d6)
- authorization: Unify BYOK key provider enum (1b8f1d6)
- directory_sync: Add name field to directory user models (1b8f1d6)
- user_management: Add name field to Profile and SSO models (1b8f1d6)
- user_management: Add user API key management endpoints (1b8f1d6)
- user_management: Add user field to organization membership models (1b8f1d6)
- user_management: Change email field type in user management models (1b8f1d6)
Bug Fixes
May 6, 2026
v7.1.2
May 6, 2026
April 30, 2026
v7.1.1
April 30, 2026
April 28, 2026
v7.1.0
April 28, 2026
April 22, 2026
v7.0.0
April 22, 2026
7.0.0 (2026-04-22)
⚠ BREAKING CHANGES
- v7 rewrites the SDK around the root
workospackage and a sharedworkos.Client, removing all legacypkg/*imports, package-levelSetAPIKey/Configurehelpers, and compatibility re-exports. - Service access now goes through
client.Service()accessors, many method signatures changed, and list endpoints now return auto-paginating iterators instead ofList*Responsewrappers withListMetadata. - AuthKit/SSO/logout URL helpers changed, webhook verification now uses
workos.NewWebhookVerifier(...),pkg/workos_errorswas removed in favor of new root error types, and Vault models have several incompatible shape and field-name changes.
See the v7 migration guide for the full upgrade checklist and code examples.
March 20, 2026
v6.5.0
March 20, 2026
February 4, 2026
v6.4.0
February 4, 2026
What's Changed
- Make Pipes interface a little more idiomatic Go by @dandorman in #488
- Bump version to 6.3.0 by @workos-sdk-automation[bot] in #489
- Add custom_attributes field to OrganizationMembership by @ajworkos in #490
- add list session method by @petarTenderly in #470
- Bump version to 6.4.0 by @workos-sdk-automation[bot] in #491
New Contributors
- @workos-sdk-automation[bot] made their first contribution in #489
- @petarTenderly made their first contribution in #470
Full Changelog: v6.3.0...v6.4.0
January 29, 2026
v6.3.0
January 29, 2026
What's Changed
- Add context7.json to repo by @nicknisi in #483
- Add
ReadObjectByNamemethod for Vault API by @hexedpackets in #484 - Add Pipes module by @dandorman in #487
- Make Pipes interface a little more idiomatic Go by @dandorman in #488
- Bump version to 6.3.0 by @workos-sdk-automation[bot] in #489
New Contributors
- @dandorman made their first contribution in #487
- @workos-sdk-automation[bot] made their first contribution in #489
Full Changelog: v6.2.0...v6.3.0
December 3, 2025
v6.2.0
December 3, 2025
What's Changed
- Add
rolesproperty to directory user & sso profile by @kendallstrautman in #481 - Bump version v6.2.0 by @kendallstrautman in #482
Full Changelog: v6.1.0...v6.2.0
November 21, 2025
v6.1.0
November 21, 2025
What's Changed
- Default to adding idempotecy-key to audit-logs/events if not present, added in retryability logic to endpoints#492 by @swaroopAkkineniWorkos in #475
- Add support for resending invites by @antn in #476
New Contributors
- @swaroopAkkineniWorkos made their first contribution in #475
- @antn made their first contribution in #476
Full Changelog: v6.0.0...v6.1.0
November 6, 2025
v6.0.0
November 6, 2025
What's Changed
- Add
permissionsto the ListOrganizationRoles response by @jyecusch in #468 - Fix UpdateOrganization JSON serialization by @nicknisi in #472
- Change organization metadata to map[string]*string by @nicknisi in #471
- Remove "domain" param from directories query by @ameesha in #301
- Fix CreateOrganizationOpts.Metadata to use map[string]string by @nicknisi in #474
New Contributors
- @jyecusch made their first contribution in #468
Full Changelog: v5.2.0...v6.0.0
October 2, 2025
v5.2.0
October 2, 2025
What's Changed
- Add organization name field to OrganizationMembership struct by @kaylagordon in #463
- updated the UpdateOrganizationOpts fields to optional by @rarevalo13 in #460
- V5.2.0 by @rarevalo13 in #465
New Contributors
- @kaylagordon made their first contribution in #463
Full Changelog: v5.1.0...v5.2.0
September 25, 2025
v5.1.0
September 25, 2025
What's Changed
Full Changelog: v5.0.0...v5.1.0
September 5, 2025
v5.0.0
September 5, 2025
What's Changed
- Re-introduce metadata removal support (breaking change) by @nicknisi in #457
Breaking Changes Summary
The v5 release includes the following breaking change:
UpdateUserOpts.Metadatafield type changed frommap[string]stringtomap[string]*string(introduced in PR #457)- This allows setting metadata values to
nilto remove them server-side
Migration Guide for Users
// v4 (old)
import "github.com/workos/workos-go/v4/pkg/usermanagement"
opts := usermanagement.UpdateUserOpts{
User: "user_123",
Metadata: map[string]string{
"department": "Engineering",
},
}
// v5 (new)
import "github.com/workos/workos-go/v5/pkg/usermanagement"
dept := "Engineering"
opts := usermanagement.UpdateUserOpts{
User: "user_123",
Metadata: map[string]*string{
"department": &dept,
"old_field": nil, // Removes this field
},
}Full Changelog: v4.46.1...v5.0.0
September 5, 2025
v4.46.1
September 5, 2025
What's Changed
- Fix: Revert breaking change in v4.46.0 to maintain backward compatibility by @nicknisi in #455
Full Changelog: v4.46.0...v4.46.1
September 4, 2025
v4.46.0
September 4, 2025
- Adds ability to pass in nil values to metadata keys when updating a user. This allows for clearing of existing metadata fields on a user.
August 20, 2025
v4.45.1
August 20, 2025
- Correctly unmarshal list_metadata pagination cursors across User Management, Organizations, SSO, and Directory Sync
July 31, 2025
v4.45.0
July 31, 2025
- Added structured authentication error handling for AuthKit User Management API
- New error types for authentication scenarios:
- EmailVerificationRequiredError
- MFAEnrollmentError
- MFAChallengeError
- OrganizationSelectionRequiredError
- SSORequiredError
- OrganizationAuthenticationMethodsRequiredError
- Enhanced error parsing with user data, pending tokens, and organization info
- Backwards compatible - existing error handling unchanged
- Type-safe using standard Go errors.As() pattern
July 28, 2025
v4.44.0
July 28, 2025
What's Changed
- added StripeCustomerID to org struct by @rarevalo13 in #442
Full Changelog: v4.43.0...v4.44.0
July 11, 2025
v4.43.0
July 11, 2025
- Add metadata serialization for updating organizations
July 10, 2025
v4.42.0
July 10, 2025
What's Changed
- add organization_domain created/updated/deleted events by @ajworkos in #435
- fix: use standard 12-byte nonce for AES-GCM encryption in vault package by @hexedpackets in #438
Full Changelog: v4.41.0...v4.42.0
June 25, 2025
v4.41.0
June 25, 2025
What's Changed
- Added support for custom oauth scopes (https://github.com/workos/workos-go/pull/431)
- Correctly deserialize
ListIdentitiesResultas array (https://github.com/workos/workos-go/pull/433)
Full Changelog: v4.40.0...v4.41.0
May 20, 2025
v4.40.0
May 20, 2025
What's Changed
- Add
EmailtoUpdateUserOptsby @cmatheson in #429 - added
omitemptyto ExternalID field by @rarevalo13 in #428 - Bump to v4.40.0 by @rarevalo13 in #430
Full Changelog: v4.39.0...v4.40.0
May 19, 2025
v4.39.0
May 19, 2025
What's Changed
- Add "warnings" field to FGA query and check response by @atainter in #426
- Bump to v4.39.0 by @atainter in #427
Full Changelog: v4.38.0...v4.39.0
May 6, 2025
v4.38.0
May 6, 2025
What's Changed
- Support optional authenticated data in local encrypt/decrypt by @hexedpackets in #424
Full Changelog: v4.37.0...v4.38.0