Appendix G - RLM Cloud API
RLM Cloud is most effectively used with it’s GUI at https://rlmcloud.com/manage, however some of our customers will want to be able to automatically load their customer data and provision license servers directly from their internal CRM system.
RLM Cloud supports Web Services to control most aspects of the RLM Cloud database and license servers. The API is implemented as a simple REST-style service, using JSON to encode the information going to and from the RLM Cloud system. While this API does not provide 100% of the capability of the GUI, it will allow you to do all the basic operations from your CRM system. In some cases, you will need to do some generic setup prior to using the API.
The RLM Cloud API is described at: ‘https://rlmcloud.com/api/api.php#’
Note
The RLM Cloud API will soon be migrated to this document.
ID Licensing
Documentation for RLM Cloud’s ID Licensing endpoints.
RLM CLoud’s ID Licensing API is now SCIM v2 compliant - The Users and Groups endpoints return SCIM formatted responses and may now be integrated with Microsoft Azure Entra ID. See SCIM Provisioning below.
Current Location: https://www.rlmcloud.com/id-api/
Warning
Users and Groups endpoints require the new RLM Cloud Bearer Token authorization. Token provided to ISV upon request.
Assign and Unassign endpoints require the standard RLM Cloud Authorization variables in the header of the body:
{
"header":
{
"user":"test",
"password":"098f6bcd4621d373cade4e832627b4f6"
}
}
SSO Login POST
Get the CUSTOMER lines associated to a user.
POST /id-api/login.php HTTP/1.1
Host: www.rlmcloud.com
{
"isvname":"demo",
"username":"someone@isv.com",
"password":"4766221402bb5c85c50d99db125cd789d38c4a09a758493fa606e1ef8ee5184c"
}
SSO Users GET
Get all current SSO Users.
GET /id-api/Users.php HTTP/1.1
Host: www.rlmcloud.com
SSO Groups GET
Get all current SSO Groups.
GET /id-api/Groups HTTP/1.1
Host: www.rlmcloud.com
SSO Users GET User by ID
Get a specific SSO User by ID.
GET /id-api/Users/35 HTTP/1.1
Host: www.rlmcloud.com
SSO Groups GET Group by ID
Get a specific SSO Group by ID.
GET /id-api/Groups/39 HTTP/1.1
Host: www.rlmcloud.com
SSO Users GET Search
Search for a specific SSO User. The filter applies to the user’s email address value.
GET /id-api/Users?filter=userName+eq+"test@test.com" HTTP/1.1
Host: www.rlmcloud.com
SSO Groups GET Search
Search for a specific SSO Group. The filter applies to the group’s name value.
GET /id-api/Groups?filter=displayName eq "Reprise" HTTP/1.1
Host: www.rlmcloud.com
SSO Users PUT
Update an SSO User. This method will replace and update all values associated to a user.
PUT /id-api/Users/35 HTTP/1.1
Host: www.rlmcloud.com
{
"email": "nathanael.washington6@gmail.com",
"name": "Nathanael Washington",
"enabled": 1,
"company": "Reprise Software",
"title": "",
"phone": "3333333333"
}
SSO Groups PUT
Update an SSO Group. This method will replace and update all values associated to a group.
PUT /id-api/Groups/39 HTTP/1.1
Host: www.rlmcloud.com
{
"name": "Reprise Software",
"members": [
{ "value": "35" }
],
"notes": "Reprise Software Group Updated"
}
SSO Users DELETE
Delete an SSO User from the database.
DELETE /id-api/Users/1 HTTP/1.1
Host: www.rlmcloud.com
SSO Groups DELETE
Delete an SSO Group from the database.
DELETE /id-api/Groups/1 HTTP/1.1
Host: www.rlmcloud.com
SSO Users POST
Create an SSO User.
POST /id-api/Users HTTP/1.1
Host: www.rlmcloud.com
{
"email": "test@testing.com",
"name": "John Smith",
"company": "Reprise Software",
"title": "test",
"phone": "3032291026",
"enabled": 1,
"password": "testing"
}
SSO Groups POST
Create an SSO Group.
POST /id-api/Groups HTTP/1.1
Host: www.rlmcloud.com
{
"name": "QA Team",
"members": [
{ "value": "49" }
],
"notes": "Quality Assurance"
}
SSO Assign POST
Assign a user to a server.
POST /id-api/Assign HTTP/1.1
Host: www.rlmcloud.com
{
"header":
{
"user":"test",
"password":"test"
},
"data":
{
"user_id": "35",
"server_id": "28469"
}
}
SSO Unassign POST
Remove a user from a server.
POST /id-api/Unassign HTTP/1.1
Host: www.rlmcloud.com
{
"header":
{
"user":"test",
"password":"test"
},
"data":
{
"user_id": "1",
"server_id": "1"
}
}
SCIM Provisioning
SCIM patch operations format is required:
{
“schemas”:[“urn:ietf:params:scim:api:messages:2.0:PatchOp”],
“Operations”:[
{
“op”: “add|replace|remove”,
“path”: “attribute”
“value”: “”
},
…
]
}
SSO Users PATCH SCIM
Update an SSO User. This method updates only the supplied fields for the SSO User.
PATCH /id-api/Users/35 HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "replace", "path": "active", "value": true },
{ "op": "replace", "path": "name.formatted", "value": "John Reprise" },
{ "op": "replace", "path": "emails", "value": [ { "value": "John@example.com", "primary": true } ] },
{ "op": "replace", "path": "phoneNumbers", "value": [ { "value": "+1-555-123-4567" } ] },
{ "op": "replace", "path": "title", "value": "Lead Engineer" },
{ "op": "replace", "path": "company", "value": "Reprise Software" },
{ "op": "replace", "path": "notes", "value": "VIP customer" },
{ "op": "add", "path": "active", "value": true },
{ "op": "add", "path": "name.formatted", "value": "John Reprise" },
{ "op": "add", "path": "emails", "value": [ { "value": "John@example.com", "primary": true } ] },
{ "op": "add", "path": "phoneNumbers", "value": [ { "value": "+1-555-123-4567" } ] },
{ "op": "add", "path": "title", "value": "Lead Engineer" },
{ "op": "add", "path": "company", "value": "Reprise Software" },
{ "op": "add", "path": "notes", "value": "VIP customer" },
{ "op": "remove", "path": "name.formatted", "value": "" },
{ "op": "remove", "path": "phoneNumbers", "value": [ { "value": "" } ] },
{ "op": "remove", "path": "title", "value": "" },
{ "op": "remove", "path": "company", "value": "" },
{ "op": "remove", "path": "notes", "value": "" }
]
}
SSO Users PATCH SCIM Enable/Disable a User
Example of enabling or disabling an ID Licensing user.
PATCH /id-api/Users/35 HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "replace", "path": "active", "value": true }
]
}
SSO Users PATCH SCIM Change User Password
Example of updating the password of an ID Licensing user.
PATCH /id-api/Users/49 HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "replace", "path": "password", "value": "new_password" }
]
}
SSO Groups PATCH SCIM
Update an SSO Group. This method updates only the supplied fields for the SSO Group.
PATCH /id-api/Groups/69 HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "add", "path": "members", "value": [{ "value": "49" }] },
{ "op": "remove", "path": "members", "value": [{ "value": "49" }] },
{ "op": "replace", "path": "members", "value": [{ "value": "49" }] },
{ "op": "replace", "path": "active", "value": true }
]
}
SSO Groups PATCH SCIM Enable/Disable Group
Example of enabling or disabling an ID Licensing group.
PATCH /id-api/Groups/69 HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "replace", "path": "active", "value": true }
]
}
SSO Users POST SCIM
Create an SSO User.
POST /id-api/Users HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "alice@example.com",
"name": { "formatted": "Alice Example" },
"emails": [{ "value": "alice@example.com", "primary": true }],
"phoneNumbers": [{ "value": "+1-555-1234" }],
"active": true,
"title": "Engineer"
}
SSO Groups POST SCIM
Create an SSO Group.
POST /id-api/Groups HTTP/1.1
Host: www.rlmcloud.com
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"displayName": "Developers",
"externalId": "dev-group"
}