Cirrus Identity Identities API
v1.0.0/identities/v1Permissions
Identities API credentials are managed by organizational admins in the Cirrus Console.
You can validate the permissions associated with your credential under the Miscellaneous category.
Supported Miscellaneous operations:
- retrieve permissions for the current API credential
Identities
Identity objects are the top-level records that track information or assets associated with a user.
Supported identities operations:
- list all identities
- list identities with an attribute collection associated with a specific authority (for example, show all identities with the "alumni" authority)
- fetch a single identity by
cirrusUid - create a new identity, along with optional associations that may be configured for your environment, such as OrgBrandedID login credentials, generated user identifiers with a specific format, or specific attribute collections
- modify an existing identity -- update any of
givenName,sn, andmail - search identities by a keyword (
searchTerm) -- name and email fields on the identity, and any linked attribute collections, will be searched using this term as a sub-string match
Attribute Collections
Attribute collections are bundles of attributes associated with a specific authority, such as a department or a sign-in credential.
Supported attributeCollections operations:
- create a new attribute collection under an authorized authority
- modify an existing attribute collection (replace or merge attributes)
- delete an existing attribute collection
OrgBrandedIDs
OrgBrandedID is a hosted username and password option included with many Cirrus Identity subscriptions.
Supported OrgBrandedID operations:
- create a new OBID and link its attribute collection to an existing identity
Authentication
HTTPBasichttpScheme: basic
miscellaneous
Fetch Permissions
Return permissions for the current credential.
Permissions are returned as a JSON object with a structure similar to the following:
{
"username": "KQRAMJQXENIABXTZ",
"orgDomain": "athena-institute.net",
"environments": {
"prod": {
"permissions": [
"admin-all",
"read",
"write"
],
"customerUidKeys": ["athena:netId"],
"attributeAuthorities": ["parking", "foundation"]
},
"test": {
"permissions": [
"admin-all",
"read",
"write"
],
"customerUidKeys": ["athena:netId"],
"attributeAuthorities": ["parking", "foundation"],
}
},
"obid": [
"read",
"write"
]
}Properties in the permissions object:
username: API credential username currently being usedorgDomain: the organizational domain for which the credential was provisionedenvironments: there will be two environments listed here,testandprodenvironments.<environment>.permissions: an array of permissions in the specified identity environment:admin-all: API credential has all available identity record permissions, including permissions introduced in the futureread: API credential has read access to identity recordswrite: API credential has write access (create/modify) to identity records
environments.<environment>.customerUidKeys: an array of customer-defined UID keys which the API credential may use when creating identities. Please contact Cirrus Identity Support for additional information.environments.<environment>.attributeAuthorities: an array of attribute authority identifiers which the API credential may use when creating identities or creating/modifying attribute collections. Please contact Cirrus Identity Support for additional information.
obid: an array of permissions for OBID accounts. These permissions apply in both thetestandprodenvironments:read: API credential has read access to OBID account attribute collectionswrite: API credential may auto-create an OBID account at identity creation time, or create an OBID account for a pre-existing identity
Response
Success
Unauthorized
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X GET '/identities/v1/permissions'const response = await fetch('/identities/v1/permissions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('/identities/v1/permissions')
data = response.json(){
"username": "KQRAMJQXENIABXTZ",
"orgDomain": "athena-institute.net",
"environments": {
"prod": {
"permissions": [
"admin-all",
"read",
"write"
],
"customerUidKeys": [
"athena:netId"
],
"attributeAuthorities": [
"parking",
"foundation"
]
},
"test": {
"permissions": [
"admin-all",
"read",
"write"
],
"customerUidKeys": [
"athena:netId"
],
"attributeAuthorities": [
"parking",
"foundation"
]
}
},
"obid": [
"read",
"write"
]
}{
"detail": "not authorized"
}{
"detail": "database error: ..."
}identities
List Identities
List all identity records for a specific environment (test or prod).
Parameters
environmentIdentityEnvironmenttestprodrequiredpathidentity environment
page_idxinteger>= 11queryrequested page index
page_sizeinteger[1, 50]10queryrequested number of items per page
sort_keyIdentityListSortKeycirrusUidsngivenNamemailcreateTimelastUpdateTimecreateTimequerysort key
sort_orderIdentityListSortOrderascdescascquerysort order
search_termstring | nullqueryoptional search term
Response
Successful Response
Unauthorized
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X GET '/identities/v1/list/{environment}'const response = await fetch('/identities/v1/list/{environment}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('/identities/v1/list/{environment}')
data = response.json(){
"items": [
{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z"
}
],
"total_items": 0,
"page_cnt": 0,
"page_size": 0,
"page_idx": 1
}{
"detail": "not authorized"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}List Identities By Attr Collection
List all identity records associated with a specific attributeCollectionAuthority (e.g., records containing an
alumni attribute collection), or a combination of attributeCollectionAuthority and uid (e.g., find the alumni record
with alumni uid of '1234567').
Parameters
environmentIdentityEnvironmenttestprodrequiredpathidentity environment
attributeAuthoritystringrequiredqueryattribute authority identitifer
attributeAuthorityUidstringqueryunique UID assigned by attribute authority
page_idxinteger>= 11querypage_sizeinteger[1, 50]10querysort_keyIdentityListSortKeyidcirrusUidsngivenNamemailcreateTimelastUpdateTimecreateTimequerysort_orderIdentityListSortOrderascdescascqueryResponse
Successful Response
Unauthorized
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X GET '/identities/v1/list/byAttributeCollection/{environment}'const response = await fetch('/identities/v1/list/byAttributeCollection/{environment}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('/identities/v1/list/byAttributeCollection/{environment}')
data = response.json(){
"items": [
{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
]
}
],
"total_items": 0,
"page_cnt": 0,
"page_size": 0,
"page_idx": 1
}{
"detail": "not authorized"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Search Identities
List cirrusUid values for identity records matching search term. Search includes attribute collections.
Parameters
environmentIdentityEnvironmenttestprodrequiredpathidentity environment
searchTermstringrequiredpathterm to use in search; will be sub-string matched against name and email fields in identity and linked attributeCollections
Response
Success
Unauthorized
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X GET '/identities/v1/search/{environment}/{searchTerm}'const response = await fetch('/identities/v1/search/{environment}/{searchTerm}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('/identities/v1/search/{environment}/{searchTerm}')
data = response.json()[
"2ca73926-1c6a-44e9-8fc1-6c0c835d4a15",
"2d615256-c822-4435-bf38-d36ba3c0f6c4",
"9b8dadb8-62c1-4461-a4d7-2201a1cac407"
]{
"detail": "not authorized"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Fetch Identity
Retrieve a single identity record by cirrusUid.
Parameters
cirrusUidstringrequiredpathcirrusUid of identity record
Response
Successful Response
Unauthorized
Not Found
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X GET '/identities/v1/fetch/{cirrusUid}'const response = await fetch('/identities/v1/fetch/{cirrusUid}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('/identities/v1/fetch/{cirrusUid}')
data = response.json(){
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
]
}{
"detail": "not authorized"
}{
"detail": "record not found"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Create Identity
Create an identity record, including optional additions as permitted for your credential:
obid- Create an OrgBrandedID sign-in credential for the identity, inviting the user to set a password for it, e.g.:obid: trueattributeCollections- Create one or more authorized types of attribute collections for the identity, e.g.:attributeCollections": [ { "attributeCollectionAuthority": "alumni", "uid": "al-12345", "attributes": { "alumniId": [ "al-12345" ], "givenName": [ "Alice" ], "sn": [ "Arcus" ] } } ],customerUidGen- Auto-generate an identifier with a format customized to your organization, e.g.:"customerUidGen": "athenaCustomId"
Body
model for creating a new identity record
mailstring<email>requiredemail address
givenNamestringrequiredgiven name
snstringrequiredsurname
customerUidGenstring | nulloptional Cirrus-provided key for generating customer-defined UIDs
obidbooleanfalsewhether to create/link an OrgBrandedID account for mail value
allowDuplicateEmailbooleanfalsewhether to allow creation of an identity record with an email address already associated with another identity
attributeCollectionsArray<AttributeCollectionInput> | nulloptional list of attribute collections to create and link to identity record
Parameters
environmentIdentityEnvironmenttestprodrequiredpathidentity environment
Response
Successful Response
Unauthorized
Conflict
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X POST '/identities/v1/create/{environment}' \
-H 'Content-Type: application/json' \
-d '{
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"customerUidGen": "string",
"obid": false,
"allowDuplicateEmail": false,
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
]
}'const response = await fetch('/identities/v1/create/{environment}', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"customerUidGen": "string",
"obid": false,
"allowDuplicateEmail": false,
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
]
}),
});
const data = await response.json();import requests
payload = {
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"customerUidGen": "string",
"obid": False,
"allowDuplicateEmail": False,
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
]
}
response = requests.post('/identities/v1/create/{environment}', json=payload)
data = response.json(){
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"customerUidGen": "string",
"obid": false,
"allowDuplicateEmail": false,
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
]
}{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
]
}{
"detail": "not authorized"
}{
"detail": "identity record(s) for email \"user@domain.edu\" already exist: c2a34150-8f43-4f52-9601-3e7518ef0f34"
}{
"detail": "OBID Error: account for \"user@domain.edu\" exists and is linked to other identity records: c2a34150-8f43-4f52-9601-3e7518ef0f34"
}{
"detail": "attribute collection for (authority = \"sorId\", uid = \"sorUid\") already exists for identity UID = \"60ebb104-e6de-481e-aeed-b9f53083d05b\""
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Modify Identity
Modify core attributes of identity record.
The attributes that may be modified are:
givenNamesnmail
Any combination of these attributes may be provided; only provided attribute values will be updated. Attributes
with a value of null will be ignored (treated the same as omitting them).
If the mail attribute value is present on another identity in the same environment, a 409 Conflict error will
be returned. If you wish to override this behavior, and allow duplicate email values, pass true for the boolean
parameter, allowDuplicateEmail.
The updated identity record is returned upon success.
Body
model for modifying base properties on existing identity record
mailstring | nullemail address
givenNamestring | nullgiven name
snstring | nullsurname
allowDuplicateEmailbooleanfalsewhether to allow creation of an identity record with an email address already associated with another identity
Parameters
cirrusUidstringrequiredpathcirrusUid of identity record
Response
Successful Response
Unauthorized
Not Found
Conflict
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X PATCH '/identities/v1/modify/{cirrusUid}' \
-H 'Content-Type: application/json' \
-d '{
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"allowDuplicateEmail": false
}'const response = await fetch('/identities/v1/modify/{cirrusUid}', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"allowDuplicateEmail": false
}),
});
const data = await response.json();import requests
payload = {
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"allowDuplicateEmail": False
}
response = requests.patch('/identities/v1/modify/{cirrusUid}', json=payload)
data = response.json(){
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"allowDuplicateEmail": false
}{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
]
}{
"detail": "not authorized"
}{
"detail": "record not found"
}{
"detail": "identity record(s) for email \"user@domain.edu\" already exist: c2a34150-8f43-4f52-9601-3e7518ef0f34"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}attributeCollections
Create Attribute Collection
Create a new attribute collection under an authorized authority for an existing identity record.
Body
attribute collection model
attributeCollectionAuthoritystringrequiredidentifier of attribute collection authority
uidstringrequiredunique identifier for attribute collection
attributesobject[object Object]object of attribute keys and list of values
Parameters
cirrusUidstringrequiredpathcirrusUid of identity record
Response
Successful Response
Unauthorized
Not Found
Conflict
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X POST '/identities/v1/attributeCollections/create/{cirrusUid}' \
-H 'Content-Type: application/json' \
-d '{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}'const response = await fetch('/identities/v1/attributeCollections/create/{cirrusUid}', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}),
});
const data = await response.json();import requests
payload = {
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
response = requests.post('/identities/v1/attributeCollections/create/{cirrusUid}', json=payload)
data = response.json(){
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}{
"cirrusUid": "string",
"attributeCollection": {
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
}{
"detail": "not authorized"
}{
"detail": "record not found"
}{
"detail": "record already exists"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Modify Attribute Collection
Modify a specific attribute collection under an authorized authority for an identity record.
Body
attribute collection model
attributeCollectionAuthoritystringrequiredidentifier of attribute collection authority
uidstringrequiredunique identifier for attribute collection
attributesobject[object Object]object of attribute keys and list of values
Parameters
cirrusUidstringrequiredpathcirrusUid of identity record
overwritebooleanfalsequerycompletely overwrite attributes (true) or merge (default, false)
Response
Successful Response
Unauthorized
Not Found
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X PUT '/identities/v1/attributeCollections/modify/{cirrusUid}' \
-H 'Content-Type: application/json' \
-d '{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}'const response = await fetch('/identities/v1/attributeCollections/modify/{cirrusUid}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}),
});
const data = await response.json();import requests
payload = {
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
response = requests.put('/identities/v1/attributeCollections/modify/{cirrusUid}', json=payload)
data = response.json(){
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}{
"cirrusUid": "string",
"attributeCollection": {
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
}{
"detail": "not authorized"
}{
"detail": "record not found"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Delete Attribute Collection
Delete a specific attribute collection under an authorized authority from an identity record.
Parameters
cirrusUidstringrequiredpathcirrusUid of identity record
attributeAuthoritystringrequiredqueryidentifier of attribute collection authority
attributeAuthorityUidstringrequiredqueryunique identifier for attribute collection
Response
Successful Response
Unauthorized
Not Found
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X DELETE '/identities/v1/attributeCollections/delete/{cirrusUid}'const response = await fetch('/identities/v1/attributeCollections/delete/{cirrusUid}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('/identities/v1/attributeCollections/delete/{cirrusUid}')
data = response.json(){
"detail": "not authorized"
}{
"detail": "record not found"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}obid
Create Obid
Create a new OrgBrandedID sign-in credential for an existing identity record, sending an onboarding email to the designated email address.
Body
model for creating a new OBID account
givenNamestring | nullfirst name
surnamestringrequiredlast name
emailstring<email>requiredemail address
Parameters
cirrusUidstringrequiredpathcirrusUid of identity record
Response
Success
Unauthorized
Not Found
Conflict
Validation Error
Internal Server Error
Authorization
HTTPBasichttp (basic)curl -X POST '/identities/v1/obids/create/{cirrusUid}' \
-H 'Content-Type: application/json' \
-d '{
"givenName": "string",
"surname": "string",
"email": "user@example.com"
}'const response = await fetch('/identities/v1/obids/create/{cirrusUid}', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"givenName": "string",
"surname": "string",
"email": "user@example.com"
}),
});
const data = await response.json();import requests
payload = {
"givenName": "string",
"surname": "string",
"email": "user@example.com"
}
response = requests.post('/identities/v1/obids/create/{cirrusUid}', json=payload)
data = response.json(){
"givenName": "string",
"surname": "string",
"email": "user@example.com"
}{
"cirrusUid": "a82113d1-7072-494f-91c5-be3dbe2db08d",
"attributeCollection": {
"attributeCollectionAuthority": "https://athena-guest.idp.cirrusidentity.com/idp",
"uid": "cuid-8a37d4f4-d09f-4ac5-bf67-9e38f987bf1c",
"attributes": {
"urn:oid:2.5.4.4": [
"Arcus"
],
"urn:oid:0.9.2342.19200300.100.1.3": [
"aarcus@athena-institute.net"
],
"urn:oid:2.16.840.1.113730.3.1.241": [
"Alice Arcus"
],
"urn:oid:2.5.4.3": [
"Alice Arcus"
],
"urn:oid:0.9.2342.19200300.100.1.1": [
"8a37d4f4-d09f-4ac5-bf67-9e38f987bf1c"
],
"urn:oid:2.5.4.42": [
"Alice"
],
"scope": [
"athena-guest.idp.cirrusidentity.com"
],
"urn:oid:1.3.6.1.4.1.5923.1.1.1.6": [
"8a37d4f4-d09f-4ac5-bf67-9e38f987bf1c@athena-guest.idp.cirrusidentity.com"
]
},
"createTime": "2025-10-31T19:12:08+00:00",
"lastUpdateTime": "2025-10-31T19:12:08+00:00",
"attributeCollectionAuthorityType": "obid"
}
}{
"detail": "not authorized"
}{
"detail": "record not found"
}{
"detail": "OBID Error: Account for [user@domain.edu] exists and cannot be created again."
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}{
"detail": "database error: ..."
}Models
AttributeCollectionCreateOrModifyOutput
objectwrapper for returning attribute collections along with cirrusUid
cirrusUidstringrequiredcirrusUid of identity record
attributeCollectionAttributeCollectionOutputrequiredoutput attribute collection model
{
"cirrusUid": "string",
"attributeCollection": {
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
}AttributeCollectionInput
objectattribute collection model
attributeCollectionAuthoritystringrequiredidentifier of attribute collection authority
uidstringrequiredunique identifier for attribute collection
attributesobject[object Object]object of attribute keys and list of values
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}AttributeCollectionOutput
objectoutput attribute collection model
attributeCollectionAuthoritystringrequiredidentifier of attribute collection authority
uidstringrequiredunique identifier for attribute collection
attributesobject[object Object]object of attribute keys and list of values
createTimestring<date-time>requiredattribute collection creation timestamp
lastUpdateTimestring<date-time>requiredattribute collection last update timestamp
attributeCollectionAuthorityTypeAttributeCollectionAuthorityTypesoridpobidgatewayrequiredread onlytype of attribute collection authority
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}HTTPValidationError
objectdetailArray<ValidationError>{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"ctx": {}
}
]
}IdentitiesApiUserPermissionsModel
objectmodel for user/permissions model (for identities API)
usernamestringrequiredorgDomainstringrequiredenvironmentsobject[object Object]Map of linkgroup names to linkgroup permissions
obidArray<string>List of OBID permissions
{
"username": "string",
"orgDomain": "string",
"environments": {},
"obid": []
}IdentityCreateInput
objectmodel for creating a new identity record
mailstring<email>requiredemail address
givenNamestringrequiredgiven name
snstringrequiredsurname
customerUidGenstring | nulloptional Cirrus-provided key for generating customer-defined UIDs
obidbooleanfalsewhether to create/link an OrgBrandedID account for mail value
allowDuplicateEmailbooleanfalsewhether to allow creation of an identity record with an email address already associated with another identity
attributeCollectionsArray<AttributeCollectionInput> | nulloptional list of attribute collections to create and link to identity record
{
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"customerUidGen": "string",
"obid": false,
"allowDuplicateEmail": false,
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {}
}
]
}IdentityListSortKey
stringenum for allowed fields to sort identity list by
"id"IdentityListSortOrder
stringenum for allowed orders to sort identity list by
"asc"IdentityModel
objectfull identity model
cirrusUidstringrequiredcirrusUid of identity record
mailstring | nullemail address
givenNamestring | nullgiven name
snstring | nullSurname
createTimestring<date-time>requiredidentity creation timestamp
lastUpdateTimestring<date-time>requiredidentity last update timestamp
attributeCollectionsArray<AttributeCollectionOutput> | nulllist of AttributeCollectionOutput
{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
]
}IdentityModelBase
objectbase identity model
cirrusUidstringrequiredcirrusUid of identity record
mailstring | nullemail address
givenNamestring | nullgiven name
snstring | nullSurname
createTimestring<date-time>requiredidentity creation timestamp
lastUpdateTimestring<date-time>requiredidentity last update timestamp
{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z"
}IdentityModifyInput
objectmodel for modifying base properties on existing identity record
mailstring | nullemail address
givenNamestring | nullgiven name
snstring | nullsurname
allowDuplicateEmailbooleanfalsewhether to allow creation of an identity record with an email address already associated with another identity
{
"mail": "user@example.com",
"givenName": "string",
"sn": "string",
"allowDuplicateEmail": false
}LinkGroup
objectlinkgroup model
permissionsArray<string>List of permissions for org + link group
customerUidKeysArray<string>List of Customer UID tenantShortName:attributeCollectionAuthority pairs
attributeAuthoritiesArray<string>List of Customer attribute authorities
{
"permissions": [],
"customerUidKeys": [],
"attributeAuthorities": []
}OrgBrandedIdAccountCreateInput
objectmodel for creating a new OBID account
givenNamestring | nullfirst name
surnamestringrequiredlast name
emailstring<email>requiredemail address
{
"givenName": "string",
"surname": "string",
"email": "user@example.com"
}Page_IdentityModelBase_
objectitemsArray<IdentityModelBase>requiredlist of items on this page
total_itemsinteger>= 0requiredtotal number of items
page_cntinteger>= 0requiredtotal number of pages
page_sizeinteger>= 0requirednumber of items on this page
page_idxinteger>= 1requiredcurrent page index
{
"items": [
{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z"
}
],
"total_items": 0,
"page_cnt": 0,
"page_size": 0,
"page_idx": 1
}Page_IdentityModel_
objectitemsArray<IdentityModel>requiredlist of items on this page
total_itemsinteger>= 0requiredtotal number of items
page_cntinteger>= 0requiredtotal number of pages
page_sizeinteger>= 0requirednumber of items on this page
page_idxinteger>= 1requiredcurrent page index
{
"items": [
{
"cirrusUid": "string",
"mail": "string",
"givenName": "string",
"sn": "string",
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollections": [
{
"attributeCollectionAuthority": "string",
"uid": "string",
"attributes": {},
"createTime": "2024-01-15T09:30:00Z",
"lastUpdateTime": "2024-01-15T09:30:00Z",
"attributeCollectionAuthorityType": "sor"
}
]
}
],
"total_items": 0,
"page_cnt": 0,
"page_size": 0,
"page_idx": 1
}