Skip to content

SCIM Management Reference

Creates a SCIM connection and returns a SCIM API key for your users to provide to their IdP.

Arguments

customerId string required

The ID of the customer/organization that the SCIM connection is for

displayName string

A display name for the SCIM connection

scimApiKeyExpiration number

UNIX timestamp when the API key expires (omit for no expiration)

customMapping ScimUserMappingConfig

Custom property mapping for this SCIM connection


Successful Response

connectionId string

The unique identifier for the created SCIM connection

scimApiKey string

The API key to provide to the IdP for SCIM provisioning


Error Types

InvalidFields

One or more fields have invalid values

ScimConnectionForCustomerIdAlreadyExists

A SCIM connection already exists for this customer ID

UnexpectedError

An unexpected error occurred during the operation

const auth = createClient({ url, integrationKey });
const result = await auth.scim.management.createScimConnection({
customerId: "106ce124-1082-4d72-835d-dd1b2172f2fe",
displayName: "Example SCIM Connection",
scimApiKeyExpiration: 1760232804,
customMapping: {
userSchema: [
{
outputField: "manager",
inputPath: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
fallbackInputPaths: [
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
propertyType: {
dataType: "String"
},
displayName: "My Manager",
description: "Your manager's name",
warnIfMissing: true,
defaultValue: "manager@acmeinc.com"
}
]
}
});
if (result.ok) {
console.log("SCIM connection created successfully");
console.log(`Connection ID: ${result.data.connectionId}`);
console.log(`API Key: ${result.data.scimApiKey}`);
} else {
console.log(`Error: ${result.error}`);
// Check result.error.type to handle specific errors
}
client = create_client(url=url, integration_key=integration_key)
result = await client.scim.management.create_scim_connection(
customer_id="106ce124-1082-4d72-835d-dd1b2172f2fe",
display_name="Example SCIM Connection",
scim_api_key_expiration=1760232804,
custom_mapping=ScimUserMappingConfig(
user_schema=[
ScimUserMappingFieldDefinition(
output_field="manager",
input_path="urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
fallback_input_paths=[
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
property_type=PropertyTypeString(),
display_name="My Manager",
description="Your manager's name",
warn_if_missing=True,
default_value="manager@acmeinc.com"
)
]
)
)
if is_ok(result):
print("SCIM connection created successfully")
print(f"Connection ID: {result.data.connection_id}")
print(f"API Key: {result.data.scim_api_key}")
else:
print(f"Error: {result.error.type}")
# Check result.error.type to handle specific errors
PropelAuthClient client = PropelAuthClient.create(url, integrationKey);
CreateScimConnectionCommand command = CreateScimConnectionCommand.builder()
.customerId("106ce124-1082-4d72-835d-dd1b2172f2fe")
.displayName("Example SCIM Connection")
.scimApiKeyExpiration(1760232804)
.customMapping(ScimUserMappingConfig.builder()
.userSchema(Arrays.asList(
ScimUserMappingFieldDefinition.builder()
.outputField("manager")
.inputPath("urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager")
.fallbackInputPaths(Arrays.asList(
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
))
.propertyType(new PropertyType.String())
.displayName("My Manager")
.description("Your manager's name")
.warnIfMissing(true)
.defaultValue(JsonValue.of("manager@acmeinc.com"))
.build()
))
.build())
.build();
try {
CreateScimConnectionResponse response = client.scim.management.createScimConnection(command);
System.out.println("SCIM connection created successfully");
System.out.println("Connection ID: " + response.getConnectionId());
System.out.println("API Key: " + response.getScimApiKey());
} catch (CreateScimConnectionException.InvalidFields e) {
System.out.println("Invalid fields: " + e.getDetails());
} catch (CreateScimConnectionException.ScimConnectionForCustomerIdAlreadyExists e) {
System.out.println("SCIM connection already exists for this customer");
} catch (CreateScimConnectionException e) {
System.out.println("Error: " + e.getMessage());
}
var client = new PropelAuthClient(new PropelAuthOptions { Url = url, IntegrationKey = integrationKey });
var command = new CreateScimConnectionCommand
{
CustomerId = "106ce124-1082-4d72-835d-dd1b2172f2fe",
DisplayName = "Example SCIM Connection",
ScimApiKeyExpiration = 1760232804,
CustomMapping = new ScimUserMappingConfig
{
UserSchema = new List<ScimUserMappingFieldDefinition>
{
new ScimUserMappingFieldDefinition
{
OutputField = "manager",
InputPath = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
FallbackInputPaths = new List<string>
{
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
},
PropertyType = new PropertyTypeString(),
DisplayName = "My Manager",
Description = "Your manager's name",
WarnIfMissing = true,
DefaultValue = JsonSerializer.SerializeToElement("manager@acmeinc.com")
}
}
}
};
try
{
var response = await client.Scim.Management.CreateScimConnectionAsync(command);
Console.WriteLine("SCIM connection created successfully");
Console.WriteLine($"Connection ID: {response.ConnectionId}");
Console.WriteLine($"API Key: {response.ScimApiKey}");
}
catch (CreateScimConnectionException.InvalidFields ex)
{
Console.WriteLine($"Invalid fields: {ex.Details}");
}
catch (CreateScimConnectionException.ScimConnectionForCustomerIdAlreadyExists)
{
Console.WriteLine("SCIM connection already exists for this customer");
}
catch (CreateScimConnectionException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Response
{
ok: true,
data: {
connectionId: "s8vmjNLuieN1feLOya0mf3",
scimApiKey: "scim_s8vmjNLuieN1feLOya0mf3_FS5RYqqSeZBj7h5RfGE9V7"
}
}
Result(
data=CreateScimConnectionResponse(
connection_id="s8vmjNLuieN1feLOya0mf3",
scim_api_key="scim_s8vmjNLuieN1feLOya0mf3_FS5RYqqSeZBj7h5RfGE9V7"
)
)
CreateScimConnectionResponse(
connectionId="s8vmjNLuieN1feLOya0mf3",
scimApiKey="scim_s8vmjNLuieN1feLOya0mf3_FS5RYqqSeZBj7h5RfGE9V7"
)
CreateScimConnectionResponse
{
ConnectionId = "s8vmjNLuieN1feLOya0mf3",
ScimApiKey = "scim_s8vmjNLuieN1feLOya0mf3_FS5RYqqSeZBj7h5RfGE9V7"
}

Retrieves SCIM connection details by connection ID or customer ID.

Arguments

scimConnectionId string

The ID of the SCIM connection

customerId string

The customer ID (alternative to scimConnectionId)


Successful Response

connectionId string

The SCIM connection ID

customerId string

The associated customer ID

displayName string | null

The display name of the connection

scimApiKeyValidUntil number | null

UNIX timestamp when the API key expires (null if no expiration)

userMapping ScimUserMappingConfig

The user property mapping configuration


Error Types

ScimConnectionNotFound

The provided SCIM connection ID or customer ID could not be found

UnexpectedError

An unexpected error occurred during the operation

const auth = createClient({ url, integrationKey });
const result = await auth.scim.management.fetchScimConnection({
scimConnectionId: "s8vmjNLuieN1feLOya0mf3"
});
if (result.ok) {
console.log("SCIM connection fetched successfully");
console.log(`Connection ID: ${result.data.connectionId}`);
console.log(`Customer ID: ${result.data.customerId}`);
console.log(`Display Name: ${result.data.displayName}`);
} else {
console.log(`Error: ${result.error}`);
// Check result.error.type to handle specific errors
}
client = create_client(url=url, integration_key=integration_key)
result = await client.scim.management.fetch_scim_connection(
scim_connection_id="s8vmjNLuieN1feLOya0mf3"
)
if is_ok(result):
print("SCIM connection fetched successfully")
print(f"Connection ID: {result.data.connection_id}")
print(f"Customer ID: {result.data.customer_id}")
print(f"Display Name: {result.data.display_name}")
else:
print(f"Error: {result.error.type}")
# Check result.error.type to handle specific errors
PropelAuthClient client = PropelAuthClient.create(url, integrationKey);
FetchScimConnectionCommand command = FetchScimConnectionCommand.scimConnectionId.builder()
.scimConnectionId("s8vmjNLuieN1feLOya0mf3")
.build();
try {
FetchScimConnectionResponse response = client.scim.management.fetchScimConnection(command);
System.out.println("SCIM connection fetched successfully");
System.out.println("Connection ID: " + response.getConnectionId());
System.out.println("Customer ID: " + response.getCustomerId());
System.out.println("Display Name: " + response.getDisplayName());
} catch (FetchScimConnectionException.ScimConnectionNotFound e) {
System.out.println("SCIM connection not found");
} catch (FetchScimConnectionException e) {
System.out.println("Error: " + e.getMessage());
}
var client = new PropelAuthClient(new PropelAuthOptions { Url = url, IntegrationKey = integrationKey });
try
{
var response = await client.Scim.Management.FetchScimConnectionByScimConnectionIdAsync("s8vmjNLuieN1feLOya0mf3");
Console.WriteLine("SCIM connection fetched successfully");
Console.WriteLine($"Connection ID: {response.ConnectionId}");
Console.WriteLine($"Customer ID: {response.CustomerId}");
Console.WriteLine($"Display Name: {response.DisplayName}");
}
catch (FetchScimConnectionException.ScimConnectionNotFound)
{
Console.WriteLine("SCIM connection not found");
}
catch (FetchScimConnectionException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Response
{
ok: true,
data: {
connectionId: "s8vmjNLuieN1feLOya0mf3",
customerId: "106ce124-1082-4d72-835d-dd1b2172f2fe",
displayName: "Example Connection",
scimApiKeyValidUntil: 1760232804,
userMapping: {
userSchema: [
{
outputField: "manager",
inputPath: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
fallbackInputPaths: [
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
propertyType: {
dataType: "String"
},
displayName: "My Manager",
description: "Your manager's name",
warnIfMissing: true,
defaultValue: "manager@acmeinc.com"
}
]
}
}
}
Result(
data=FetchScimConnectionResponse(
connection_id="s8vmjNLuieN1feLOya0mf3",
customer_id="106ce124-1082-4d72-835d-dd1b2172f2fe",
display_name="Example Connection",
scim_api_key_valid_until=1760232804,
user_mapping=ScimUserMappingConfig(
user_schema=[
ScimUserMappingFieldDefinition(
output_field="manager",
input_path="urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
fallback_input_paths=[
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
property_type=PropertyTypeString(),
display_name="My Manager",
description="Your manager's name",
warn_if_missing=True,
default_value="manager@acmeinc.com"
)
]
)
)
)
FetchScimConnectionResponse(
connectionId="s8vmjNLuieN1feLOya0mf3",
customerId="106ce124-1082-4d72-835d-dd1b2172f2fe",
displayName="Example Connection",
scimApiKeyValidUntil=1760232804,
userMapping=ScimUserMappingConfig(
userSchema=[
ScimUserMappingFieldDefinition(
outputField="manager",
inputPath="urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
fallbackInputPaths=[
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
propertyType=PropertyType.String(),
displayName="My Manager",
description="Your manager's name",
warnIfMissing=true,
defaultValue="manager@acmeinc.com"
)
]
)
)
FetchScimConnectionResponse
{
ConnectionId = "s8vmjNLuieN1feLOya0mf3",
CustomerId = "106ce124-1082-4d72-835d-dd1b2172f2fe",
DisplayName = "Example Connection",
ScimApiKeyValidUntil = 1760232804,
UserMapping = ScimUserMappingConfig
{
UserSchema = [
ScimUserMappingFieldDefinition
{
OutputField = "manager",
InputPath = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
FallbackInputPaths = [
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
PropertyType = PropertyType.String(),
DisplayName = "My Manager",
Description = "Your manager's name",
WarnIfMissing = true,
DefaultValue = "manager@acmeinc.com"
}
]
}
}

Updates an existing SCIM connection configuration.

Arguments

scimConnectionId string

The ID of the SCIM connection

customerId string

The customer ID (alternative to scimConnectionId)

displayName string

New display name for the SCIM connection

scimApiKeyExpiration number

UNIX timestamp when the API key should expire

customMapping ScimUserMappingConfig

Custom property mapping for this SCIM connection


Successful Response

Returns an empty response on success


Error Types

ScimConnectionNotFound

The provided SCIM connection ID could not be found

DisplayNameInvalid

The provided display name is not valid

UnexpectedError

An unexpected error occurred during the operation

const auth = createClient({ url, integrationKey });
const result = await auth.scim.management.patchScimConnection({
scimConnectionId: "s8vmjNLuieN1feLOya0mf3",
displayName: "Updated SCIM Connection",
scimApiKeyExpiration: 1760232804,
customMapping: {
userSchema: [
{
outputField: "manager",
inputPath: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
fallbackInputPaths: [
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
propertyType: {
dataType: "String"
},
displayName: "My Manager",
description: "Your manager's name",
warnIfMissing: true,
defaultValue: "manager@acmeinc.com"
}
]
}
});
if (result.ok) {
console.log("SCIM connection updated successfully");
} else {
console.log(`Error: ${result.error}`);
// Check result.error.type to handle specific errors
}
client = create_client(url=url, integration_key=integration_key)
result = await client.scim.management.patch_scim_connection(
scim_connection_id="s8vmjNLuieN1feLOya0mf3",
display_name="Updated SCIM Connection",
scim_api_key_expiration=1760232804,
custom_mapping={
"userSchema": [
{
"outputField": "manager",
"inputPath": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
"fallbackInputPaths": [
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
],
"propertyType": {
"dataType": "String"
},
"displayName": "My Manager",
"description": "Your manager's name",
"warnIfMissing": True,
"defaultValue": "manager@acmeinc.com"
}
]
}
)
if is_ok(result):
print("SCIM connection updated successfully")
else:
print(f"Error: {result.error}")
# Check result.error.type to handle specific errors
PropelAuthClient client = PropelAuthClient.create(url, integrationKey);
PatchScimConnectionCommand command = PatchScimConnectionCommand.scimConnectionId.builder()
.scimConnectionId("s8vmjNLuieN1feLOya0mf3")
.displayName("Updated SCIM Connection")
.scimApiKeyExpiration(1760232804)
.customMapping(ScimUserMappingConfig.builder()
.userSchema(Arrays.asList(
ScimUserMappingFieldDefinition.builder()
.outputField("manager")
.inputPath("urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager")
.fallbackInputPaths(Arrays.asList(
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
))
.propertyType(new PropertyType.String())
.displayName("My Manager")
.description("Your manager's name")
.warnIfMissing(true)
.defaultValue(JsonValue.of("manager@acmeinc.com"))
.build()
))
.build())
.build();
try {
PatchScimConnectionResponse response = client.scim.management.patchScimConnection(command);
System.out.println("SCIM connection updated successfully");
} catch (PatchScimConnectionException.ScimConnectionNotFound e) {
System.out.println("SCIM connection not found");
} catch (PatchScimConnectionException.DisplayNameInvalid e) {
System.out.println("Display name invalid: " + e.getDetails());
} catch (PatchScimConnectionException e) {
System.out.println("Error: " + e.getMessage());
}
var client = new PropelAuthClient(new PropelAuthOptions { Url = url, IntegrationKey = integrationKey });
var response = await client.Scim.Management.PatchScimConnectionByScimConnectionIdAsync(
scimConnectionId: "s8vmjNLuieN1feLOya0mf3",
displayName: "Updated SCIM Connection",
scimApiKeyExpiration: 1760232804,
customMapping: new ScimUserMappingConfig
{
UserSchema = new List<ScimUserMappingFieldDefinition>
{
new ScimUserMappingFieldDefinition
{
OutputField = "manager",
InputPath = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
FallbackInputPaths = new List<string>
{
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerId"
},
PropertyType = new PropertyTypeString(),
DisplayName = "My Manager",
Description = "Your manager's name",
WarnIfMissing = true,
DefaultValue = JsonSerializer.SerializeToElement("manager@acmeinc.com")
}
}
}
);
Console.WriteLine("SCIM connection updated successfully");
Response
{
ok: true,
data: {}
}
Result(
ok=True,
data=PatchScimConnectionResponse()
)
PatchScimConnectionResponse()
PatchScimConnectionResponse
{
}

Invalidates a SCIM connection's API key and generates a new one.

Arguments

scimConnectionId string

The ID of the SCIM connection

customerId string

The customer ID (alternative to scimConnectionId)

scimApiKeyExpiration number

UNIX timestamp when the new API key expires (omit for no expiration)


Successful Response

connectionId string

The SCIM connection ID

scimApiKey string

The new API key to provide to the IdP


Error Types

ScimConnectionNotFound

The provided SCIM connection ID could not be found

UnexpectedError

An unexpected error occurred during the operation

const auth = createClient({ url, integrationKey });
const result = await auth.scim.management.resetScimApiKey({
scimConnectionId: "s8vmjNLuieN1feLOya0mf3",
scimApiKeyExpiration: 1760232804
});
if (result.ok) {
console.log("SCIM API key reset successfully");
console.log(`New API Key: ${result.data.scimApiKey}`);
} else {
console.log(`Error: ${result.error}`);
// Check result.error.type to handle specific errors
}
client = create_client(url=url, integration_key=integration_key)
result = await client.scim.management.reset_scim_api_key(
scim_connection_id="s8vmjNLuieN1feLOya0mf3",
scim_api_key_expiration=1760232804
)
if is_ok(result):
data = result.data
print("SCIM API key reset successfully")
print(f"New API Key: {data.scim_api_key}")
else:
error = result.error
print(f"Error: {error}")
# Check error.type to handle specific errors
PropelAuthClient client = PropelAuthClient.create(url, integrationKey);
ResetScimApiKeyCommand command = ResetScimApiKeyCommand.scimConnectionId.builder()
.scimConnectionId("s8vmjNLuieN1feLOya0mf3")
.scimApiKeyExpiration(1760232804)
.build();
try {
ResetScimApiKeyResponse response = client.scim.management.resetScimApiKey(command);
System.out.println("SCIM API key reset successfully");
System.out.println("New API Key: " + response.getScimApiKey());
} catch (ResetScimApiKeyException.ScimConnectionNotFound e) {
System.out.println("SCIM connection not found");
} catch (ResetScimApiKeyException e) {
System.out.println("Error: " + e.getMessage());
}
var client = new PropelAuthClient(new PropelAuthOptions { Url = url, IntegrationKey = integrationKey });
try
{
var response = await client.Scim.Management.ResetScimApiKeyByScimConnectionIdAsync(
scimConnectionId: "s8vmjNLuieN1feLOya0mf3",
scimApiKeyExpiration: 1760232804
);
Console.WriteLine("SCIM API key reset successfully");
Console.WriteLine($"New API Key: {response.ScimApiKey}");
}
catch (ResetScimApiKeyException.ScimConnectionNotFound)
{
Console.WriteLine("SCIM connection not found");
}
catch (ResetScimApiKeyException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Response
{
ok: true,
data: {
connectionId: "s8vmjNLuieN1feLOya0mf3",
scimApiKey: "scim_s8vmjNLuieN1feLOya0mf3_YnQ4K7mPpRzL9hW3xD6gA8"
}
}
# When successful
data = result.data
print(data.connection_id) # "s8vmjNLuieN1feLOya0mf3"
print(data.scim_api_key) # "scim_s8vmjNLuieN1feLOya0mf3_YnQ4K7mPpRzL9hW3xD6gA8"
ResetScimApiKeyResponse(
connectionId="s8vmjNLuieN1feLOya0mf3",
scimApiKey="scim_s8vmjNLuieN1feLOya0mf3_YnQ4K7mPpRzL9hW3xD6gA8"
)
ResetScimApiKeyResponse
{
ConnectionId = "s8vmjNLuieN1feLOya0mf3",
ScimApiKey = "scim_s8vmjNLuieN1feLOya0mf3_YnQ4K7mPpRzL9hW3xD6gA8"
}

Fetches user accounts that belong to the provided SCIM connection.

Arguments

scimConnectionId string

The ID of the SCIM connection

customerId string

The customer ID (alternative to scimConnectionId)

filter ScimUsersPageEqualityFilter

Filter users by userName, externalId, primaryEmail, or userId

pageNumber number

The page number to return (default: 0)

pageSize number

The number of users per page (default: 20)


Successful Response

connectionId string

The SCIM connection ID

users array

Array of complete SCIM user information

pageNumber number

The current page number

pageSize number

The number of users per page

totalResults number

Total number of users matching the filter


Error Types

ScimConnectionNotFound

The provided SCIM connection ID could not be found

InvalidQueryField

The filter field or value is invalid

UnexpectedError

An unexpected error occurred during the operation

const auth = createClient({ url, integrationKey });
const result = await auth.scim.management.getScimUsers({
scimConnectionId: "s8vmjNLuieN1feLOya0mf3",
filter: {
primaryEmail: "example@propelauth.com"
},
pageNumber: 0,
pageSize: 100
});
if (result.ok) {
console.log("SCIM users fetched successfully");
console.log(`Found ${result.data.totalResults} users`);
result.data.users.forEach(user => {
console.log(`User: ${user.primaryEmail}`);
});
} else {
console.log(`Error: ${result.error}`);
// Check result.error.type to handle specific errors
}
client = create_client(url=url, integration_key=integration_key)
result = await client.scim.management.get_scim_users(
scim_connection_id="s8vmjNLuieN1feLOya0mf3",
filter=ScimUsersPageEqualityFilterPrimaryEmail("example@propelauth.com"),
page_number=0,
page_size=100
)
if is_ok(result):
print("SCIM users fetched successfully")
print(f"Found {result.data.total_results} users")
for user in result.data.users:
print(f"User: {user.primary_email}")
else:
print(f"Error: {result.error}")
# Check result.error.type to handle specific errors
PropelAuthClient client = PropelAuthClient.create(url, integrationKey);
GetScimUsersCommand command = GetScimUsersCommand.scimConnectionId.builder()
.scimConnectionId("s8vmjNLuieN1feLOya0mf3")
.filter(new ScimUsersPageEqualityFilter.primaryEmail("example@propelauth.com"))
.pageNumber(0)
.pageSize(100)
.build();
try {
GetScimUsersResponse response = client.scim.management.getScimUsers(command);
System.out.println("SCIM users fetched successfully");
System.out.println("Found " + response.getTotalResults() + " users");
response.getUsers().forEach(user -> {
System.out.println("User: " + user.getPrimaryEmail());
});
} catch (GetScimUsersException.ScimConnectionNotFound e) {
System.out.println("SCIM connection not found");
} catch (GetScimUsersException.InvalidQueryField e) {
System.out.println("Invalid query field: " + e.getDetails());
} catch (GetScimUsersException e) {
System.out.println("Error: " + e.getMessage());
}
var client = new PropelAuthClient(new PropelAuthOptions { Url = url, IntegrationKey = integrationKey });
var filter = ScimUsersPageEqualityFilter.ByPrimaryEmail("example@propelauth.com");
try
{
var response = await client.Scim.Management.GetScimUsersByScimConnectionIdAsync(
scimConnectionId: "s8vmjNLuieN1feLOya0mf3",
filter: filter,
pageNumber: 0,
pageSize: 100
);
Console.WriteLine("SCIM users fetched successfully");
Console.WriteLine($"Found {response.TotalResults} users");
foreach (var user in response.Users)
{
Console.WriteLine($"User: {user.PrimaryEmail}");
}
}
catch (GetScimUsersException.ScimConnectionNotFound)
{
Console.WriteLine("SCIM connection not found");
}
catch (GetScimUsersException.InvalidQueryField ex)
{
Console.WriteLine($"Invalid query field: {ex.Details.Message}");
}
catch (GetScimUsersException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Response
{
ok: true,
data: {
connectionId: "Yhc4Nan2ZiIPp7kyoyhT9c",
users: [
{
connectionId: "Yhc4Nan2ZiIPp7kyoyhT9c",
primaryEmail: "example@propelauth.com",
parsedUserData: {
// Your parsed user data, based on your property configuration
firstName: "Example",
lastName: "User",
department: "Engineering",
employeeId: "00utc0x6na8afflr0E697"
},
active: true,
userId: "057806f5-6e19-45ef-ba31-238471a16fc5",
scimUser: {
// This is the full raw SCIM user data
emails: [
{
primary: true,
type: "work",
value: "example@propelauth.com"
}
],
// ...
}
}
],
pageNumber: 0,
pageSize: 100,
totalResults: 1
}
}
GetScimUsersResponse(
connection_id="Yhc4Nan2ZiIPp7kyoyhT9c",
users=[
CompleteScimUserResponse(
connection_id="Yhc4Nan2ZiIPp7kyoyhT9c",
primary_email="example@propelauth.com",
parsed_user_data={
# Your parsed user data, based on your property configuration
"firstName": "Example",
"lastName": "User",
"department": "Engineering",
"employeeId": "00utc0x6na8afflr0E697"
},
active=True,
user_id="057806f5-6e19-45ef-ba31-238471a16fc5",
scim_user={
# This is the full raw SCIM user data
"emails": [
{
"primary": True,
"type": "work",
"value": "example@propelauth.com"
}
],
# ...
}
)
],
page_number=0,
page_size=100,
total_results=1
)
GetScimUsersResponse(
connectionId="Yhc4Nan2ZiIPp7kyoyhT9c",
users=[
CompleteScimUserResponse(
connectionId="Yhc4Nan2ZiIPp7kyoyhT9c",
primaryEmail="example@propelauth.com",
parsedUserData={
firstName="Example",
lastName="User",
department="Engineering",
employeeId="00utc0x6na8afflr0E697"
},
active=true,
userId="057806f5-6e19-45ef-ba31-238471a16fc5",
scimUser={
emails=[
{
primary=true,
type="work",
value="example@propelauth.com"
}
],
...
}
)
],
pageNumber=0,
pageSize=100,
totalResults=1
)
GetScimUsersResponse
{
ConnectionId = "Yhc4Nan2ZiIPp7kyoyhT9c",
Users = [
CompleteScimUserResponse
{
ConnectionId = "Yhc4Nan2ZiIPp7kyoyhT9c",
PrimaryEmail = "example@propelauth.com",
ParsedUserData = {
// Your parsed user data, based on your property configuration
"firstName": "Example",
"lastName": "User",
"department": "Engineering",
"employeeId": "00utc0x6na8afflr0E697"
},
Active = true,
UserId = "057806f5-6e19-45ef-ba31-238471a16fc5",
ScimUser = {
// This is the full raw SCIM user data
"emails": [
{
"primary": true,
"type": "work",
"value": "example@propelauth.com"
}
],
// ...
}
}
],
PageNumber = 0,
PageSize = 100,
TotalResults = 1
}

Deletes a SCIM connection permanently.

Arguments

scimConnectionId string

The ID of the SCIM connection

customerId string

The customer ID (alternative to scimConnectionId)


Successful Response

Returns an empty response on success


Error Types

ScimConnectionNotFound

The provided SCIM connection ID could not be found

UnexpectedError

An unexpected error occurred during the operation

const auth = createClient({ url, integrationKey });
const result = await auth.scim.management.deleteScimConnection({
scimConnectionId: "s8vmjNLuieN1feLOya0mf3"
});
if (result.ok) {
console.log("SCIM connection deleted successfully");
} else {
console.log(`Error: ${result.error}`);
// Check result.error.type to handle specific errors
}
client = create_client(url=url, integration_key=integration_key)
result = await client.scim.management.delete_scim_connection(
scim_connection_id="s8vmjNLuieN1feLOya0mf3"
)
if is_ok(result):
print("SCIM connection deleted successfully")
else:
print(f"Error: {result.error.type}")
# Check result.error.type to handle specific errors
PropelAuthClient client = PropelAuthClient.create(url, integrationKey);
DeleteScimConnectionCommand command = DeleteScimConnectionCommand.scimConnectionId.builder()
.scimConnectionId("s8vmjNLuieN1feLOya0mf3")
.build();
try {
DeleteScimConnectionResponse response = client.scim.management.deleteScimConnection(command);
System.out.println("SCIM connection deleted successfully");
} catch (DeleteScimConnectionException.ScimConnectionNotFound e) {
System.out.println("SCIM connection not found");
} catch (DeleteScimConnectionException e) {
System.out.println("Error: " + e.getMessage());
}
var client = new PropelAuthClient(new PropelAuthOptions { Url = url, IntegrationKey = integrationKey });
try
{
await client.Scim.Management.DeleteScimConnectionByScimConnectionIdAsync("s8vmjNLuieN1feLOya0mf3");
Console.WriteLine("SCIM connection deleted successfully");
}
catch (DeleteScimConnectionException.ScimConnectionNotFound)
{
Console.WriteLine("SCIM connection not found");
}
catch (DeleteScimConnectionException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Response
{
ok: true,
data: {}
}
Result(
data=DeleteScimConnectionResponse()
)
DeleteScimConnectionResponse()
DeleteScimConnectionResponse()

The 'scim_config.jsonc' file allows you to set a default SCIM mapping configuration. This can be used to map properties (name, address, etc.) from your user's SCIM providers to your application.

Arguments

outputField string required

The key for the property where the mapped data should be placed. Will be included whenever the SCIM user is returned, such as the Get SCIM User Command.

inputPath string required

The path in the raw SCIM data where this property is expected to be found.

propertyType JSON required

The type of the property. If set to the List type, you must include an ItemType property with it's own dataType. If set to the Enum type, you must include an options property that includes each available option for the enum. The dataType property must equal one of the following:

  • String
  • Integer
  • Float
  • Boolean
  • Date
  • DateTime
  • Enum
  • List

fallbackInputPaths string[]

Fallback paths in the raw SCIM data. Will be used if inputPath is not found.

displayName string

A human readable name for the property.

description string

A description of the property.

warnIfMissing boolean

Defaults to false. If true, a warning will be surfaced in the Dashboard if this property could not be found.

defaultValue string

A value to be returned if the property could not be found in the incoming SCIM data.

{
"userSchema": [
{
"outputField": "familyName",
"inputPath": "name.familyName",
"fallbackInputPaths": [
"lastName",
"last_name",
],
"propertyType": {
"dataType": "String",
},
"displayName": "Family Name",
"description": "The user's family name.",
"warnIfMissing": true,
"defaultValue": "Unknown",
},
{
"outputField": "givenName",
"inputPath": "name.givenName",
"displayName": "Preferred Name",
"description": null,
"propertyType": {
"dataType": "String",
},
},
{
"outputField": "phoneNumbers",
"inputPath": "phoneNumbers[type eq "work"].value",
"displayName": "Work Phone Numbers",
"description": "A list of all your work phone numbers.",
"propertyType": {
"dataType": "List",
"itemType": {
"dataType": "String",
},
},
},
{
"outputField": "department",
"inputPath": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department",
"displayName": "Department",
"description": "Your department.",
"propertyType": {
"dataType": "Enum",
"options": [
"Engineering",
"Sales",
"Marketing",
"Human Resources",
"Finance",
"Customer Support",
"Legal",
"Operations",
],
},
},
{
"outputField": "manager",
"inputPath": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
"displayName": "My Manager",
"description": "Your manager's name.",
"propertyType": {
"dataType": "String",
},
},
],
}