Developer Hub
Request Demo
Request Demo
Support
  1. Configuration
  • Getting Started
    • Introduction
  • API Reference
    • Admins
      • Bulk Admins Download API (Early Access)
    • Apps
      • Bulk Apps Download API (Early Access)
    • Business Owners
      • Bulk Business Owners Download API (Early Access)
      • Bulk Business Owners Upload API (Early Access)
    • Campaigns
      • Bulk Campaigns Download API (Early Access)
      • Bulk Campaigns Upload API (Early Access)
    • Configuration
      • Bulk Applied Labels Upload API (Early Access)
        POST
      • Bulk Entity Finding Rules Download API (Early Access)
        POST
      • Bulk Custom Insights (Entity Rules) Download API (Early Access)
        POST
      • Bulk Filters Download API (Early Access)
        POST
      • Bulk Filters Upload API (Early Access)
        POST
      • Bulk Findings Download API (Early Access)
        POST
      • Bulk Findings Upload API (Early Access)
        POST
      • Bulk Labels Download API (Early Access)
        POST
      • Bulk Labels Upload API (Early Access)
        POST
      • Bulk Privileged Download API (Early Access)
        POST
      • Bulk Privileged Upload API (Early Access)
        POST
      • Bulk RBAC Download API (Early Access)
        POST
      • Bulk RBAC Upload API (Early Access)
        POST
      • Bulk RBAC2 Download API (Early Access)
        POST
      • Bulk RBAC2 Upload API (Early Access)
        POST
      • Bulk Rules Download API (Early Access)
        POST
      • Bulk Rules Upload API (Early Access)
        POST
    • Employees
      • Bulk Employees Download API (Early Access)
      • Bulk Employees Upload API (Early Access)
    • Entitlements
      • Bulk Entitlements Download API (Early Access)
      • Bulk Entitlements Upload API (Early Access)
    • Entities
      • Bulk Entities Download API (Early Access)
      • Bulk Entities Upload API (Early Access)
    • EntityInsights
      • Bulk Entity Insights Download API (Early Access)
      • Bulk Entity Insights Upload API (Early Access)
    • EntityRelations
      • Bulk Entity Relations Download API (Early Access)
      • Bulk Entity Relations Upload API (Early Access)
    • EntityRBAC
      • Bulk Entity RBAC Download API
      • Bulk Entity RBAC Upload API
    • Integrations
      • Bulk Integrations Download API (Early Access)
      • Bulk Integrations Upload API (Early Access)
    • Purposes
      • Bulk Purposes Download API (Early Access)
      • Bulk Purposes Upload API (Early Access)
    • Relations
      • Bulk Relations Download API (Early Access)
      • Bulk Relations Upload API (Early Access)
    • Requests
      • Bulk Requests Download API (Early Access)
      • Bulk Requests Upload API (Early Access)
    • Reviews
      • Bulk Reviews Download API (Early Access)
      • Bulk Reviews Upload API (Early Access)
    • Playbooks
      • Bulk Playbook Templates Download API (Early Access)
      • Bulk Playbook Templates API (Early Access)
    • Webhooks
      • Bulk Webhook Templates Download API (Early Access)
      • Bulk Webhook Templates API (Early Access)
  • Playbooks
    • Overview
  1. Configuration

Bulk Filters Upload API (Early Access)

POST
https://app.balkan.id/api/rest/v0/filters/upload-url
Configuration

BalkanID Filters Upload CSV Format#

In this section, we will explain the BalkanID Filters CSV format.

Sample CSV#

IDName*Type*Value*Status*
f1Engineering employeesPEOPLE{"department":{"_in":["Engineering"]}}deleted
f2Privileged identities outside EngineeringIDENTITIES{"_and":[{"labels":[{"key":"entitlement/privileged","val":{"_eq":"Privileged"}}]},{"_not":{"employee":{"department":{"_in":["Engineering"]}}}}]}
NOTE: Columns with * are required always.
Column Definitions#
Column NameColumn Description
IDOptional - ID of the filter if already exists. It should be used to update.
NameRequired - The name of the filter. It appears in the applications.
TypeRequired - The type of the filter. One of: CAMPAIGN, ENTITLEMENTS, REVIEWS, EMPLOYEES, IDENTITIES, INTEGRATIONS, PEOPLE, IDENTITIES_ENTITLEMENTS, RBAC_BALKAN_ROLE_ENTITLEMENTS, INTEGRATION_ENTITLEMENTS, RESOURCE_ENTITLEMENTS, PEOPLE_ENTITLEMENTS, RBAC_BALKAN_ROLE_IDENTITIES, INTEGRATION_IDENTITIES, RESOURCE_IDENTITIES, RBAC_BALKAN_ROLE_CONNECTIONS, INTEGRATION_CONNECTIONS, CONNECTIONS, INTEGRATION_RESOURCES, RESOURCES, RBAC_BALKAN_ROLE_RESOURCES, RBAC_USERS, RBAC_CONNECTIONS, CONNECTION_IDENTITIES, CONNECTION_ENTITLEMENTS, MANAGER_PEOPLE, RBAC_OUTLIERS, RBAC_BALKAN_ROLES, RBAC_ROLE_USAGE, PEOPLE_IDENTITIES, PRIVILEGED_ENTITLEMENTS, APPLICATIONS, APPLICATION_ENTITLEMENTS
ValueRequired - The filter value in JSON format.
StatusOptional - The status of the filter. One of deleted or empty string.
Required Columns#
Name, Type and Value are always required.
All other columns are optional.

Filter Value Format#

The filter value is a nested JSON object with logical operators which can be used to build complex filters.
At base layer, there are two options -
TypeOperatorDescription
Included_andAll of the conditions must be true
Excluded_notAll of the conditions must be false
Inside each of these layer, we have multiple filter conditions. Each filter condition is a JSON object with the following structure:
{
    <field>: {
        <operator>: <value>
    }
}
Here,
Field - is the field name of the filter condition. Refer to filter fields for the list of supported fields.
Operator - is the operator to be used for the filter condition. It is usually either _in or _eq.
Value - is the value to be used for the filter condition. It can be a string(incase of _eq) or an array of strings(incase of _in).
The only exception to this, is if the filter field is labels. In this case, the filter condition is a JSON object with the following structure:
{
    "labels": [
        {
            "key": <key>,
            "val": {
                <operator>: <value>
            }
        }
    ]
}
Here,
Key - is the ID of the label.
Operator - is the operator to be used for the filter condition. It is usually _eq.
Value - is the name of the label.

Filter Fields#

Different filter types support different fields. Below is the list of supported fields for each filter type:

PEOPLE FILTER#

FieldDescription
IDID of the employee
labelsList of labels associated with the employee
managerManager of the employee
titleJob title of the employee
departmentDepartment of the employee
employmentTypeEmployment type of the employee

IDENTITIES FILTER#

FieldDescription
brnBRN of the identity
identity_typeType of the identity
IDID of the identity
labelsList of labels associated with the identity
employeeEmployee associated with the identity, has subfields same as PEOPLE FILTER
integrationIntegration associated with the identity
entitlementEntitlement associated with the identity, has subfields same as ENTITLEMENTS FILTER
labelsList of labels associated with the identity

APPLICATIONS FILTER#

FieldDescription
IDID of the application
appName of the application

ENTITLEMENTS FILTER#

FieldDescription
employeeEmployee associated with the entitlement, has subfields same as PEOPLE FILTER
identity_typeType of the identity
handleHandle of the entitlement
labelsList of labels associated with the entitlement
appApplication of the entitlement
integrationIntegration of the entitlement
permissionPermission of the entitlement
permission valueValue of the permission
roleRole of the entitlement
connection_typeConnection type of the entitlement
resourceResource of the entitlement
resource_typeResource type of the entitlement
sourceSource of the entitlement upload
projectProject of the entitlement

APPLICATION_ENTITLEMENTS FILTER#

FieldDescription
brnBRN of the identity
identity_typeType of the identity
permissionPermission of the entitlement
permission valueValue of the permission
roleRole of the entitlement
connection_typeConnection type of the entitlement
resourceResource of the entitlement
resource_typeResource type of the entitlement
labelsList of labels associated with the entitlement

PEOPLE_ENTITLEMENTS FILTER#

FieldDescription
integrationIntegration of the entitlement
appApplication of the entitlement
brnBRN of the identity
permissionPermission of the entitlement
permission valueValue of the permission
roleRole of the entitlement
connection_typeConnection type of the entitlement
resourceResource of the entitlement
resource_typeResource type of the entitlement
labelsList of labels associated with the entitlement

IDENTITIES_ENTITLEMENTS FILTER#

FieldDescription
roleRole of the entitlement
permissionPermission of the entitlement
permission valueValue of the permission
connection_typeConnection type of the entitlement
resourceResource of the entitlement
resource_typeResource type of the entitlement
labelsList of labels associated with the entitlement

REVIEWS FILTER#

FieldDescription
employeeEmployee associated with the review, has subfields same as PEOPLE FILTER
handleHandle of the review
idenetity_typeType of the identity
workflowWorkflow of the review
statusStatus of the review
roleRole of the entitlement
permissionPermission of the entitlement
permission valueValue of the permission
connection_typeConnection type of the entitlement
labelsList of labels associated with the entitlement
appApplication of the entitlement
integrationIntegration of the entitlement

Upload the CSV file via the pre-signed URL#

After retrieving the pre-signed URL in the previous step, all that remains is to upload the CSV in BalkanID Filters CSV format to the pre-signed URL.
Below is a summary of the request using curl:
The request URL is the pre-signed URL from previous step.
The request method is PUT.
Required request body is the CSV in BalkanID Filters CSV format.

Request

Header Params
X-Api-Key-ID
string 
optional
X-Api-Key-Secret
string 
optional
Content-Type
string 
optional
Default:
application/json

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://app.balkan.id/api/rest/v0/filters/upload-url' \
--header 'X-Api-Key-ID;' \
--header 'X-Api-Key-Secret;' \
--header 'Content-Type: application/json'

Responses

🟢200OK
application/json
upload url response
Body
Upload URL endpoint response
url
string 
required
The value is the pre-signed URL to which to upload your CSV file.
Example
{
    "url": "string"
}
🔴500Server Error
Previous
Bulk Filters Download API (Early Access)
Next
Bulk Findings Download API (Early Access)
Built with