Find Business Units
Find business units. The command uses the PV_BUSINESS_UNIT public view to find data. Any filters passed should be passed on this public view.
GET https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits
Request
Parameters
| findBusinessUnits | |
| format | properties - (Default) Returns the response as key=value pairs. When multiple objects are returned, values are comma-delimited: key=value1,value2,value3.json - Returns the response as JSON.csv - Returns the response as comma-separated values.tsv - Returns the response as tab-separated values.xml - Returns the response as XML. |
| delimiter | The delimiter to use between values for csv and properties formats |
| returnColumns | The names of the columns to return. returnColumns may be a CSV list of multiple column names. The returnColumns parameter may also be listed multiple times (ie returnColumns=col1,col2&returnColumns=col3,col4) Refer to Columns table below. |
| returnMaxRows | The maximum number of objects to return |
| distinct | true, false Returns only distinct values, equivalent to the distinct keyword in SQL. |
| sortByColumns | The results will be sorted based on the columns listed using comma as the delimiter if multiple columns are specified. Refer to Columns table below. |
| sortDirection | Determines sorting order. asc for ascending, desc for descending. If not specified, the natural order returned by the database is used. |
| includeHeaderRow | true, false Include column headers when the return format is csv or tsv. (Default) true |
| ignoreCase | true, false Returns case-insensitive search results for specified filter parameters. (Default) false |
Filter Parameters
Any column listed in the Columns table can be passed as a filter parameter to narrow results. Filters are matched against the PV_BUSINESS_UNIT public view.
Query logic
| Scenario | Behavior |
|---|---|
Two different parameters: business_owner=5&backup_business_owner=5 | AND. Returns business units where the user is both the business owner and the backup business owner. |
Same parameter repeated: business_owner=18&business_owner=19 | OR within that field. Returns business units where the business owner is 18 or 19. |
Mixed: business_owner=18&business_owner=19&backup_business_owner=56 | (business_owner is 18 or 19) AND (backup_business_owner is 56) |
A single API call cannot return business units where a user is the business_owner OR the backup_business_owner. OR logic between different filter parameters is not supported.
Workaround: Make two separate requests, one filtered by business_owner=<userId> and one by backup_business_owner=<userId>. Merge and deduplicate the results client-side.
Columns
| id | [Primary Key] Unique application identifier |
| name | Business unit name |
| created_by | [Foreign Key referencing USERS.ID] User id that created this business unit. |
| creation_date | Date stamp when this business unit was created |
| business_owner | [Foreign Key referencing USERS.ID] Business owner user id |
| technical_owner | [Foreign Key referencing USERS.ID] Technical owner user id |
| violation_manager | [Foreign Key referencing USERS.ID] Name of the violation manager user id |
| backup_business_owner | [Foreign Key referencing USERS.ID] Backup business owner |
| backup_technical_owner | [Foreign Key referencing USERS.ID] Backup technical owner |
| cau1 | Value of custom user type attributes configured on the instance represented by their database IDs |
| cad1 | Value of custom date type attributes configured on the instance represented by their database IDs |
| cas1 | Value of custom string type attributes configured on the instance represented by their database IDs |
Headers
Bearer token | |
| Accept | application/json |
| Content-Type | application/json |
Response
Parameters
The API returns the requested columns specified by returnColumns as output. If returnColumns is unspecified then all columns listed will be returned.
Examples
All columns
Omit returnColumns to return all fields for each business unit. Useful when exploring the available data for the first time.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "json",
"returnMaxRows": "3"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "json",
returnMaxRows: "3"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findBusinessUnits": [
{
"id": "1",
"name": "Audit & Compliance",
"creation_date": "2024-03-15 14:07:50.0",
"created_by": "0",
"business_owner": "0",
"technical_owner": "0",
"violation_manager": "0",
"backup_business_owner": "",
"backup_technical_owner": "",
"property_2": "",
"property_1": "",
"cau1": "",
"cau2": "",
"cad1": "",
"cas3": ""
},
{
"id": "2",
"name": "Yet Another BU",
"creation_date": "2026-06-19 00:00:00.0",
"created_by": "0",
"business_owner": "0",
"technical_owner": "0",
"violation_manager": "0",
"backup_business_owner": "",
"backup_technical_owner": "",
"property_2": "",
"property_1": "",
"cau1": "",
"cau2": "",
"cad1": "",
"cas3": ""
}
]
}
Specific columns
Use returnColumns to limit the response to the fields you need.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3&returnColumns=id,name,business_owner,technical_owner,violation_manager" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,business_owner,technical_owner,violation_manager"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,business_owner,technical_owner,violation_manager"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
- 412 Invalid column
{
"findBusinessUnits": [
{
"id": "1",
"name": "Audit & Compliance",
"business_owner": "0",
"technical_owner": "0",
"violation_manager": "0"
},
{
"id": "2",
"name": "Yet Another BU",
"business_owner": "0",
"technical_owner": "0",
"violation_manager": "0"
}
]
}
<html><head><title>Error</title></head><body>The parameter returncolumns contains an invalid column - 'invalid_col'. Query String=cmd=findBusinessUnits&format=json&returnColumns=id,invalid_col</body></html>
Filter by a single value
Pass any column name as a query parameter to filter results. The example below returns business units where name is Audit & Compliance.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3&returnColumns=id,name,business_owner,technical_owner&name=Audit & Compliance" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,business_owner,technical_owner",
"name": "Audit & Compliance"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,business_owner,technical_owner",
name: "Audit & Compliance"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findBusinessUnits": [
{
"id": "1",
"name": "Audit & Compliance",
"business_owner": "0",
"technical_owner": "0"
}
]
}
Filter with OR logic
Repeat the same parameter with different values to match any of them. The example returns business units where name is Audit & Compliance or Yet Another BU.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3&returnColumns=id,name,business_owner,technical_owner&name=Audit & Compliance&name=Yet Another BU" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = [
("cmd", "findBusinessUnits"),
("format", "json"),
("returnMaxRows", "3"),
("returnColumns", "id,name,business_owner,technical_owner"),
("name", "Audit & Compliance"),
("name", "Yet Another BU")
]
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
const params = new URLSearchParams();
params.append('cmd', 'findBusinessUnits');
params.append('format', 'json');
params.append('returnMaxRows', '3');
params.append('returnColumns', 'id,name,business_owner,technical_owner');
params.append('name', 'Audit & Compliance');
params.append('name', 'Yet Another BU');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params,
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findBusinessUnits": [
{
"id": "1",
"name": "Audit & Compliance",
"business_owner": "0",
"technical_owner": "0"
},
{
"id": "2",
"name": "Yet Another BU",
"business_owner": "0",
"technical_owner": "0"
}
]
}
Case-insensitive filter
Filters are case-sensitive by default. Set ignoreCase=true to match regardless of case. The example passes name in lowercase and still returns the matching record.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3&returnColumns=id,name&name=audit & compliance&ignoreCase=true" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name",
"name": "audit & compliance",
"ignoreCase": "true"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name",
name: "audit & compliance",
ignoreCase: "true"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findBusinessUnits": [
{
"id": "1",
"name": "Audit & Compliance"
}
]
}
Sort ascending
Use sortByColumns with a column name and sortDirection=asc to sort results from lowest to highest.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3&returnColumns=id,name&sortByColumns=name&sortDirection=asc" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name",
"sortByColumns": "name",
"sortDirection": "asc"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name",
sortByColumns: "name",
sortDirection: "asc"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findBusinessUnits": [
{
"id": "1",
"name": "Audit & Compliance"
},
{
"id": "2",
"name": "Yet Another BU"
}
]
}
Sort descending
Set sortDirection=desc to reverse the order.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=json&returnMaxRows=3&returnColumns=id,name&sortByColumns=name&sortDirection=desc" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name",
"sortByColumns": "name",
"sortDirection": "desc"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name",
sortByColumns: "name",
sortDirection: "desc"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findBusinessUnits": [
{
"id": "2",
"name": "Yet Another BU"
},
{
"id": "1",
"name": "Audit & Compliance"
}
]
}
CSV with custom delimiter
Set format=csv for a comma-separated response. Use delimiter to change the separator character.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=csv&returnMaxRows=3&returnColumns=id,name,business_owner,technical_owner&delimiter=~" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "csv",
"returnMaxRows": "3",
"returnColumns": "id,name,business_owner,technical_owner",
"delimiter": "~"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.text)
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "csv",
returnMaxRows: "3",
returnColumns: "id,name,business_owner,technical_owner",
delimiter: "~"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
id~name~business_owner~technical_owner
1~Audit & Compliance~0~0
2~Yet Another BU~0~0
CSV without header row
Set includeHeaderRow=false when your downstream system expects raw data rows without a header.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findBusinessUnits&format=csv&returnMaxRows=3&returnColumns=id,name,business_owner,technical_owner&includeHeaderRow=false" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findBusinessUnits",
"format": "csv",
"returnMaxRows": "3",
"returnColumns": "id,name,business_owner,technical_owner",
"includeHeaderRow": "false"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.text)
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findBusinessUnits",
format: "csv",
returnMaxRows: "3",
returnColumns: "id,name,business_owner,technical_owner",
includeHeaderRow: "false"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
1,Audit & Compliance,0,0
2,Yet Another BU,0,0
Error responses
A 401 is returned when the token is missing, invalid, or expired. A 412 is returned when returnColumns includes a column name that does not exist in the PV_BUSINESS_UNIT public view.
- 401 Invalid token
- 412 Invalid column
<html>
<head><title>Error</title></head>
<body>The token is not valid for the command 'findBusinessUnits'. Token is invalid or expired</body>
</html>
<html>
<head><title>Error</title></head>
<body>The parameter returncolumns contains an invalid column - `invalid_col`.
Query String=cmd=findBusinessUnits&format=json&returnColumns=id,invalid_col</body>
</html>
Verified with RSA Governance & Lifecycle version 8.0.0.188886 P10_HF01.