Search Knowledge Base by Keyword
Generic Rest XML API
Overview
The Generic Rest XML API connector is a build-your-own integration for any HTTP API that answers in XML rather than JSON. It is not tied to a vendor. You supply the base domain, the authentication style, the endpoint path for each job and the node in the returned document that holds the records, and ReadyWorks does the calling, paging and parsing.
It is the XML sibling of the Generic Rest JSON API connector. The difference is the parser, not the transport: both drive ordinary REST calls, but this connector runs the XML driver (xml_rest_api.php) and exposes two settings the JSON connector has no use for. Ignore XML Attributes decides whether element attributes are flattened into the staging row or dropped, and API Return Data Node is read as a path into the XML tree instead of a JSON node. Use this connector when the endpoint returns an XML document, and the JSON connector when it returns JSON. The authentication methods offered here are a subset of the JSON connector’s, so an XML API that needs a token-fetch or session-cookie login is not covered by the four methods shipped.
Each job writes into its own staging table in the ReadyWorks estate, named by the job’s Destination Table. From there the data is mapped, reconciled against the rest of the fabric and used like any other source. All three enumeration levels are available, so a job can walk a list of keys returned by one call and issue a child call for each key, up to three levels deep.
The connector is inbound only. It reads from the API and writes to ReadyWorks staging. There are no outbound job fields and no outbound templates, so it cannot be used to push data back to the API.
NOTE: The shipped inbound template is an empty skeleton. It has no endpoint and is disabled. Treat it as a starting point to copy rather than a job that will run.
Connector Properties
| Property | Value |
|---|---|
| Identifier | XML Rest API |
| Name | Generic Rest XML API |
| Description | Connector for pulling and processing XML data from a REST API link |
| Job Types | Inbound Only |
| Order | 70 |
| Enabled | Yes |
| Locked | Yes |
| Block Update | No |
| Single Authentication | No |
| Windows Only | No |
| Connector Version | 2025-03-12 |
| Hooks | None |
| Additional Job Fields | None |
| Image | ![]() |
Authentication Methods
Four authentication methods are shipped, all of them stateless: the credential (if any) is attached to the request itself and there is no separate login call to fetch a session or token.
| Method | Identifier | Base Method | Script | Order | Enabled | Config Fields |
|---|---|---|---|---|---|---|
| No Authentication | XML Rest API_none |
XML Rest API_none |
xml_rest_api.php |
10 | Yes | 4 |
| API-Key | XML Rest API_key |
XML Rest API_key |
xml_rest_api.php |
20 | Yes | 5 |
| Bearer Token | XML Rest API_token |
XML Rest API_token |
xml_rest_api.php |
30 | Yes | 5 |
| Basic Authorization: Username / Password | XML Rest API_user |
XML Rest API_user |
xml_rest_api.php |
40 | Yes | 6 |
NOTE: Every method sets SSL_VERIFYHOST and SSL_VERIFYPEER to false, so the API’s TLS certificate is not validated. If you are calling an endpoint over the public internet, raise this with your ReadyWorks contact before putting the connection into production.
Method 1: No Authentication (XML Rest API_none)
Connect to a GET method API with no authentication
Sends no credential at all. Use it for endpoints that are open to the network the ReadyWorks collector sits on, for example an internal reporting service behind the firewall, or for a first connectivity test against a public feed. The connection form asks only for the API domain and the temporary working path.
Connection Configuration Fields (4)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
Method 2: API-Key (XML Rest API_key)
Connect to a GET method API with an API-Key
Collects an API key into the encrypted auth_value_1 field for endpoints that authenticate with a static key. Confirm on a first run, with Log Raw API Calls turned on, that the key reaches the endpoint in the header or parameter your API expects, because this method’s recipe defines no header of its own.
Connection Configuration Fields (5)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 60 | API Key | password | No | 64000 | Enter API key of the Connection | |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
Method 3: Bearer Token (XML Rest API_token)
Connect to a GET method API with a bearer token
Sends Authorization: Bearer with the value you store in the Bearer Token field. Use this for APIs issuing long-lived personal access tokens or service tokens that you can paste in and rotate manually. It does not fetch or refresh a token, so an endpoint that issues short-lived tokens from a login call is not served by this method.
Connection Configuration Fields (5)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 60 | Bearer Token | password | No | 64000 | Enter bearer token of the Connection | |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
Content-Type: |
application/json |
Off |
Authorization: Bearer |
%auth_value_1% |
Off |
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
NOTE: The Bearer Token field is not marked required, so a connection can be saved with the field empty. The problem then appears as a 401 on the first scheduled run rather than as a validation error at save time.
Method 4: Basic Authorization: Username / Password (XML Rest API_user)
Connect to a GET method API with a user/password
Sends Authorization: Basic with the username and password Base64-encoded together. This is the right choice for the many internal appliances and legacy XML services that still accept HTTP basic authentication.
Connection Configuration Fields (6)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | 255 | Enter API domain of the Connection | |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 40 | Username | text | No | 1024 | Enter username of the Connection | |
| 50 | Password | password | No | 64000 | Enter password of the Connection | |
| 240 | Single Authentication | radio | Yes | 0 |
Choose if authentication is only to be done once and not on each enumeration or pagination loop | |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
Content-Type: |
application/json |
Off |
Authorization: Basic |
%user_name%:%user_pass% |
On |
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
Inbound Job Fields Enabled (45)
The inbound job form exposes the full generic REST field set plus the two XML-specific controls, Ignore XML Attributes and the XML-aware API Return Data Node.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 20 | Job Schedule | lookup | Yes | Daily | Select frequency Job should run |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 40 | Use Unparsed Data | radio | No | No | Choose if you wish to parse the incoming data, or leave it in its raw format |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 70 | Destination Table | text | Yes | Enter name of the destination table | |
| 80 | Data Identity | text | No | Enter identity of the Job | |
| 120 | Append New Data to Existing Tables | radio | No | No | Choose if new data will append to the existing destination table, or will create a new destination table |
| 130 | Fields to Index | text | No | Enter fields to index | |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 200 | API Data Parameters | fields_list | No | Enter API data parameters of the Job | |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 220 | Raw JSON Body Data | textarea | No | Enter the raw JSON body to send. Do not use body selections in the API Parameters if this is used. | |
| 230 | API Return Data Node | text | No | Enter API return data node of the Job | |
| 240 | Ignore XML Attributes | radio | No | No | When parsing XML ignore field attributes and do not include them in the data |
| 250 | Pagination Type | select | No | None | Select request paging type of the Job |
| 270 | API Pagination Node | text | No | Enter API pagination node of the Job | |
| 280 | Pagination Offset Start | text | No | Enter request paging offset start of the Job | |
| 290 | Request Limit | text | No | Enter request limit of the Job | |
| 300 | Pagination Termination Node | text | No | Enter request paging termination node and value of the Job | |
| 310 | Maximum API Calls | text | No | Enter maximum number of API calls for the Job to make | |
| 320 | Enumeration 1 Type | select | No | None | Enter enumeration level 1 type |
| 330 | Enumeration 1 ETL Job | lookup | No | Select ETL job for the enumeration 1 values | |
| 340 | Enumeration 1 Data Type | data_type | No | Select the data type and fields for enumeration 1 values | |
| 350 | Enumeration 1 Keys End Point | text | No | Enter enumeration 1 keys end point of the Job | |
| 360 | Enumeration 1 Node | text | No | Enter enumeration 1 node of the Job | |
| 370 | Enumeration 1 Fields | fields_list | No | Enter enumeration 1 fields of the Job | |
| 380 | Enumeration 2 Type | select | No | None | Enter enumeration level 2 type |
| 390 | Enumeration 2 ETL Job | lookup | No | Select ETL job for the enumeration 2 values | |
| 400 | Enumeration 2 Data Type | data_type | No | Select the data type and fields for enumeration 2 values | |
| 410 | Enumeration 2 Keys End Point | text | No | Enter enumeration 2 keys end point of the Job | |
| 420 | Enumeration 2 Node | text | No | Enter enumeration 2 node of the Job | |
| 430 | Enumeration 2 Fields | fields_list | No | Enter enumeration 2 fields of the Job | |
| 440 | Enumeration 3 Type | select | No | None | Enter enumeration level 3 type |
| 450 | Enumeration 3 ETL Job | lookup | No | Select ETL job for the enumeration 3 values | |
| 460 | Enumeration 3 Data Type | data_type | No | Select the data type and fields for enumeration 3 values | |
| 470 | Enumeration 3 Keys End Point | text | No | Enter enumeration 3 keys end point of the Job | |
| 480 | Enumeration 3 Node | text | No | Enter enumeration 3 node of the Job | |
| 490 | Enumeration 3 Fields | fields_list | No | Enter enumeration 3 fields of the Job | |
| 500 | Pause Enumeration | text | No | Enter values for pausing enumeration every X calls for Y seconds | |
| 510 | Kill Enumeration on Error | radio | No | No | Choose to stop the enumeration loop on an error or continue processing the loop |
| 520 | Additional Fields | fields_list | No | Enter list of additional fields to add to staging data | |
| 550 | Retry Pause | text | No | Enter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds. | |
| 560 | Order | text | Yes | Enter order of the Job |
NOTE: Pagination is off by default (Pagination Type = None). Set it before pointing a job at a collection endpoint, or the job takes whatever the first response contains and stops.
NOTE: Ignore XML Attributes is set to No by default, so attributes on an element are parsed into the staging row alongside its child elements. Set it to Yes when the attributes are schema noise such as namespace or type markers and you do not want a column for each.
Inbound Job Templates (1)
One inbound template ships, and it is a blank starting point rather than a working job.
| # | Job Description | Destination Table | API End Point | Enabled | What It Pulls |
|---|---|---|---|---|---|
| 1 | Rest GET API | api_data |
Not set |
No | An empty GET skeleton with no endpoint set, writing to a staging table called api_data. Copy it, fill in the API End Point and Destination Table, set the API Return Data Node to the element that repeats once per record, and enable it. |
Job Template Configuration
Settings
| Setting | Value |
|---|---|
| Order | 10 |
| Enabled | No |
| Job Schedule | Daily (15 1 * * *) |
| Destination Table | api_data |
| Data Identity | api_data |
| Allow Empty Table | Yes |
| Append Files to Same Destination Table | No |
| Append New Data to Existing Tables | No |
| Use Unparsed Data | No |
| Convert UUID-Keyed Objects to Rows | No |
| Ignore XML Attributes | No |
| Log Raw API Calls | No |
| Method Type | GET |
| Body Data Sending Method | JSON Encoded Data |
NOTE: The template ships disabled (Enabled = No). Nothing runs until you configure a job and turn it on.
Outbound Job Templates (0)
This connector is inbound only, so no outbound templates are shipped and the outbound job form is not available.

