Integrating with SCIM new - Huddle/huddle-apis GitHub Wiki
The Membership service exposes SCIM 2.0 resources under **/scim/v2**. When calling through the API gateway, use the **/membership** virtual path prefix (same pattern as Users and other Membership docs): **/membership/scim/v2/...**.
Content type for SCIM requests and responses is **application/scim+json** unless noted otherwise.
For a full end-to-end walkthrough (create company, account, user, patch groups, workspace, teams), see **Membership/docs/ScimSchema.md** in the Membership service repository—that document is the canonical step-by-step reference.
Obtain a bearer token with the client credentials flow (see OAuth integration). Send Authorization: Bearer <access_token> on SCIM requests.
| Method | Path | Purpose | Details |
|---|---|---|---|
POST |
/membership/scim/v2/users |
Create a SCIM user | Jump |
GET |
/membership/scim/v2/users/{scimId} |
Retrieve a SCIM user | Jump |
POST |
/membership/scim/v2/groups |
Create a group (company, account, workspace, team, etc.) | Jump |
GET |
/membership/scim/v2/groups/{scimId} |
Retrieve a group by SCIM id | Jump |
PATCH |
/membership/scim/v2/groups/{scimId} |
Patch a group (e.g. add members) | Jump |
GET |
/membership/scim/v2/me |
SCIM representation of the authenticated user | Me |
Direct host URLs (for example https://membership.<host>/scim/v2/...) may appear in responses (Location, $ref). Gateway callers should still use the **/membership** prefix on the API host they integrate with.
Create and read SCIM users via **POST** and **GET /users/{scimId}**. User resources use the core SCIM User schema plus Huddle extensions (see ScimSchema).
POST /membership/scim/v2/users HTTP/1.1
Host: api.huddle.net
Authorization: Bearer frootymcnooty/vonbootycherooty
Content-Type: application/scim+json
Accept: application/scim+json
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:huddle:params:scim:schemas:extension:2.0:User"
],
"userName": "[email protected]",
"password": "t1meMa$heen"
}Successful creation returns 201 Created with a SCIM user body and a **Location** header for the new user.
Groups carry Huddle-specific types via schema extensions: Company, Account, Workspace, Team, and nested roles (company managers, company accounts, account managers, workspace managers, etc.). You create the top-level resource with **POST**, then **PATCH** subgroup resources to add members (accounts, users, workspaces, teams) using SCIM Patch operations on **members**.
POST /membership/scim/v2/groups HTTP/1.1
Host: api.huddle.net
Authorization: Bearer frootymcnooty/vonbootycherooty
Content-Type: application/scim+json
Accept: application/scim+json
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group",
"urn:huddle:params:scim:schemas:extension:2.0:Company"
],
"displayName": "MyCompany"
}PATCH /membership/scim/v2/groups/92f6583c-95a5-4151-ab68-a60f5d80bf39 HTTP/1.1
Host: api.huddle.net
Authorization: Bearer frootymcnooty/vonbootycherooty
Content-Type: application/scim+json
Accept: application/scim+json
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [{
"op": "add",
"path": "members",
"value": [{ "value": "a875f67e-8b7e-4458-9565-3a09bb3bfea9" }]
}]
}Additional examples (account creation, workspace creation, team membership, and subgroup ids) are in **Membership/docs/ScimSchema.md**.
**GET /membership/scim/v2/me** returns the SCIM user for the caller’s identity (same shape as **GET /users/{scimId}** for that user).
GET /membership/scim/v2/me HTTP/1.1
Host: api.huddle.net
Accept: application/scim+json
Authorization: Bearer frootymcnooty/vonbootycherootyThe Integrating with SCIM wiki page documents the older People SCIM API under **/people/companies/{companyId}/users**, including PUT, DELETE, filter queries, and XML payloads.
Membership SCIM is not a URL-prefix swap for that API. It centers on **/scim/v2/users, **/scim/v2/groups**, and **PATCH**-driven membership, and reflects the current Membership provisioning model. Use the People page when you must integrate with **/people** SCIM; use this page and ScimSchema for **/membership SCIM.