Table of Contents


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

PropertyValue
IdentifierXML Rest API
NameGeneric Rest XML API
DescriptionConnector for pulling and processing XML data from a REST API link
Job TypesInbound Only
Order70
EnabledYes
LockedYes
Block UpdateNo
Single AuthenticationNo
Windows OnlyNo
Connector Version2025-03-12
HooksNone
Additional Job FieldsNone
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.

MethodIdentifierBase MethodScriptOrderEnabledConfig Fields
No AuthenticationXML Rest API_noneXML Rest API_nonexml_rest_api.php10Yes4
API-KeyXML Rest API_keyXML Rest API_keyxml_rest_api.php20Yes5
Bearer TokenXML Rest API_tokenXML Rest API_tokenxml_rest_api.php30Yes5
Basic Authorization: Username / PasswordXML Rest API_userXML Rest API_userxml_rest_api.php40Yes6

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)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame

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)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
60API KeypasswordNo64000Enter API key of the Connection
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame

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)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
60Bearer TokenpasswordNo64000Enter bearer token of the Connection
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/jsonOff
Authorization: Bearer%auth_value_1%Off

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame

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)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
40UsernametextNo1024Enter username of the Connection
50PasswordpasswordNo64000Enter password of the Connection
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/jsonOff
Authorization: Basic%user_name%:%user_pass%On

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame

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.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
20Job SchedulelookupYesDailySelect frequency Job should run
30EnabledradioYesYesChoose if Job is enabled
40Use Unparsed DataradioNoNoChoose if you wish to parse the incoming data, or leave it in its raw format
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
70Destination TabletextYesEnter name of the destination table
80Data IdentitytextNoEnter identity of the Job
120Append New Data to Existing TablesradioNoNoChoose if new data will append to the existing destination table, or will create a new destination table
130Fields to IndextextNoEnter fields to index
170Method TypeselectYesGETSelect method type of the Job
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
220Raw JSON Body DatatextareaNoEnter the raw JSON body to send. Do not use body selections in the API Parameters if this is used.
230API Return Data NodetextNoEnter API return data node of the Job
240Ignore XML AttributesradioNoNoWhen parsing XML ignore field attributes and do not include them in the data
250Pagination TypeselectNoNoneSelect request paging type of the Job
270API Pagination NodetextNoEnter API pagination node of the Job
280Pagination Offset StarttextNoEnter request paging offset start of the Job
290Request LimittextNoEnter request limit of the Job
300Pagination Termination NodetextNoEnter request paging termination node and value of the Job
310Maximum API CallstextNoEnter maximum number of API calls for the Job to make
320Enumeration 1 TypeselectNoNoneEnter enumeration level 1 type
330Enumeration 1 ETL JoblookupNoSelect ETL job for the enumeration 1 values
340Enumeration 1 Data Typedata_typeNoSelect the data type and fields for enumeration 1 values
350Enumeration 1 Keys End PointtextNoEnter enumeration 1 keys end point of the Job
360Enumeration 1 NodetextNoEnter enumeration 1 node of the Job
370Enumeration 1 Fieldsfields_listNoEnter enumeration 1 fields of the Job
380Enumeration 2 TypeselectNoNoneEnter enumeration level 2 type
390Enumeration 2 ETL JoblookupNoSelect ETL job for the enumeration 2 values
400Enumeration 2 Data Typedata_typeNoSelect the data type and fields for enumeration 2 values
410Enumeration 2 Keys End PointtextNoEnter enumeration 2 keys end point of the Job
420Enumeration 2 NodetextNoEnter enumeration 2 node of the Job
430Enumeration 2 Fieldsfields_listNoEnter enumeration 2 fields of the Job
440Enumeration 3 TypeselectNoNoneEnter enumeration level 3 type
450Enumeration 3 ETL JoblookupNoSelect ETL job for the enumeration 3 values
460Enumeration 3 Data Typedata_typeNoSelect the data type and fields for enumeration 3 values
470Enumeration 3 Keys End PointtextNoEnter enumeration 3 keys end point of the Job
480Enumeration 3 NodetextNoEnter enumeration 3 node of the Job
490Enumeration 3 Fieldsfields_listNoEnter enumeration 3 fields of the Job
500Pause EnumerationtextNoEnter values for pausing enumeration every X calls for Y seconds
510Kill Enumeration on ErrorradioNoNoChoose to stop the enumeration loop on an error or continue processing the loop
520Additional Fieldsfields_listNoEnter list of additional fields to add to staging data
550Retry PausetextNoEnter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds.
560OrdertextYesEnter 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 DescriptionDestination TableAPI End PointEnabledWhat It Pulls
1Rest GET APIapi_dataNot setNoAn 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

SettingValue
Order10
EnabledNo
Job ScheduleDaily (15 1 * * *)
Destination Tableapi_data
Data Identityapi_data
Allow Empty TableYes
Append Files to Same Destination TableNo
Append New Data to Existing TablesNo
Use Unparsed DataNo
Convert UUID-Keyed Objects to RowsNo
Ignore XML AttributesNo
Log Raw API CallsNo
Method TypeGET
Body Data Sending MethodJSON 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.

Last updated on 11/4/2026

Attachments