Bot Blocking
Ready
Enabled
Agent Auth
Ready
Enabled
Audit Logs
Ready
Enabled
Enterprise SSO
Ready
Enabled
SCIM
Ready
Enabled
RBAC
Ready
Enabled
Connectors
Ready
Enabled
Bot Blocking
Ready
Enabled
Agent Auth
Ready
Enabled
Audit Logs
Ready
Enabled
Enterprise SSO
Ready
Enabled
SCIM
Ready
Enabled
RBAC
Ready
Enabled
Connectors
Ready
Enabled

Trusted by

![]()
Auth for all SSO providers
Support any SAML or OIDC identity provider with a single integration

Complete User Management
Manage users and organizations, set policies, and support all auth types
![]()
Social authentication
Sign in to your app with Microsoft, Google, and more

AuthKit
Flexible authentication UI powered by WorkOS and Radix
![]()
Magic Auth
Passwordless auth with a six-digit code sent via email
![]()
Multi-Factor Auth
Manage users and organizations, set policies, and support all auth types
WorkOS provides a single, elegant interface that abstracts dozens of enterprise integrations.
RESTful APIs, JSON responses, and normalized objects
Dashboard seamlessly integrates WorkOS into your application
Realtime updates from directory services with webhook events
Modern SDKs for Node.js, Ruby, Python, .NET, Go and more
Multiple environments to map to your application development process
Supports 20+ enterprise services with a single integration point
// Get a user’s access token and
// profile data from an Identity Provider
import WorkOS from '@workos-inc/node';
const workos = new WorkOS('sk_example_123456789');
const profile = await workos.sso.getProfileAndToken({
code: '01E2RJ4C05B52KKZ8FSRDAP23J',
clientID: 'client_123456789',
});
# Get a user’s access token and
# profile data from an Identity Provider
require 'workos'
WorkOS.key = 'sk_example_123456789'
WorkOS::SSO.profile_and_token(
code: '01E2RJ4C05B52KKZ8FSRDAP23J',
client_id: 'client_123456789',
)
# Get a user’s access token and
# profile data from an Identity Provider
import workos
from workos import client
workos.api_key = 'sk_example_123456789'
workos.client_id = 'client_123456789'
client.sso.get_profile_and_token('01E2RJ4C05B52KKZ8FSRDAP23J')
// Get a user’s access token and
// profile data from an Identity Provider
import "github.com/workos/workos-go/pkg/sso"
sso.SetAPIKey("sk_example_123456789")
sso.GetProfileAndToken(
context.Background(),
sso.GetProfileAndTokenOptions{
Code: "01E2RJ4C05B52KKZ8FSRDAP23J",
}
)
// Get a user’s access token and
// profile data from an Identity Provider
$this->sso = new WorkOS\SSO();
$profile = $this->sso->getProfileAndToken("01E2RJ4C05B52KKZ8FSRDAP23J");
// Get a user’s access token and
// profile data from an Identity Provider
import com.workos.WorkOS;
WorkOS workos = new WorkOS("sk_example_123456");
ProfileAndToken profileAndToken = workos.sso.getProfileAndToken("01E2RJ4C05B52KKZ8FSRDAP23J", "client_123456789");
Profile profile = profileAndToken.profile;
// Get a user’s access token and
// profile data from an Identity Provider
WorkOS.SetApiKey("sk_example_123456");
var ssoService = new SSOService();
var options = new GetProfileAndTokenOptions
{
ClientId = "client_123456789",
Code = "01E2RJ4C05B52KKZ8FSRDAP23J",
};
var profile = await ssoService.GetProfileAndToken(options);
curl --request POST \
--url "https://api.workos.com/sso/token? \
client_id=client_123456789& \
client_secret=sk_example_123456789& \
grant_type=authorization_code& \
code=01E2RJ4C05B52KKZ8FSRDAP23J"
HTTP 200
Response {...}
"access_token": "01DMEK0J53CVMC32CK5SE0KZ8Q",
"profile": {
"id": "prof_01DMC79VCBZ0NY2099737PSVF1",
"connection_id": "conn_01E4ZCR3C56J083X43JQXF3JK5",
"connection_type": "okta",
"email": "alan@foo-corp.com",
"first_name": "Alan",
"last_name": "Turing",
"idp_id": "00u1a0ufowBJlzPlk357",
"object": "profile",
"raw_attributes": {...}
}



WorkOS



SCIM provisioning
with Okta, Entra ID, ADFS, and more

HRIS integration
with Bamboo, Rippling, and others

Effortlessly connect any identity provider or directory
Customize the look and feel to match your brand
Host on your custom domain (CNAME)
A polished experience for IT administrators
Step-by-step setup guides with detailed screenshots
Seamlessly integrates into your existing application
“The WorkOS team was right there with us every step of the way. Their support ensured those final migrations were just as smooth as the rest.”
“Cursor now completely runs on WorkOS. Login times are much faster, the signup page looks much better, and we’re not subject to Auth0's customer-hostile and opaque pricing anymore. Plus, we’re excited to add SSO for our business tier soon.”
“SSO is a crucial part of our Enterprise Pro plan, and with WorkOS we could roll it out in less than a week. Docs are comprehensive, the Admin Portal has made customer onboarding a breeze, and the level of support we received directly in Slack has been phenomenal.”

Dmitry Shevelenko
Chief Business Officer
Read more
“Integrating was straightforward, pleasant, and fun. The team answered my questions quickly, and went above and beyond to help when I ran into issues.”
“When I asked the team, how was the experience with WorkOS? They were just like, this is incredible.”
“WorkOS simplified the complexity of implementing single sign-on (SSO) with multiple identity providers.”
“With our in-house solution we had to spend 2-4 hours provisioning each SSO connection. I wanted to find a solution that would allow us to focus on building core-products.”
“We did consider open source, but WorkOS provided a far superior developer experience.”
“With Audit Logs, we were able to launch the storage, querying, and export capabilities we needed into production in just a matter of days.”

“We viewed WorkOS’ connections-based pricing as a more viable option aligned with our projected growth. The Admin Portal has also been a critical feature allowing us to save engineering time and provide a more polished enterprise experience.”
“WorkOS’ SCIM API has been a game-changer, enabling us to meet the user lifecycle management needs of our largest enterprise customers.”
“The decision to use WorkOS was straightforward. We saw good feedback from existing customers and reviewing the documentation made us confident that our needs would be addressed.”
“WorkOS was super easy to self serve and get up and running. It provided us super easy-to-implement must-have functionality out of the box.”
“What sold WorkOS was the Admin Portal. Our UI gives customers a link; they go to the Admin Portal, complete onboarding steps at their leisure, and never have to talk to us, making the onboarding process a breeze.”

“SCIM is a game-changer for our customers, saving them a lot of time and reducing friction. It's crucial because, without SCIM, customers would likely get frustrated and might even switch to another provider with a smoother experience.”

“The onboarding process has been excellent. I love sending IT admins the link to set it up themselves and getting an email notification when it's completed. It's so efficient not having to get into meetings or go back and forth via email with IT personnel. ”
“If you work with another provider, you probably won’t get the same level of support that WorkOS provides. We'd get immediate responses to technical questions we posted in Slack.”

Hannah Han-Ciaravella
Senior Product Manager
Read more


