SCIM API endpoint details and syntax for users

Prev Next

Don't forget to check out our JSON RESTful APIs, they can help you utilize and extend Quickbase with ease.

The Quickbase API endpoints support the SCIM 2.0 protocol and allows for username creates, reads, updates, and deletes (CRUD) via the following HTTP methods:

  • GET

  • POST

  • PUT

  • DELETE

  • PATCH

A bearer token is used for authentication using a Quickbase user token. Read Setting up a user and user token for SCIM provisioning for details.

Quickbase supports the following via CRUD:

  • Get users in a realm

  • Create users/Provision users

  • Search for users in app or realm

  • Update/edit user information

  • Deny/restore users

  • Delete users

Required user fields are:

  • userName

  • name

  • emails

  • active

  • externalID

Note: Optional attributes can be included. If optional attributes aren't included in the request no action will be taken.

SSOUniqueID is an optional attribute. This maps to the SAML nameID attribute which is part of the SAML assertion. It's only useful for realms with SAML authentication enabled. The SSOUniqueID must uniquely identify a user within a realm. Best practice is to set the SSOUniqueID to a GUID.

userId is expected to be a numeric value. 

Syntax examples

Get users in a realm

Note: The username eq filter query is supported.

  • Get all users: GET { SCIMBaseURL}/users

  • Get users with pagination: GET { SCIMBaseURL}/users?count=1&startIndex=1

  • Get users with userId: GET { SCIMBaseURL}/users/{userId}

  • Get users with userName filter: GET { SCIMBaseURL}/users?filter=userName eq "{userName}"

Setup of all calls

{ SCIMBaseURL} = {BaseURL}/ governance/scim/v2/

Create users/Provision users

Note: New users are created as approved, registered and verified. Once provisioned, the new users need to sign in to Quickbase via SSO.

POST { SCIMBaseURL}/users 
 { 
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
    "userName": "Jane.doe", 
    "name": { 
        "givenName":"Jane", 
        "familyName":"Doe" 
    }, 
    "emails": [{ 
        "primary": true, 
        "value": "jane.doe@example.com" 
    }], 
    "externalId": "00uv931EiyRsnwOGa0g3", 
    "active": true 
} 

Update/edit user information using PUT

PUT { SCIMBaseURL}/users/{userId} 
 { 
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
    "userName": "jane.smith", 
    "name": { 
        "givenName": "Jane", 
        "familyName": "Smith" 
    }, 
    "emails": [{ 
        "primary": true, 
        "value": "jane.smith@example.com" 
    }], 
    "externalId": "00uv931EiyRsnwOGa0g3", 
    "active": true 
} 

Update/edit user information using PATCH

PATCH { SCIMBaseURL}/users/{userId}
 {
    "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
    "Operations": [
     {
        "op": "replace",
        "path": "name.givenName",
        "value": "myNewName"
     }
  ]
}

Manipulate SSO UniqueID

POST { SCIMBaseURL}/users 
 { 
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
    "userName": "Jane.doe", 
    "name": { 
        "givenName":"Jane", 
        "familyName":"Doe" 
    }, 
    "emails": [{ 
        "primary": true, 
        "value": "jane.doe@example.com" 
    }], 
    "externalId": "00uv931EiyRsnwOGa0g3", 
    "active": true ,
    "SSOUniqueID": "93945629-734B-475E-99CE-6AA7AFA43259"
}

PUT { SCIMBaseURL}/users/{userId} 
 { 
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
    "userName": "jane.smith", 
    "name": { 
        "givenName": "Jane", 
        "familyName": "Smith" 
    }, 
    "emails": [{ 
        "primary": true, 
        "value": "jane.smith@example.com" 
    }], 
    "externalId": "00uv931EiyRsnwOGa0g3", 
    "active": true,
    "SSOUniqueID": "93945629-734B-475E-99CE-6AA7AFA43259"
} 

PATCH { SCIMBaseURL}/users/{userId}
 {
    "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
    "Operations": [
     {
        "op": "replace",
        "path": "SSOUniqueID",
        "value": "93945629-734B-475E-99CE-6AA7AFA43259"
     }
  ]
}

OR
PATCH { SCIMBaseURL}/users/{userId}
 {
    "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
    "Operations": [
     {
        "op": “add”,
        "path": "SSOUniqueID",
        "value": "93945629-734B-475E-99CE-6AA7AFA43259"
     }
  ]
}

 

Deny users using PUT

PUT { SCIMBaseURL}/users/{userId} 
 { 
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
    "userName": "jane.smith", 
    "name": { 
        "givenName": "Jane", 
        "familyName": "Smith" 
    }, 
    "emails": [{ 
        "primary": true, 
        "value": "jane.smith@example.com" 
    }], 
    "externalId": "00uv931EiyRsnwOGa0g3", 
     "active": false 
} 

Deny users using PATCH

PATCH { SCIMBaseURL}/users/{userId}
 {
    "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
    "Operations": [
     {
        "op": "replace",
        "path": "active",
        "value": "false"
     }
  ]
}

Approve users

PUT { SCIMBaseURL}/users/{userId} 
 { 
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
    "userName": "jane.smith", 
    "name": { 
        "givenName": "Jane", 
        "familyName": "Smith" 
    }, 
    "emails": [{ 
        "primary": true, 
        "value": "jane.smith@example.com" 
    }], 
    "externalId": "00uv931EiyRsnwOGa0g3", 
     "active": true 
}  

Delete users

DELETE { SCIMBaseURL}/users/{userId} 

Related Topics: