Skip to content
Visit Kinde’s marketing website
Kinde
Docs
SDKs
APIs
Sign in
GitHub
Theme
Light
Dark
System
Search docs
Get started
Guides
First things first
Add Kinde to your codebase
Common setup tasks
Common errors and codes
Learn about Kinde
What does Kinde do?
Supported data regions
Kinde product security information
Supported browsers
Switch to Kinde
Migration overview
Auth0
FusionAuth
Clerk
Supabase
Firebase
AWS Cognito
Azure B2C
ASP.NET Identity
Bulk import
Create users with API
Drip-feed migration
Connect
Get app keys
Set callback and redirect URLs
Customize email sender
APIs and SDKs
About Kinde APIs
Team and account
Add team members
Team member roles in Kinde
Claim credits with Kinde perk code
Access Kinde via an enterprise connection
Add MFA for accessing Kinde
Get a referral code for sharing Kinde
Build on Kinde
Set up options
Kinde for different business models
Run multiple businesses
Configure attack protection
Set up and manage user access requests
Set global access policies
Manage your code in Kinde
Self-service portal
Customer self-service portal
Enable self-serve portal for orgs
Enable self-service portal for users
Environments
Manage environments
Go live checklist
Applications
Applications in Kinde
Add and manage applications
Rotate client secret
Authenticating single-page apps (SPAs) with Kinde
Set a default login route for an application
Organizations
About organizations
Kinde organizations for developers
Add and manage organizations
Import organizations
Manage user sign up to organizations
Allow organization creation on sign up
Set access policies for an organization
Give API access to an organization using M2M
Delete an organization
Customize email sender for an organization
Customize the self-serve portal for an organization
Tokens
Configure token and session expiry
Access tokens
ID tokens
Refresh tokens
Token customization
OAuth 2.0 access token validation and error codes
Using OAuth scopes
Verifying JSON Web Tokens
Decoding JSON Web Tokens
Env variables
Store environment variables in Kinde
Add and update environment variables
Domain management
Use your own custom domain
Add a custom domain for an organization
Org handles and dynamic callbacks for subdomains
SDKs and APIs
Overview
Kinde SDKs
Use Kinde without an SDK
Front end SDKs
JavaScript SDK
React SDK
Angular
Back end SDKs
Elixir SDK
Express.js SDK
.NET SDK
Go SDK
Java SDK
Next.js App Router SDK
Next.js Pages Router SDK
TanStack Start React SDK
Nuxt module
Remix SDK
SvelteKit SDK
Node.js SDK
TypeScript SDK
PHP SDK
Python SDK
Ruby SDK
Node/Apollo GraphQL
Node/Express GraphQL
Native app SDKs
Android SDK
iOS SDK
React Native SDK
Expo
Flutter SDK
Kinde Management API
Quickstart
Call the API - General Guide
Call the API - Postman
Call the API - JavaScript Backends
Guide - Advanced User Search
API Scopes
API Rate Limits
Troubleshooting
Account API
About Kinde's Account API
Special guides
Integrate Kinde with ASP.NET using Open ID Connect
Deploy a Kinde app on Vercel
Deploy a Kinde app on Netlify
Deploy a Kinde app on Cloudflare Workers
Kinde in Electron desktop app
Protect FastAPI routes with Kinde
Troubleshoot code sync errors
Kinde config as code
Use Kinde permissions in React and any backend
Terraform provider
Manage your APIs
Register and manage your APIs
Register and manage APIs
Get a M2M token to test your APIs
Get a user access token to test your APIs (Postman method)
Protect your API
Secure your API using scopes
Give others access to your API
Manage API scopes for M2M applications
Manage API scopes for users
Get a M2M access token to test your APIs (Postman method)
Integrate Kinde auth into .NET-based APIs
About API keys
API keys overview
API keys quick start
API key best practices
Using API keys for AI products
API best practice for AI apps
Organization-level API keys
User-level API keys
Add and manage API keys
Create an API key
Scopes for API keys
Self-serve API keys
Verify API keys in your API
Rotate API keys
Revoke API keys
Test and troubleshoot
Troubleshoot API key errors
MCP Servers
About MCP servers
Add a new MCP connection
Manage Kinde account with AI agents
Operations and Scopes for Kinde MCP server
Auth and access
About authentication
About Kinde authentication
Configure auth flows
Ways to authenticate
User identity and verification
Top questions about Kinde authentication
User communication in Kinde
Top questions about authentication
Authentication guides
Mixed auth set up for B2B and B2C
Pass parameters to identity providers
Guide to enterprise auth and user identities
Authentication methods
Set up auth methods
Email authentication
Password authentication
Passwordless authentication
Username authentication
Phone authentication
WhatsApp authentication
Passkeys
Use both password and passwordless auth
Email deliverability in Kinde
SMS deliverability in Kinde
Manage authentication
Authenticated sessions across multiple applications
Change authentication for an application
Set custom authentication per organization
Build a switch to navigate between organizations
Sign users in to last organization
Keep your product in sync with Kinde
Session management
Session management per organization
Custom configurations
Manage the authentication experience
Disable self-sign up
Use custom sign-up and sign-in screens with Kinde
Pre-populate user identity on sign in
Invited user sign-up experience
Manage organization-level auth features
Redirect users
Static IP
Custom OAuth 2.0 connections
Proxy your Kinde auth pages through Cloudflare
Enterprise connections
Manage enterprise connections
Provisioning users for enterprise connections
Enterprise connections for B2B
Home realm or IdP discovery
Mapping and syncing users for enterprise auth
Migrating users from email identity to enterprise identity
Microsoft Entra ID enterprise connection (OAuth 2.0, WS-Fed)
Microsoft Entra ID enterprise connection (SAML)
Cloudflare enterprise connection (SAML)
Google Workspace enterprise connection (SAML)
LastPass enterprise connection (SAML)
Okta enterprise connection (SAML)
Custom SAML enterprise connection
Advanced SAML configurations
IdP-initiated SAML SSO
Refresh SAML certificate
Self-serve SSO
Add SSO connection via self-serve portal
Manage SSO connections added by customers
Switch on SSO self-management per organization
Multi-factor auth
About multi-factor authentication
Enable multi-factor authentication
Set multi-factor authentication for an organization
Social connections
Add and manage social connections
Apple social sign in
Bitbucket social sign in
Clever social sign in
Discord social sign in
Facebook social sign in
GitHub social sign in
GitLab social sign in
Google social sign in
LinkedIn social sign in
Microsoft social sign in
Roblox social sign in
Slack social sign in
Twitch social sign in
X (formerly Twitter) social sign in
Xero social sign in
Device authorization flow
Quick start
About the device authorization flow
Call your API using device authorization flow
Troubleshooting device authorization
Workforce identity
About workforce identity
Add a SAML application
Testing
Overview
Setup test user and environment
Testing authentication flows
Testing passwordless flows
Testing authenticated features
Testing backend APIs
Test backend APIs with Jest
Cypress
Setup Cypress
Test authentication flows
Test passwordless flows
Test authenticated features
Test backend APIs
Playwright
Setup Playwright
Test authentication flows
Test passwordless flows
Test authenticated features
Test backend APIs
Billing
About billing
About billing
Billing FAQ
The Kinde billing model
Billing concepts
Top questions about Kinde billing
Get started
Setup overview
Step 1 Add billing role (B2B)
Step 2 Connect to Stripe and set policies
Step 3 Set default billing currency
Step 4 Build plans
Step 5 Publish plans
Step 6 Create pricing table (optional)
Step 7 Set up self-serve portal (optional)
Manage plans
About plans
Create plans
Plan upgrade and downgrade policies
Cancel a subscription
Add and manage plan groups
Payment management
Connect payment processor (Stripe)
Manage Stripe connection
Subscription management
Subscription upgrade and downgrade methods
Add metered usage for a customer via API
Respond to customer activity using webhooks
Pricing
Pricing models
Billing user experience
Build a pricing table
Customize the plan sign-up experience
Update code and URLs for billing
Pricing table display defaults
Offer a free trial
Design
Brand
Set global brand defaults
Set unique branding for orgs