Use the ATRS API with Postman
Import the ATRS collection and environment, authenticate, then run and verify a test schedule.
Use Postman to connect to ATRS, authenticate and run an existing report schedule without writing application code.
Before you begin
You need:
- A current Postman desktop app that supports
pm.execution.skipRequest. - A reachable ATRS API. Follow Install and Configure the ATRS API if it is not set up.
- An API client ID and secret, or ATRS user credentials.
- A working report schedule with a destination you can use for testing.
Use HTTPS when sending credentials across a network. Send requests individually: running the whole collection can create, change, execute or delete resources.
1. Download and import the files
Download both files:
In Postman, select Import and choose the two saved JSON files. Open the ATRS Public REST API collection, then select ATRS Environment Template in the environment selector.
2. Set your environment values
Open the imported environment and enter local/private values:
| Variable | What to enter |
|---|---|
atrs_base_url | Your API protocol, hostname and port, such as https://atrs.example.com:9001. Replace the example hostname. Do not add a trailing slash, /api or /v1. |
atrs_client_id | Your API client ID. |
atrs_client_secret | Your API client secret. |
atrs_token | Leave blank; the authentication script fills it. |
atrs_schedule_id | The positive numeric ID of the intended test schedule. |
atrs_schedule_type | Use report for this walkthrough. |
atrs_execution_id | Leave blank; the execution script fills it. |
Keep credentials and tokens private. Remove secrets before exporting or sharing an environment. The collection supplies request URLs, bearer authentication and body scripts; you do not need to rebuild them.
3. Check connectivity
In the Service folder, open Ping the API service (GET /api/Service/Ping) and click Send.
Expect HTTP 200 with the JSON number 1. If it fails, resolve the base address, API service or network connection before continuing.
4. Obtain a token
In the OAuth2 folder, open Issue an OAuth2 client token (POST /api/OAuth2/token) and click Send.
The request uses your client ID and secret. On a valid response, its script saves access_token as atrs_token and records the returned expires_in lifetime. Confirm that the environment contains a token before continuing.
To sign in as an ATRS user instead, set the private values atrs_username and atrs_password, then send Login → Authenticate an ATRS user (POST /api/Login/token). Its script saves the returned token and ExpiryDateEpoch. A challenge or incomplete sign-in is not a usable token.
Tokens are not renewed automatically. Repeat authentication when the token expires. See Authentication and Token Management for details.
5. Check a protected request
In TableauAccount, open List Tableau accounts (GET /api/TableauAccount/GetAccounts) and click Send.
Expect HTTP 200 and a JSON array. An empty array can be valid; check configured Tableau access before resource discovery. For a 401 response, check the selected environment, token and expiry.
6. Run one test schedule
Confirm the schedule ID and test destination. In Schedule, open Queue a schedule asynchronously (POST /api/Schedule/ExecuteScheduleAsync).
The request script builds the body from your environment values and sends the schedule ID as a number. Leave the generated atrs_request_body_json variable in the request; do not create it as an environment input.
Click Send once. This can produce and deliver a report. The response script saves a nonempty ExecutionId as atrs_execution_id. Confirm that it was saved and keep this ID for monitoring.
If submission times out or no execution ID is returned, investigate schedule activity before sending again. A missing response does not prove that the schedule did not run.
7. Monitor the execution
In Schedule, open Get an execution status (GET /api/Schedule/GetExecutionStatus). The request uses the saved atrs_execution_id.
Click Send, then repeat this status request manually at five-second intervals for up to ten minutes. Keep the same execution ID throughout.
For Completed, inspect ResultJson. It is a JSON string; the script decodes it and checks for the boolean Result: true. A completed execution can still contain a failed result. Terminated, stale, missing or unfamiliar states need investigation.
At the deadline, or if the outcome is uncertain, retain the ID and follow Monitor, Recover, and Reconcile Executions. Do not automatically submit another execution.
8. Check the report and delivery
Open the actual report. Verify its contents and confirm delivery to the intended recipient or file path.
Check the generated reports and their destinations to confirm that rendering and delivery succeeded. Investigate missing or incorrect output before running the schedule again.
Use other requests
Read each request description and its reference link before sending it. Set the named input variables with IDs from your own ATRS installation. For schedule authoring, follow Create a Schedule from a Working Template and supply the complete intended settings.
For package creation, set atrs_package_create_json to the complete request JSON described in Create and Manage Report Packages or Create a Data-Driven Tableau Package. Use report for a single-report schedule and package with the package-level ID when executing a package.
See API Versions and Compatibility for compatibility checks.
Troubleshooting
| Symptom | What to check |
|---|---|
| Request is skipped | Read the request description and Postman Console message, then set the required variables. Blocked review requests remain unavailable. |
| URL still uses the example hostname | Select the imported environment and enter your real atrs_base_url. |
| 401 response | Check the selected environment and authenticate again if the token has expired. |
| Invalid JSON | Use the supplied body script and valid JSON for any input that requires a complete definition. |
| Search does not filter as expected | Supply nonblank search keywords. Some GET searches require a body; use the POST single-schedule search when appropriate. |
Updated about 7 hours ago