Use the PBRS Postman Collection
Download and configure the PBRS Postman collection and environment to authenticate, explore API requests, and execute and monitor schedules.
Use the PBRS Postman collection to explore API requests, authenticate to your installation, and execute and monitor schedules.
The collection includes 81 requests. The environment template contains the variables used by the authentication and asynchronous execution workflow.
Download the files
Download both files:
If your browser displays JSON instead of downloading the file, use Save as to save it with its original .json filename.
Before you begin
You need:
- The Postman desktop app.
- A running PBRS API service.
- Network access to the PBRS API server.
- An enabled PBRS API client and its client ID and secret.
- Permission to perform the operations you intend to use.
For installation and connection setup, see Install and Configure the PBRS API.
Run requests individually. Running the entire collection can create, modify, execute, or delete schedules and change scheduler settings.
Import the collection and environment
- Open your Postman workspace.
- Select Import.
- Import
PBRS_API.postman_collection.json. - Import
PBRS_Environment_Template.postman_environment.json. - Confirm that PBRS Public REST API appears under Collections.
- Select PBRS Environment Template from the environment selector.
You can duplicate the environment and rename the copy for your installation.
Configure the environment
Open the environment and configure these variables:
| Variable | Purpose | Template value |
|---|---|---|
baseUrl | PBRS API address, including protocol and port | http://localhost:9000 |
client_id | ID of an enabled PBRS API client | Empty |
client_secret | Secret for that API client | Empty |
access_token | Token saved by the authentication request | Empty |
schedule_id | Numeric identifier of the schedule to execute | Empty |
schedule_type | Schedule family for the execution request | report |
execution_id | Identifier saved after asynchronous execution submission | Empty |
Set the server address
The base URL must not end with /api or a trailing slash.
Use http://localhost:9000 only when Postman runs on the PBRS server and the API uses its default HTTP configuration.
For another server or an HTTPS deployment, enter that installation’s configured address.
The requests append their own endpoint paths. For example:
{{baseUrl}}/api/Service/PingThe client-credentials token endpoint uses:
{{baseUrl}}/oauth2/tokenDo not add /v1 to the base URL.
Enter credentials
Copy the client ID and secret from an enabled client in the API Clients tab of PBRS API Configuration.
Enter them in your local environment values. Keep credentials and tokens out of shared environments, exported files, screenshots, and repositories.
For authentication details, see Authentication and Token Management.
Check connectivity
Open Ping the API service under Service → Ping.
Send:
GET {{baseUrl}}/api/Service/PingA successful response is HTTP 200 with:
1Ping uses No Auth. It confirms API connectivity; it does not confirm reporting-account access or successful report delivery.
Authenticate
Open Authenticate an API client under oauth2 → token.
The request uses No Auth and sends this JSON body:
{
"grant_type": "client_credentials",
"client_id": "{{client_id}}",
"client_secret": "{{client_secret}}"
}Send the request. On success, its After response script saves the returned token in the selected environment’s access_token variable.
The collection uses Bearer Token authentication with:
{{access_token}}Authenticated requests inherit this setting. Ping and both token requests explicitly use No Auth.
Tokens expire after 60 minutes. Send Authenticate an API client again to obtain a new token. The collection does not automatically renew tokens.
The authentication script clears the previous stored token before saving a new successful result.
Execute an existing schedule
Choose a schedule whose output and destination are appropriate for your intended execution.
Set:
schedule_idto the schedule’s numeric identifier.schedule_typetoreportfor a single-report schedule orpackagefor a package.
Open Queue a schedule asynchronously under Schedule → ExecuteScheduleAsync.
Its request body is:
{
"ScheduleType": "{{schedule_type}}",
"uniqueid": {{schedule_id}},
"RunBy": "API"
}The numeric variable is deliberately unquoted. Populate schedule_id before sending the request so that substitution produces valid JSON.
Sending this request starts work that can deliver email or write output files.
On successful submission, the After response script stores the returned ExecutionId in execution_id. It clears the previous stored execution identifier before capturing the new result.
A returned identifier confirms submission, not successful rendering or delivery.
Monitor execution
Open Get an execution status under Schedule → GetExecutionStatus.
The request uses:
{{baseUrl}}/api/Schedule/GetExecutionStatus?ExecutionId={{execution_id}}Send the request to inspect the execution. Repeat as needed within a defined monitoring deadline.
Check the execution status and the result contained in the string-valued ResultJson field. A Completed status can contain a failed result.
Confirm the expected output and delivery separately. An empty or missing result is not evidence of success.
The collection does not automatically poll or retry execution requests.
For recovery and uncertain outcomes, see Monitor, Recover, and Reconcile Executions.
Use other requests
The remaining requests contain example identifiers and configuration values.
Before sending one:
- Read its description and the corresponding API Reference entry.
- Replace example identifiers, account settings, report paths, recipients, and destinations.
- Review the request body and query parameters.
- Confirm that you intend any documented side effects.
The environment variables do not automatically replace example values in every request.
Some documented GET operations require request bodies. Preserve the body where required by the operation.
For full schedule updates, include the complete intended destination collections and retain existing destination identifiers. Omitted destinations can be removed.
See Schedule Lifecycle Reference for operation-specific behavior.
Troubleshooting
| Problem | What to check |
|---|---|
| Variables are unresolved | Select the intended environment and verify the variable names. |
| Connection is refused | Confirm the API service is running and the host, protocol, and port are correct. |
| Authentication fails | Verify the client is enabled and its ID and secret are correct. |
| An authenticated request fails | Obtain a fresh token and confirm the request inherits collection authentication. |
| Execution body is invalid JSON | Populate schedule_id with a numeric identifier. |
| Execution status has no identifier | Confirm asynchronous submission returned an ExecutionId and the After response script saved it. |
| A request times out | Check the resulting state before retrying; the operation may already have succeeded. |
| A response body is empty | Check the operation’s contract. Some successful operations intentionally return no body. |
For a complete PowerShell example, follow Authenticate, Execute, and Monitor a Schedule. The recipe covers authentication, asynchronous execution, polling with a time limit, and execution-result checks.
For a complete PowerShell example, follow Update Paginated Report Parameters and Execute a Schedule. The recipe changes one named parameter, preserves the others, verifies the saved values, and executes and monitors the schedule.
For a complete PowerShell example, follow Update Email Recipients Without Changing Other Destination Settings. The recipe updates To recipients, preserves other destination settings, and verifies the saved changes without executing the schedule.
For a complete PowerShell example, follow Create a Report Package and Execute It. The recipe creates a package containing two Power BI reports, verifies the saved configuration, exports the reports as separate PDFs to a folder, and monitors the execution result.
For a complete PowerShell example, follow Create a Data-Driven Report Package. The recipe uses JSON rows to filter two Power BI reports by agent name, verifies the saved package configuration, sends all generated reports to one fixed email recipient, and monitors the execution result.
Next steps
Use Discover Folders, Reports, and Reporting Resources to obtain identifiers.
Use Create and Update Single Schedules to configure schedules.
Consult the API Reference for each operation’s complete request and response contract.
Updated about 21 hours ago

