Skip to main content

Clerk Changelog

API Keys General Availability

Category
Product
Published

API keys are now generally available, with usage-based billing now active.

API keys are now generally available as of April 6th. Part of the machine authentication suite, API keys let your users create credentials that delegate access to your application's API on their behalf.

Pricing

Billing is now active. Each month includes a free allocation:

  • 1,000 key creations, then $0.001 per creation
  • 100,000 key verifications, then $0.00001 per verification

Get Started

Contributors
Jeff Escalante
Robert Soriano
Brandon Romano
Bruno Lin

Share this article

Directory Sync (SCIM) is now generally available

Category
Organizations
Published

Directory Sync is now available to all users, with new support for custom attribute mapping and automatic role assignment from IdP groups.

Directory Sync (SCIM) is now generally available and enabled for all users. When users are added, updated, or removed in your identity provider, those changes are automatically reflected in Clerk, without any manual account management.

The following enhancements to Directory Sync are in public beta:

  • Custom attribute mapping lets you sync additional user data from your IdP (such as department, employee_id, or cost_center) directly into publicMetadata on the Clerk user object. Attribute definitions are configured once at the enterprise connection level and shared across both your SSO connection (SAML or OIDC) and your Directory Sync connection, so the same attributes are available regardless of how a user authenticates or is provisioned. When Directory Sync is enabled, it becomes the exclusive source for those attribute values and they're read-only in Clerk until Directory Sync is disabled.

  • Groups to role mapping lets you automatically assign Clerk roles based on IdP group membership. When a user is added to a group in your IdP, Clerk assigns the mapped role. When they're removed, they fall back to the next mapped role. If a user belongs to multiple groups with different role mappings, you can configure a precedence order to control which role takes effect.

Getting started

To enable Directory Sync, navigate to an enterprise connection in the Clerk Dashboard, open the Directory Sync tab, and toggle it on. Clerk generates a SCIM base URL and bearer token to configure in your IdP.

Refer to the Directory Sync documentation for setup guides for Okta and Microsoft Entra ID, and the Custom Attribute Mapping documentation for details on the shared attribute pool.

Compatibility note

Our implementation follows the SCIM 2.0 protocol. However, your identity provider (and how you configure it) may not match our implementation completely. If you run into any compatibility issues, please report them to . We have a team standing by and will work to get compatibility resolved quickly.

Pricing

Directory Sync is included with your enterprise connection at no extra charge. Refer to the pricing page for connection pricing details.

Contributors
Nicolas Lopes
Jim Kalafut
Gabriel Melo
Iago Dahlem
Tu Nguyen

Share this article

@clerk/expo now supports a JSON-based theme for native iOS and Android components — colors, dark mode, border radius, and font family.

You can now customize the look and feel of @clerk/expo's native components (<AuthView />, <UserButton />, <UserProfileView />) on both iOS and Android by pointing the @clerk/expo config plugin at a JSON theme file.

app.json
{
  "expo": {
    "plugins": [["@clerk/expo", { "theme": "./clerk-theme.json" }]]
  }
}
clerk-theme.json
{
  "colors": {
    "primary": "#6C47FF",
    "background": "#FFFFFF",
    "foreground": "#0F172A",
    "border": "#E2E8F0"
  },
  "darkColors": {
    "primary": "#8B6FFF",
    "background": "#0B0B0F",
    "foreground": "#FFFFFF"
  },
  "design": {
    "borderRadius": 12,
    "fontFamily": "Inter"
  }
}

The schema supports:

  • colors — 15 semantic tokens (primary, background, input, danger, success, warning, foreground, mutedForeground, primaryForeground, inputForeground, neutral, border, ring, muted, shadow) as 6- or 8-digit hex strings.
  • darkColors — same shape as colors, applied automatically when the device is in dark mode. Set "userInterfaceStyle": "automatic" in your app.json to let the system switch modes, or pin to "light" / "dark" to always use one palette.
  • design.borderRadius — number, applied across components on both platforms.
  • design.fontFamily — string, iOS only. The font must be bundled with your iOS app.

The JSON is validated at prebuild — invalid hex colors or value types fail the build with a clear error. iOS embeds the parsed theme in Info.plist; Android copies it to android/app/src/main/assets/clerk_theme.json. Both are picked up by the native SDKs automatically.

See the theming reference for the full schema and examples.

Contributor
Chris Canin

Share this article

Infinite scrolling in Overview tables

Category
Dashboard
Published

Browse more Overview data with infinite scrolling across user cohorts, organization cohorts, and waitlist tables.

The Overview page now includes infinite scrolling across all supported table variants, so you can keep exploring data without stopping to change pages.

This applies to the Users and Organizations views, along with the Waitlist mode overview, making it easier to browse large datasets in one continuous flow.

Open the Clerk Dashboard and scroll through the Overview tables to see the new experience.

Contributor
Rafael Camargo

Share this article

Filter test users in Overview analytics

Category
Dashboard
Published

Filter out test users from the Clerk Dashboard Overview

The Overview page now includes a Filter test users setting for the Users view. User analytics previously showed combined regular and test user data. Now, when the toggle is enabled, test users are excluded from all Overview charts and metrics.

Test users are defined as having:

  • +clerk_test in the email identifier
  • +15555550100 as the phone

Open the Clerk Dashboard and use the Overview settings menu in the users view to try it.

Contributor
Chase Austin

Share this article

Annual-only plans for Clerk Billing

Category
Billing
Published

Create plans that require an annual subscription

Clerk Billing now has support for annual-only subscriptions. Previously, all plans renewed monthly with an option to subscribe on an annual basis. Now, you can configure plans to support annual-only billing.

To enable support for annual-only plans, visit your applications Updates page to opt-in to annual-only plans.

Important

Opting into annual-only plans will result in the fee property of plans potentially being null. Please ensure any logic your application has that interacts with the fee property is updated to account for null values.

To configure a plan for annual-only billing, enable only the "Annual base fee" option in the plan settings.

Screenshot of the Pricing details section of the plan creation screen, showing the annual base fee toggle in the on position
Contributor
Clerk

Share this article