UiPath Documentation
maestro
latest
false

Maestro user guide

Call an external API

What you'll build: A workflow that calls an authenticated Representational State Transfer (REST) API, handles the response, and makes the extracted data available to downstream nodes. This is one of the most common patterns in Flow — it applies to any system that exposes an HTTP endpoint.

What you'll need

  • A UiPath Automation Cloud account with access to Maestro Flow.
  • The target API's base URL, endpoint path, and authentication details (API key, bearer token, or basic auth credentials).

Nodes used

Steps

1. Create a new Flow and add a trigger

  1. Open MaestroFlow and create a new workflow.
  2. Drag a Manual Trigger onto the canvas.

2. Add and configure the HTTP Request node

  1. Drag an HTTP Request node onto the canvas and connect it to the trigger.
  2. In the configuration panel:
    • Set Method to the appropriate verb (GET, POST, PUT, PATCH, or DELETE).
    • Enter the full URL of the endpoint.
    • Under Headers, add authentication and content-type headers.

For API key authentication:

Add a header with key Authorization and value Bearer {{ secret.apiKey }}. The secret. prefix tells Flow to look up the value from your secure variable store — never paste the key directly into the field.

For basic auth:

Add a header with key Authorization and value Basic {{ secret.encodedCredentials }}, where encodedCredentials is the base64-encoded username:password string.

3. Extract the data you need

  1. Drag a Data Transform node onto the canvas and connect it to the HTTP Request node.
  2. In the configuration panel, map the response fields you need from $vars.httpRequest1.output.body to named output variables.

For example, to extract a user's name and email from a response like { "user": { "name": "Alex", "email": "[email protected]" } }, map:

  • $vars.httpRequest1.output.body.user.nameuserName
  • $vars.httpRequest1.output.body.user.emailuserEmail

4. Add error handling

  1. Select the HTTP Request node.
  2. Drag from its error handle (the bottom-right connector) to a new Script node.
  3. In the Script node, log the error from $vars.httpRequest1.error:
const error = $vars.httpRequest1.error;
console.log('API call failed:', error.message, '| Status:', error.status);
return null;
const error = $vars.httpRequest1.error;
console.log('API call failed:', error.message, '| Status:', error.status);
return null;

5. Test and debug

Select Test. In the execution trace:

  • Check the HTTP Request node's statusCode output. 200 means success; 401 means your authentication is wrong; 404 means the URL is incorrect.
  • Check the Data Transform node's output to confirm the fields were extracted correctly.
  • To test the error path, temporarily set the URL to an invalid value and verify the error path executes.

Result

Your workflow calls the REST API, extracts the fields you need from the response, and logs failures on the error path. You can inspect the HTTP status code and extracted values in the execution trace, and confirm both the success and error paths work as expected.

Extend this workflow

  • Handle pagination: if the API returns results across multiple pages, add follow-up HTTP Request nodes to fetch additional pages, branching with a Decision on whether the response includes a next-page cursor.
  • Write results to another system: after the Data Transform node, add another HTTP Request node or an integration node to push the data downstream.
  • Schedule it: replace the Manual Trigger with a Scheduled Trigger to run the workflow on a regular interval.

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated