Find Forms
Find request forms configured in the system. The command uses the PV_FORM public view to find data. Any filters passed should apply to this public view.
GET https://instance.securid.com/aveksa/command.submit?cmd=findForms
Request
Parameters
| findForms | |
| 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. |
| 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_FORM public view.
Query logic
| Scenario | Behavior |
|---|---|
Two different parameters: enabled=true&object_type=C | AND. Returns enabled forms that apply to change requests. |
Same parameter repeated: object_type=C&object_type=T | OR within that field. Returns forms for change requests or terminations. |
Mixed: enabled=true&object_type=C&object_type=T | (enabled is true) AND (object_type is C or T) |
A single API call cannot return forms where enabled=true OR object_type=T. OR logic between different filter parameters is not supported.
Workaround: Make separate requests for each filter condition. Merge and deduplicate the results client-side.
Columns
| id | [Primary Key] Unique form identifier |
| name | Form name |
| description | Form description |
| enabled | true, false Whether the form is currently enabled |
| object_type | Type of object the form applies to. Common values: C (Change/Account), T (Termination), A (Application), J (Job), E (Entitlement), O (Other) |
| category | Form category for grouping and filtering |
| applies_to_selmode | Selection mode for requestable items. S = single item, M = multiple items |
| request_grouping_mode | How requests generated by this form are grouped. D = default grouping |
| form_version_code | Internal version code for the form definition |
| visible_to_target | Y, N Whether the form is visible to the target user during the request workflow |
| existing_request_check | Y, N Whether to check for an existing in-flight request before allowing a new one |
| external_password_reset_check | Y, N Whether to trigger an external password reset check when this form is submitted |
| account_resolution | How accounts are resolved when the form is submitted. E = exact match |
| validation_uri | External URI called to validate form input before submission |
| review_id | [Foreign Key referencing REVIEW.ID] Review associated with this form |
| run_review_days | Number of days after form submission before the associated review runs |
| app_for_collector_name | Application collector this form is associated with |
| available_for_spec | Whether the form is available for specification workflows |
| archive_id | Reference to the archived version of this form |
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 every field for each form.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findForms&format=json&returnMaxRows=2" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "json",
"returnMaxRows": "2"
}
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: "findForms",
format: "json",
returnMaxRows: "2"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findForms": [
{
"id": "53",
"name": "Term",
"description": "",
"enabled": "true",
"validation_uri": "",
"object_type": "T",
"category": "",
"applies_to_selmode": "S",
"request_grouping_mode": "D",
"form_version_code": "0",
"visible_to_target": "Y",
"existing_request_check": "Y",
"review_id": "",
"run_review_days": "",
"app_for_collector_name": "",
"available_for_spec": "",
"external_password_reset_check": "N",
"account_resolution": "E",
"archive_id": ""
},
{
"id": "1",
"name": "Default Account Management Form",
"description": "",
"enabled": "true",
"validation_uri": "",
"object_type": "C",
"category": "",
"applies_to_selmode": "M",
"request_grouping_mode": "D",
"form_version_code": "6",
"visible_to_target": "Y",
"existing_request_check": "Y",
"review_id": "",
"run_review_days": "",
"app_for_collector_name": "",
"available_for_spec": "",
"external_password_reset_check": "N",
"account_resolution": "E",
"archive_id": ""
}
]
}
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=findForms&format=json&returnMaxRows=3&returnColumns=id,name,enabled,object_type,category" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,enabled,object_type,category"
}
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: "findForms",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,enabled,object_type,category"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
- 412 Invalid column
{
"findForms": [
{
"id": "53",
"name": "Term",
"enabled": "true",
"object_type": "T",
"category": ""
},
{
"id": "1",
"name": "Default Account Management Form",
"enabled": "true",
"object_type": "C",
"category": ""
},
{
"id": "2",
"name": "Default Application Form",
"enabled": "true",
"object_type": "A",
"category": ""
}
]
}
<html>
<head><title>Error</title></head>
<body>The parameter returncolumns contains an invalid column - `invalid_col`.
Query String=cmd=findForms&format=json&returnMaxRows=2&returnColumns=id,invalid_col</body>
</html>
Filter by a single value
Pass any column name as a query parameter to filter results. The example returns all enabled forms.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findForms&format=json&returnMaxRows=3&returnColumns=id,name,enabled,object_type&enabled=true" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,enabled,object_type",
"enabled": "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: "findForms",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,enabled,object_type",
enabled: "true"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findForms": [
{
"id": "53",
"name": "Term",
"enabled": "true",
"object_type": "T"
},
{
"id": "1",
"name": "Default Account Management Form",
"enabled": "true",
"object_type": "C"
},
{
"id": "2",
"name": "Default Application Form",
"enabled": "true",
"object_type": "A"
}
]
}
Filter with OR logic
Repeat the same parameter with different values to match any of them. The example returns forms where object_type is C (change/account) or T (termination).
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findForms&format=json&returnMaxRows=3&returnColumns=id,name,object_type&object_type=C&object_type=T" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = [
("cmd", "findForms"),
("format", "json"),
("returnMaxRows", "3"),
("returnColumns", "id,name,object_type"),
("object_type", "C"),
("object_type", "T")
]
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', 'findForms');
params.append('format', 'json');
params.append('returnMaxRows', '3');
params.append('returnColumns', 'id,name,object_type');
params.append('object_type', 'C');
params.append('object_type', 'T');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params,
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findForms": [
{
"id": "53",
"name": "Term",
"object_type": "T"
},
{
"id": "1",
"name": "Default Account Management Form",
"object_type": "C"
},
{
"id": "11",
"name": "Default Termination Form",
"object_type": "T"
}
]
}
Case-insensitive filter
Filters are case-sensitive by default. Set ignoreCase=true to match regardless of case. The example passes enabled=TRUE in uppercase and still returns forms with the stored value true.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findForms&format=json&returnMaxRows=3&returnColumns=id,name,enabled&enabled=TRUE&ignoreCase=true" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,enabled",
"enabled": "TRUE",
"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: "findForms",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,enabled",
enabled: "TRUE",
ignoreCase: "true"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findForms": [
{
"id": "53",
"name": "Term",
"enabled": "true"
},
{
"id": "1",
"name": "Default Account Management Form",
"enabled": "true"
},
{
"id": "2",
"name": "Default Application Form",
"enabled": "true"
}
]
}
Sort ascending
Use sortByColumns with a column name and sortDirection=asc to sort results A to Z. The example sorts by name.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findForms&format=json&returnMaxRows=3&returnColumns=id,name,object_type&sortByColumns=name&sortDirection=asc" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,object_type",
"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: "findForms",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,object_type",
sortByColumns: "name",
sortDirection: "asc"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findForms": [
{
"id": "73",
"name": "Account Creation Form",
"object_type": "C"
},
{
"id": "14",
"name": "Active Directory Form",
"object_type": "J"
},
{
"id": "15",
"name": "Admin Add Access",
"object_type": "C"
}
]
}
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=findForms&format=json&returnMaxRows=3&returnColumns=id,name,object_type&sortByColumns=name&sortDirection=desc" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "json",
"returnMaxRows": "3",
"returnColumns": "id,name,object_type",
"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: "findForms",
format: "json",
returnMaxRows: "3",
returnColumns: "id,name,object_type",
sortByColumns: "name",
sortDirection: "desc"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findForms": [
{
"id": "32",
"name": "Zendesk 2 Form",
"object_type": "J"
},
{
"id": "31",
"name": "UnAssign Token",
"object_type": "C"
},
{
"id": "30",
"name": "Transfer Token",
"object_type": "C"
}
]
}
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=findForms&format=csv&returnMaxRows=3&returnColumns=id,name,enabled,object_type&delimiter=~" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "csv",
"returnMaxRows": "3",
"returnColumns": "id,name,enabled,object_type",
"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: "findForms",
format: "csv",
returnMaxRows: "3",
returnColumns: "id,name,enabled,object_type",
delimiter: "~"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
id~name~enabled~object_type
53~Term~true~T
1~Default Account Management Form~true~C
2~Default Application Form~true~A
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=findForms&format=csv&returnMaxRows=3&returnColumns=id,name,enabled,object_type&includeHeaderRow=false" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findForms",
"format": "csv",
"returnMaxRows": "3",
"returnColumns": "id,name,enabled,object_type",
"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: "findForms",
format: "csv",
returnMaxRows: "3",
returnColumns: "id,name,enabled,object_type",
includeHeaderRow: "false"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
53,Term,true,T
1,Default Account Management Form,true,C
2,Default Application Form,true,A
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_FORM public view.
- 401 Invalid token
- 412 Invalid column
<html>
<head><title>Error</title></head>
<body>The token is not valid for the command 'findForms'. 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=findForms&format=json&returnMaxRows=2&returnColumns=id,invalid_col</body>
</html>
Verified with RSA Governance & Lifecycle version 8.0.0.188886 P10_HF01.