Developer Hub
Request Demo
Request Demo
Support
  1. Reviews
  • 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)
      • Bulk Entity Finding Rules Download API (Early Access)
      • Bulk Custom Insights (Entity Rules) Download API (Early Access)
      • Bulk Filters Download API (Early Access)
      • Bulk Filters Upload API (Early Access)
      • Bulk Findings Download API (Early Access)
      • Bulk Findings Upload API (Early Access)
      • Bulk Labels Download API (Early Access)
      • Bulk Labels Upload API (Early Access)
      • Bulk Privileged Download API (Early Access)
      • Bulk Privileged Upload API (Early Access)
      • Bulk RBAC Download API (Early Access)
      • Bulk RBAC Upload API (Early Access)
      • Bulk RBAC2 Download API (Early Access)
      • Bulk RBAC2 Upload API (Early Access)
      • Bulk Rules Download API (Early Access)
      • Bulk Rules Upload API (Early Access)
    • 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)
        POST
      • Bulk Reviews Upload API (Early Access)
        POST
    • 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. Reviews

Bulk Reviews Upload API (Early Access)

POST
https://app.balkan.id/api/rest/v0/reviews/upload-url
Reviews

BalkanID Access Reviews Upload CSV Format#

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

Sample CSV 1#

This example contains example of both updating a pre-existing review and creating a new review.
IDIdentity IDIdentity NameIdentity UsernameIdentity EmailJob TitleDepartmentManagerEmployment TypeCampaign NameRequest IDApplication IDApplication NameApplication DescriptionConnectionConnection TypeReviewerReviewer ID*Created AtReviews StatusUpdated At*Updated By*ResourceResource TypePermission NamePermission ValueProjectReview TypeRecommendation
01ZZ2C235123dss24wJohnjohn.mjohn.m@org.comEngineerEngineeringMichaelFull time - 123Example Campaign Namegoogle/01HETVgoogleCore EngineeringgroupJames Morgenjames@org.com2023-10-01approved2023-10-04james@org.comCLIapplicationaccesstrueGeminiAIexisting{"value": "approve", "explanation": "testing"}
01ZZ3C235123dss24wJohnjohn.mjohn.m@org.comEngineerEngineeringMichaelFull time - 123DneEStYN89dImwgoogle/01HETVgoogleCore EngineeringgroupJames Morgenjames@org.com2023-10-01approved2023-10-04james@org.comCLIapplicationaccesstrueGeminiAIgrant{"value": "deny", "explanation": "}
C235123dss24wJohngitJohnItjohn.m@org.comEngineerEngineeringMichaelFull time - 123Example Campaign Name 2github/01EETVgithubTestingteamjames@org.com2023-10-04james@org.comcorerepositoryaccesstrueClippyrevoke{"value": ", "explanation": "}
In the above CSV,
Row 1 with ID 01ZZ2 is used to update a pre-existing review on a campaign with the Campaign Name as "Example Campaign Name"
Row 2 with ID 01ZZ3 is used to update a pre-existing review on a request with Request ID as DneEStYN89dImw
Row 3 is used to create a review on a pre-existing campaign with Campaign Name "Example Campaign Name 2", make sure the campaign is draft

Sample CSV 2#

This example contains example of creating new reviews on a Campaign or on a Request
Identity IDIdentity EmailIdentity UsernameCampaign NameRequest IDApplication IDApplication NameReviewer ID*Updated By*Updated At*Permission NamePermission ValueProjectReview TypeCreated AtResourceResource TypeConnectionConnection Type
john@org.comrevoke OverEnt - Dec 08, 2023, 05:34 PMgoogle/01HETVgoogletrevor@org.comtrevor@org.com2023-10-02readtrueProject-Miamiexisting2023-10-02
C235123d23sxrevoke OverEnt - Dec 08, 2023, 05:34 PMgoogle/01HETVgoogletrevor@org.comtrevor@org.com2023-10-02writetrueProject-Miamiexisting2023-10-02assetsstorage
C235123d23sxtrevor@org.comtrevorrevoke OverEnt - Dec 08, 2023,05:34 PMgoogle/01HETVgooglemichael@org.commichael@org.com2023-10-02maintaintrueProject-Miamiexisting2023-10-02assetsstorage
john.mDneEStYN89dIgoogle/01HETVgoogletrevor@org.comtrevor@org.com2023-10-02readtrueProject-Miamiexisting2023-10-02CLI docsdocumentationSupportgroup
NOTE: Columns with * are required always.
NOTE: You can either pass one of: "Identity ID", "Identity Email" or "Identity Username", or can pass all of them
In order to update review status(besides the status as "created") of reviews belonging to a Campaign, make sure the Campaign state should not be draft
The correct sequence to upload reviews and change its status is:
Utilise Bulk Campaign Upload API to generate a new campaign, this will create a campaign with the status as "Draft"
Upload the Reviews for that campaign and wait for the changes to propagate in your tenant
Update the Campaign using Bulk Campaign Upload API and change the status from draft and wait for the changes to propagate in your tenant
Now, utilise the Bulk Reviews Upload to update status of the review.
Column Definitions#
Column NameColumn Description
IDOptional, required if doing a status change: Contains the unique ID of the review.
Identity IDOptional, unique ID of the identity in the application.
Identity NameOptional, Name of the identity.
Identity EmailOptional, required if creating a new review: Email of the identity.
Identity UsernameOptional, required if creating a new review:Username of the identity.
Job TitleOptional, The job title of identity, for which the access review needs to be done.
DepartmentOptional, The department to which the identity belongs, for which the access review needs to be done.
ManagerOptional, The job title of identity, for which the access review needs to be done.
Employment TypeOptional, Employment type of the identity, such as Full-Time, Salaried, Contractor, Intern, etc.
Campaign NameOptional, required if creating a new review under a campaign: Name of the campaign (campaign must exist in tenant).
Campaign IDOptional, required if creating a new review under a campaign: ID of the campaign (campaign must exist in tenant).
Request IDOptional, required if creating a new review under an access request: Unique ID of the request.
Application IDOptional, required if creating a new review:
Application NameOptional, required if creating a new review: Name of the application for which review is created.
Application DescriptionOptional, Description of the application.
ConnectionOptional, required if Connection Type is present: Connection describes how the identity (identified by the Username) gains the privilege (identified by Privilege Name and Privilege Value) to the resource (identified by Resource and Resource Type). In the sample CSV, the connection is the repository role granted to the identity: “read” and “admin”.
Connection Type*Optional, required if Connection is Connection Type describes the type of the Connection. Typical connection types are “role”, “policy”, “group”, but can include others depending on your application authorization structure. In the sample CSV, this is “repository-role”.
Reviewer IDRequired, email of the reviewer.
Created AtOptional, creation date of the review.
Review StatusOptional, required if changing status of a pre-existing review: Allows approved for approving a review, rejected for rejecting a review, delegated for delegating/reassigning it to someone else. Allows any of created, started, stopped, request_info to update recommendation.
Updated ByRequired: Email of the user who changed status of review, must be the same email who was assigned the review.
Updated AtRequired, Date at which the review of updated or created, in the format YYYY-MM-DD.
ResourceOptional, required if creating a new review: resource name.
Resource TypeOptional, required if creating a new review: resource type.
Permission NameOptional, required if creating a new review: Name of the permission.
Permission ValueOptional, required if creating a new review: Takes true or false.
ProjectOptional, Name of the project.
Review TypeOptional, Type of the review, can be grant or revoke or existing
RecommendationOptional, Recommendation for the review. Format: {"value": One of {"approve", "deny" or "} , "explanation": "testing"}

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 Canonical 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 Access Reviews 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/reviews/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 Reviews Download API (Early Access)
Next
Bulk Playbook Templates Download API (Early Access)
Built with