Flow Studio
REST Datasource Node
Calling an external REST API registered as a datasource — the RestDatasourceNode config, path parameters, query parameters, and response mapping.
Node Configuration
{
"nodeType": "RestDatasource",
"name": "fetchVendorFromErp",
"config": {
"datasourceId": "erp-api",
"method": "GET",
"path": "/vendors/{vendorId}",
"pathParams": {
"vendorId": "$json.vendorId"
},
"queryParams": {
"includeAddresses": true,
"includeContacts": false
},
"headers": {
"X-Request-Id": "$context.executionId"
},
"responseMapping": "$.vendor",
"timeoutSeconds": 15,
"retryCount": 2
}
}
Configuration Fields
| Field | Type | Description |
|---|---|---|
datasourceId | string | Registered REST datasource ID. Base URL and auth credential come from the registration. |
method | GET | POST | HTTP method. POST allows a body field for request payload. |
path | string | Path relative to the datasource's BaseUrl. Use {param} placeholders. |
pathParams | object | Values for {param} placeholders. Expression-evaluated. |
queryParams | object | URL query string parameters. Expression-evaluated. |
headers | object | Additional HTTP headers. Expression-evaluated. Cannot override Authorization (set by datasource credential). |
body | object | Request body for POST requests. Expression-evaluated. |
responseMapping | JSONPath | Optional JSONPath to extract a sub-object from the response. Default: full response body. |
Node Output
{
"rows": [
{
"vendorId": "vnd-acme",
"name": "Acme Corp",
"vatNumber": "GB123456789",
"paymentTerms": 30
}
],
"rowCount": 1,
"statusCode": 200
}
REST responses are always wrapped in the rows array for consistency with the SQL node output shape. If responseMapping returns an array, each element becomes a row. If it returns an object, it becomes a single row.
POST datasource queries: Use
method: "POST" for APIs that accept query parameters in the request body (common in GraphQL or complex search endpoints). The body field supports full expression syntax.