Connect any SCIM 2.0 app with a custom endpoint

Provision Google Workspace users and groups to any app that exposes an RFC 7644 compliant SCIM 2.0 API, using its base URL and a bearer token.

Updated · 2 min read · View as Markdown

If an app is not in the template list but exposes a SCIM 2.0 API, you can connect it with Custom SCIM 2.0. All you need is the base URL and a bearer token. AnySCIM checks what the endpoint supports before the first sync.

Before you start

Look in the app's admin or security settings for a page called *SCIM*, *User provisioning* or *Directory sync*. You need:

  • The SCIM base URL, for example https://app.vendor.com/scim/v2. It is the URL that /Users and /Groups are appended to.
  • A bearer token with permission to manage users (and groups, if you push them).

If the vendor documents its setup for Okta or Microsoft Entra ID, the same two values work with AnySCIM.

Connect the endpoint

  1. In the AnySCIM dashboard, open Connections → New connection and choose Custom SCIM 2.0.
  2. Enter a display name, the base URL and the bearer token. The URL must use https://.
  3. Click Test connection. AnySCIM calls GET /ServiceProviderConfig and GET /Users?count=1 and shows which optional features the server supports (PATCH, filter, bulk).
  4. In Scope, select the organizational units and groups to provision. Selecting nothing means the whole directory.
  5. Review the dry-run: it lists every user and group that would be created or updated, without sending anything.
  6. Click Activate connection.

What the endpoint must support

FeatureRequiredWhy
GET /Users?filter=userName eq "..."YesFinds existing accounts so they are matched instead of duplicated
POST /UsersYesCreates accounts
PATCH /Users/{id}YesUpdates changed attributes and sets active: false on offboarding
/Groups with PATCHOptionalOnly if you push group membership
ETag / If-MatchOptionalUsed when available, to avoid overwriting concurrent changes

Troubleshooting

  • 401 Unauthorized: the token is wrong, expired or revoked. Generate a new one and update the connection.
  • 403 Forbidden: the token is valid but lacks permission, or SCIM is not included in your plan.
  • 404 on /Users: the base URL is incomplete or has an extra path segment. It should end where /Users begins.
  • 409 Conflict on create: an account with that userName already exists but the filter did not find it. Check that the app supports filter=userName eq.
  • 429 Too Many Requests: AnySCIM retries automatically and honors Retry-After. For very large first syncs, scope the connection to a few groups first.

FAQ

Do I need SCIM 2.0, or does SCIM 1.1 work?

AnySCIM requires SCIM 2.0 (RFC 7643/7644). Most apps launched in the last decade implement 2.0.

Can I use OAuth client credentials instead of a static token?

Not yet. Connections use a bearer token: generate one with the client credentials grant in your app and paste it in Connections → New connection. If the token expires, the connection stops working until you add a new one.

My app is listed but the template URL is different from mine

Templates only pre-fill the URL format. Always paste the exact base URL shown in the vendor's admin settings.

Try it on your own directory

Connect Google Workspace and preview the first sync in dry-run: nothing is sent until you activate the connection.

Request a demo

Related guides