Search Knowledge Base by Keyword

Generic Rest JSON API

< Back

Overview

The Generic Rest JSON API connector is the one you reach for when the system you need has no connector of its own. There is no vendor product behind it. It talks to any HTTP service that accepts a request and returns JSON, which covers most SaaS platforms, most on-premises management consoles with a REST interface, and anything your own teams have built in-house. You supply the domain, the credentials, the endpoint paths and the shape of the response, and ReadyWorks does the transport, the paging, the parsing and the loading.

A connection stores an API domain, a working path on the ReadyWorks server where temporary files are held during processing, and one of 17 authentication methods. Each job under that connection adds a method type, an endpoint path beneath the domain, optional query, header or body parameters, the JSON node that holds the records, and a destination staging table. The response is parsed into rows and columns and written to that table in the ETL5 staging database, where the rest of the platform picks it up.

Every inbound job gets the full retrieval toolkit: five pagination modes (record offset, page number, a node naming the next record, a node naming the next page, or none) and three nested levels of enumeration. Enumeration runs a keys call first, then repeats the data call once per key, substituting the key into the endpoint path as a %token%. Between them, one job can cover an API that insists on a call per tenant, per site or per device, and an API that returns results a hundred at a time.

In ReadyWorks terms this is how a system joins the estate without waiting for a purpose-built connector. Whatever the API returns (hardware inventory, licence assignments, user records, ticket queues, backup coverage) lands in staging alongside everything else and can be reconciled against the assets, people and applications already in the data fabric. That is what turns a standalone tool’s export into something you can plan a migration or a refresh around.

The connector is bidirectional. The outbound side takes a list of fields from ReadyWorks, encodes them as JSON or as form data, sends them to an endpoint with the method you choose, and reads named fields back out of the response so the result of each call is recorded against the record that triggered it. Fields flagged as URI are substituted into the endpoint path rather than the body, which is how you address a specific object in a REST path.

NOTE: Most of the vendor REST connectors in the catalogue are clones of one of these 17 methods. A vendor connector’s original_auth_type names the method it was cloned from, and what that connector adds on top is usually a default domain, a fixed endpoint, a set of job templates and relabelled credential fields. If a vendor connector behaves in a way you did not expect, the recipe described on this page is normally the explanation.

NOTE: Both shipped job templates are skeletons. Neither carries an endpoint, and both are disabled. Clone one, fill in the endpoint, the return data node and the pagination settings, then enable it.

Connector Properties

Property Value
Identifier JSON Rest API
Name Generic Rest JSON API
Description Connector for pulling and processing JSON data from a REST API link
Job Types Both Inbound and Outbound
Order 60
Enabled Yes
Locked Yes
Block Update No
Single Authentication No
Windows Only No
Connector Version 2025-11-18
Hooks None
Additional Job Fields None
Image

Authentication Methods

The connector ships 17 authentication methods, all driven by json_rest_api.php. Each one is a recipe in two halves: pre is the authentication call and post is every data call that follows it. Methods holding a static credential place it in the pre header set and make no separate call. Methods that exchange a credential for a token POST to the authentication end point you supply, read the token out of the response using the JSON node you name, and carry it into every data call as %auth_data%.

Method Identifier Base Method Script Order Enabled Config Fields
No Authentication JSON Rest API_none JSON Rest API_none json_rest_api.php 10 Yes 4
API-Key JSON Rest API_key JSON Rest API_key json_rest_api.php 20 Yes 5
Bearer Token JSON Rest API_token JSON Rest API_token json_rest_api.php 30 Yes 5
Header: x-auth JSON Rest API_xauth JSON Rest API_xauth json_rest_api.php 40 Yes 5
Header: X-API-KEY JSON Rest API_xapikey JSON Rest API_xapikey json_rest_api.php 50 Yes 5
Custom Header Fields JSON Rest API_custom JSON Rest API_custom json_rest_api.php 60 No 4
Basic Authorization: Username / Password JSON Rest API_user JSON Rest API_user json_rest_api.php 70 Yes 6
POST username / password – return session cookie JSON Rest API_user_sess JSON Rest API_user_sess json_rest_api.php 80 Yes 8
Get/Set Session Cookie from API Token JSON Rest API_token_cook JSON Rest API_token_cook json_rest_api.php 85 Yes 6
POST username / password – return bearer token JSON Rest API_user_token JSON Rest API_user_token json_rest_api.php 90 Yes 8
POST username / password – return authorization token JSON Rest API_user_auth JSON Rest API_user_auth json_rest_api.php 100 Yes 8
POST key / secret – return bearer token JSON Rest API_key_token JSON Rest API_key_token json_rest_api.php 110 Yes 8
POST key / secret – return auth-token JSON Rest API_key_auth JSON Rest API_key_auth json_rest_api.php 120 Yes 8
MS Graph Credentials GET Bearer Token JSON Rest API_ms_graph JSON Rest API_ms_graph json_rest_api.php 130 Yes 9
GSSAPI JSON Rest API_gssapi JSON Rest API_gssapi json_rest_api.php 140 Yes 8
POST username / password / domain – return bearer token JSON Rest API_cohesity JSON Rest API_cohesity json_rest_api.php 150 Yes 9
Digest Authentication with username / password JSON Rest API_jetpatch JSON Rest API_jetpatch json_rest_api.php 160 Yes 6

NOTE: Every method in this connector disables TLS certificate verification. SSL_VERIFYHOST and SSL_VERIFYPEER are both set to false on the authentication call and on the data calls, and the connector definition is locked, so this cannot be changed in the UI. Traffic to an HTTPS endpoint is still encrypted, and the certificate presented by the server is accepted without being checked against a trust store or matched to the host name.

NOTE: Single Authentication defaults to No on all 17 methods. With it set to No, ReadyWorks repeats the authentication call on every pagination and enumeration loop. On the nine methods that perform a token exchange that is an extra token request per page and per enumerated key, which is enough to trip rate limits and to fill the vendor’s audit log with login events. Set it to Yes unless the token expires faster than a job runs.

NOTE: Credential fields (auth_value_1 through auth_value_6, and Password) are stored encrypted. Username, the Text Value fields and the API Domain are stored in clear.

NOTE: API Domain is the scheme and host only. Endpoint paths belong on the job, in API End Point, which accepts %token% substitution so a path can carry an enumerated key, a pagination offset or a credential.

Method 1: No Authentication (JSON Rest API_none)

Connect to a GET method API with no authentication

No credential is sent. Data calls go straight to the endpoint carrying a browser user agent and nothing else. Use it for a genuinely open API, for an internal service reachable only on a trusted network, or for an endpoint that carries its own key in the query string, which you add on the job as an API Data Parameter. It is also the method to choose when the API expects a header shape that none of the other 16 methods produce: leave the connection unauthenticated and add the header per job as an API Data Parameter with the Header box ticked.

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
ENCODING '' Not set

Method 2: API-Key (JSON Rest API_key)

Connect to a GET method API with an API-Key

Collects a single API Key into the encrypted auth_value_1 field. Be aware that the shipped recipe carries no headers and no body on either the authentication call or the data calls, so selecting this method and pasting a key does not by itself put the key on the wire. Until that is corrected, treat this method as No Authentication plus a place to store the key, and attach the key yourself on each job through API Data Parameters with the Header box ticked, referencing it as %auth_value_1%. If the API expects a conventional header, one of the Bearer Token, x-auth or X-API-KEY methods will be less work.

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

NOTE: The shipped authentication_data for this method contains no headers and no body. Selecting API-Key does not place the key on any request. See the issues section below.

Method 3: Bearer Token (JSON Rest API_token)

Connect to a GET method API with a bearer token

Takes a bearer token you already hold and sends it as Authorization: Bearer <token> with Content-Type: application/json. There is no exchange and no expiry handling, so the token has to be a long-lived one: a personal access token, a service account token, or an API key the vendor happens to accept in the Authorization header. This is the right choice for the large number of platforms that issue a static token from an admin console and expect it back verbatim. If the vendor’s token expires on a short cycle, pick one of the POST methods that fetches a fresh token instead.

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 Yes 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

Method 4: Header: x-auth (JSON Rest API_xauth)

Connect to a GET method API with an x-auth token

Identical in shape to Bearer Token, sending the stored value as a bare x-auth: header with Content-Type: application/json. Use it for APIs that define their own authentication header rather than reusing the standard Authorization header, which is common on appliance and storage management interfaces. The value is stored encrypted in auth_value_1.

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 X-Auth Token password Yes 64000 Enter x-auth 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
x-auth: %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

Method 5: Header: X-API-KEY (JSON Rest API_xapikey)

Connect to a GET method API with a x-api-key token

Sends the stored value as an X-API-KEY: header with Content-Type: application/json. Functionally this is the x-auth method under a different header name, and you pick between them purely on what the vendor’s documentation says the header is called. One difference is worth knowing: this method stores the key in the user_pass column rather than in auth_value_1, so the value does not carry across if you later switch the connection to a different 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)
50 X-API Key password No 64000 Enter x-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

Headers sent on the authentication call:

Header Value Base64
Content-Type: application/json Off
X-API-KEY: %user_pass% 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 key is stored in the user_pass column, unlike the other key-bearing methods, which use auth_value_1. Switching an existing connection to or from this method means re-entering the key.

Method 6: Custom Header Fields (JSON Rest API_custom)

Connect to a GET method API with custom header fields

Lets you define an arbitrary list of header name and value pairs on the connection, which are then sent on every call. It was the escape hatch for APIs whose header requirements none of the fixed methods matched. It is disabled in the shipped catalogue and the underlying Custom Header Fields template is marked deprecated in favour of the authentication fields. Use No Authentication with per-job API Data Parameters marked as headers to achieve the same result.

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)
210 Custom Header Fields fields_list Yes Enter the list of custom header fields for 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

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

NOTE: This method is disabled in the shipped catalogue and does not appear in the connection form.

Method 7: Basic Authorization: Username / Password (JSON Rest API_user)

Connect to a GET method API with a username / password

Standard HTTP Basic authentication. Username and Password are both required, and ReadyWorks assembles username:password, Base64-encodes it and sends it as Authorization: Basic. There is no separate authentication call, so the credential goes on every data request. Pick this when the vendor documents Basic auth and expects the credential on each call, which is still the norm for appliance APIs and for older on-premises consoles. Note that the password is sent on every request, so the Single Authentication setting makes no difference to the number of credential exposures here.

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 Yes 1024 Enter username of the Connection
50 Password password Yes 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

Method 8: POST username / password – return session cookie (JSON Rest API_user_sess)

Connect to a POST method API with a user/ password retrieving value for session cookie request header

A session-based exchange. ReadyWorks POSTs to the Session ID End Point with the username and password Base64-encoded in an Authorization: Basic header, reads the returned session identifier out of the JSON node you name in Session ID JSON Node, and sends it on every subsequent data call as a Cookie: header. Choose it for APIs that hand out a session on login and then expect that session back as a cookie, a pattern common in virtualisation and storage management consoles. You must fill in both the end point and the JSON node; neither is marked required on the form, and the method cannot work without them.

Connection Configuration Fields (8)

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
190 Session ID End Point text No 500 Enter API end point to request a session ID for a username / password
200 Session ID JSON Node text No 255 Enter JSON data node for session ID
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

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
Cookie: %auth_data% 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
POST true Same

NOTE: Session ID End Point and Session ID JSON Node are both optional on the form and both mandatory in practice.

Method 9: Get/Set Session Cookie from API Token (JSON Rest API_token_cook)

Use an API Token to get, and then set, a session value

For APIs that trade a long-lived API token for a short-lived session cookie. The authentication call carries the >SetCookie directive, which tells the driver to capture whatever Set-Cookie headers the response returns into a cookie jar, and every data call carries >GetCookie, which replays them. The API Token itself is not placed in a header by the recipe, so put it in the end point: the API Token Get Session End Point field accepts %token% substitution, which lets you write something like /auth/session?token=%auth_value_1%. Use this when the vendor’s login call answers with a Set-Cookie rather than with a token in the response body.

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)
60 API Token password Yes 64000 Enter API token of the Connection
190 API Token Get Sesstion End Point text No 500 Enter API end point to get a session cookie
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
>SetCookie Off
Content-Type: application/json Off

Headers sent on the data calls:

Header Value Base64
>GetCookie Off
Content-Type: application/json 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
POST true Same

NOTE: The API Token Get Session End Point field accepts %token% substitution, which is how the API Token reaches the authentication call.

Method 10: POST username / password – return bearer token (JSON Rest API_user_token)

Connect to a POST method API with a username / password retrieving value for bearer token

POSTs to the Bearer Token End Point with the username and password Base64-encoded in an Authorization: Basic header, extracts the token from the JSON node named in Bearer Token JSON Node, and sends it on every data call as Authorization: Bearer. This is the most common shape among modern enterprise APIs: log in with a credential, get a short-lived bearer token, use the token. Pick it over the plain Bearer Token method whenever the token expires, because ReadyWorks fetches a fresh one each run. Both the end point and the JSON node must be filled in for the method to work.

Connection Configuration Fields (8)

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
190 Bearer Token End Point text No 500 Enter API end point to request a bearer token for a username / password
200 Bearer Token JSON Node text No 255 Enter JSON data node for bearer token
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

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
Authorization: Bearer %auth_data% 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
POST true Same

NOTE: Bearer Token End Point and Bearer Token JSON Node are both optional on the form and both mandatory in practice.

Method 11: POST username / password – return authorization token (JSON Rest API_user_auth)

Connect to a POST method API with a username / password retrieving value for authorization token

POSTs a JSON body of {"username": ..., "password": ...} to the Authentication Token End Point, extracts the token from the node you name, and sends it on the data calls in a bare Authorization: header with no Bearer prefix. The distinction from the bearer variant is entirely in those two details: the credential travels in the request body rather than in a Basic header, and the token is sent unprefixed. Match this against what the vendor’s documentation shows in its example request, because an API that wants Authorization: Bearer <token> will reject the value this method sends.

Connection Configuration Fields (8)

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
190 Authentication Token End Point text No 500 Enter API end point to request an authentication token for a username / password
200 Authentication Token JSON Node text No 255 Enter JSON data node for authentication token
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

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
Authorization: %auth_data% Off

Authentication request body:

Key Value
username %user_name%
password %user_pass%

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
POST true Same

Method 12: POST key / secret – return bearer token (JSON Rest API_key_token)

Connect to a POST method API with a key/ secret retrieving value for bearer token

Machine-to-machine authentication with a Client Id and Client Secret. Both are POSTed as form-urlencoded fields named client_id and client_secret to the Auth-Token End Point, and the token read from the response is sent as Authorization: Bearer. Use it where the vendor issues an application credential pair rather than a user login, which is the usual arrangement for integrations that must survive staff changes. The request body carries only the two credential fields, so an OAuth 2.0 token endpoint that insists on grant_type or scope will reject it; for Microsoft Entra, use the MS Graph method instead.

Connection Configuration Fields (8)

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 Server Temporary Working Path
60 Client Id password Yes 64000 Enter Client id of the connection
70 Client Secret password Yes 64000 Enter Client secret of the connection
190 Auth-Token End Point text Yes 500 Enter API end point to request an auth-token
200 Auth-Token JSON Node text No 255 Enter JSON data node for auth-token
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/x-www-form-urlencoded Off

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
Authorization: Bearer %auth_data% Off

Authentication request body:

Key Value
client_id %auth_value_1%
client_secret %auth_value_2%

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
POST true Same

Method 13: POST key / secret – return auth-token (JSON Rest API_key_auth)

Connect to a POST method API with a key/ secret retrieving value for auth-token

The same credential pair under different names. An API Key and a Secret Key are POSTed as a JSON body with the keys apiKey and secretKey, and the token returned is sent on data calls in an auth-token: header. Choose between this and the key/secret bearer method by looking at two things in the vendor’s documentation: whether the login body field names are apiKey/secretKey or client_id/client_secret, and whether the resulting token is presented as auth-token or as Authorization: Bearer.

Connection Configuration Fields (8)

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 Server Temporary Working Path
60 API Key password Yes 64000 Enter API key of the connection
70 Secret Key password Yes 64000 Enter Secret key of the connection
190 Auth-Token End Point text Yes 500 Enter API end point to request an auth-token
200 Auth-Token JSON Node text No 255 Enter JSON data node for auth-token
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

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
auth-token: %auth_data% Off

Authentication request body:

Key Value
apiKey %auth_value_1%
secretKey %auth_value_2%

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
POST true Same

Method 14: MS Graph Credentials GET Bearer Token (JSON Rest API_ms_graph)

Connect to a MS Graph method API with application credentials retrieving GET bearer token for data calls.

OAuth 2.0 client credentials against Microsoft Entra ID for calling Microsoft Graph. You supply the directory (tenant) Id, the application (client) Id and a client secret from an Entra app registration. ReadyWorks POSTs client_id, client_secret, grant_type=client_credentials and scope=https://graph.microsoft.com/.default as form data to the token endpoint, which defaults to https://login.microsoftonline.com/%auth_value_1%/oauth2/v2.0/token, reads access_token out of the reply and sends it as Authorization: Bearer. Everything the app registration has been granted application permissions for is then reachable: Intune managed devices, Entra users and groups, licence assignments, Autopilot registrations. The grant type and the scope are fixed in the locked connector definition, so this method issues Graph tokens only.

Connection Configuration Fields (9)

Order Label Type Required Default Max Len Tooltip
10 API Domain text Yes https://graph.microsoft.com 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 Tenant Id password Yes 64000 Enter Microsoft Graph directory (tenant) Id of the Connection
70 App ID / Client ID password Yes 64000 Enter Microsoft Graph application (application / client) Id of the Connection
80 Client Secret password Yes 64000 Enter Microsoft Graph client secret of the Connection
190 OAuth POST Request Full URI text Yes https://login.microsoftonline.com/%auth_value_1%/oauth2/v2.0/token 500 Enter URI to send a POST OAuth request to the identity platform to acquire an access token
200 Access Token JSON Node text No access_token 255 Enter JSON data node for access token
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/x-www-form-urlencoded Off

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
Authorization: Bearer %auth_data% Off

Authentication request body:

Key Value
client_id %auth_value_2%
client_secret %auth_value_3%
grant_type client_credentials
scope https://graph.microsoft.com/.default

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
POST true Same

NOTE: The scope is fixed at https://graph.microsoft.com/.default inside the locked connector definition. This method cannot be repurposed to obtain a token for a different Entra-protected API.

Method 15: GSSAPI (JSON Rest API_gssapi)

Connect to a GET method API with GSSAPI

Kerberos, through libcurl’s SPNEGO negotiation (HTTPAUTH set to the negotiate value, with unrestricted authentication and a cookie jar enabled on both the authentication and the data calls). The ReadyWorks host must already hold a valid Kerberos ticket for the service principal, because the method uses the host’s credential cache rather than sending a password. Use it for intranet APIs published behind Windows Integrated Authentication or behind a Kerberised reverse proxy, where a username and password would not be accepted. The Password, end point and header node fields appear on the form but are not referenced by the recipe.

Connection Configuration Fields (8)

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
190 Username / Password API End Point text No 500 Enter username / password POST API end point of the Connection
200 Username / Password Request Header Node text No 255 Enter username / password request header node 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

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
HTTPAUTH 4 Same
USERPWD %user_name% Same
UNRESTRICTED_AUTH true Same
COOKIEFILE Same

NOTE: The connection form offers Password, Username / Password API End Point and Username / Password Request Header Node. None of the three is referenced by the authentication recipe.

Method 16: POST username / password / domain – return bearer token (JSON Rest API_cohesity)

Authentication used for Cohesity (Storage Solution)

A three-part credential login, built originally for Cohesity. Username, Password and Domain are POSTed as a JSON body to the Bearer Token End Point, which defaults to /irisservices/api/v1/public/accessTokens, and the value at the accessToken node is sent on the data calls as Authorization: Bearer. The domain field is what distinguishes it: use this method for any API whose login body needs a third field alongside the username and password, typically an Active Directory domain or a tenant name. Change the end point and the JSON node defaults if you are pointing it at something other than Cohesity.

Connection Configuration Fields (9)

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 Yes 1024 Enter username of the Connection
50 Password password Yes 64000 Enter password of the Connection
60 Domain password Yes 64000 Enter domain of the Connection
190 Bearer Token End Point text Yes /irisservices/api/v1/public/accessTokens 500 Enter API end point to request a bearer token
200 Bearer Token JSON Node text Yes accessToken 255 Enter JSON data node for bearer token
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

Headers sent on the data calls:

Header Value Base64
Content-Type: application/json Off
Authorization: Bearer %auth_data% Off

Authentication request body:

Key Value
username %user_name%
password %user_pass%
domain %auth_value_1%

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
POST true Same

Method 17: Digest Authentication with username / password (JSON Rest API_jetpatch)

Used for JetPatch Digest Authentication API

HTTP Digest authentication, handled by libcurl (HTTPAUTH set to CURLAUTH_DIGEST with the username and password in USERPWD) on both the authentication call and the data calls. Digest challenges the client with a nonce and receives a hash rather than the password itself, so the password never crosses the wire in a reusable form. Named for JetPatch, it works for any API that answers with a WWW-Authenticate: Digest challenge. Pick it when Basic authentication returns 401 and the response header names Digest.

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

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
USERPWD %user_name%:%user_pass% Same
HTTPAUTH !!CURLAUTH_DIGEST Same

Inbound Job Fields Enabled (44)

Inbound jobs expose 44 fields, effectively the entire set the ETL5 engine offers for an HTTP source: request method and endpoint, parameters and raw body, the response node to parse, five pagination modes, three nested levels of enumeration, and retry behaviour.

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
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 Pagination Limit text No Enter request pagination 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 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: API End Point, API Data Parameters, Raw JSON Body Data, API Return Data Node, API Pagination Node, Pagination Termination Node, the enumeration paths, nodes and field lists and Additional Fields all accept %token% substitution at run time. That is what lets one job walk a collection or iterate a set of keys.

NOTE: Retry Pause takes three values: how many times to retry a failed call, how many seconds to wait between attempts, and the API timeout in seconds. Set it on any job pointing at an API that rate-limits or occasionally stalls, because the default is no retry.

NOTE: Pause Enumeration takes two values, a call count and a number of seconds, and inserts a wait every so many calls. Use it together with Kill Enumeration on Error when enumerating over more than a few hundred keys.

NOTE: Several job settings carried on the job record are not exposed on this connector’s form, including Allow Empty Table, Convert UUID-Keyed Objects to Rows, Append Files to Same Destination Table and Ignore XML Attributes.

Outbound Job Fields Enabled (13)

Outbound jobs expose 13 fields: the request method and endpoint, how the payload is encoded, the list of fields sent, the response fields read back into ReadyWorks, and an optional raw JSON template that replaces the generated body entirely.

Order Label Type Required Default Tooltip
10 Job Description text Yes Enter description of the Job
30 Enabled radio Yes Yes Choose if Job is enabled
50 Log Raw API Calls radio Yes No Choose if raw API calls are logged
170 Method Type select Yes GET Select method type of the Job
180 Data Sending Method select Yes JSON Encoded Data Select method for sending the outbound data
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
260 Return Data Fields List fields_list Yes Enter return data fields of the Job
530 Outbound Fields List fields_list Yes Enter outbound fields of the Job
540 Ignore Empty Outbound Fields radio No Yes Ignore, and do not include, any outbound fields that are empty and have no data
550 Raw JSON Outbound Template textarea No Enter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields.
560 Order text Yes Enter order of the Job

NOTE: In Outbound Fields List, a field with the URI box ticked is substituted into the endpoint path as %<name>% rather than added to the body. That is how you address a specific object, for example PATCH /devices/%device_id%.

NOTE: Method Type defaults to GET on a new outbound job. Most outbound work needs POST, PUT or PATCH, so set it deliberately.

NOTE: Return Data Fields List uses dotted paths to reach into the response, so a nested value is addressed as data.record_key. The values it names are written back against the ReadyWorks record that triggered the call, which is what gives you a per-record success or failure trail.

Inbound Job Templates (1)

One inbound template ships. It is a skeleton for you to clone rather than a job that does anything on its own, and it is disabled.

# Job Description Destination Table API End Point Enabled What It Pulls
1 Rest GET API api_data Not set No A blank GET job writing to a staging table called api_data. It carries no endpoint, no return data node and no pagination, so it exists to give you the correct field defaults as a starting point for a real job.

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: Clone the template rather than editing it, and give each job its own destination table name. Leaving several jobs pointed at api_data means they overwrite one another.

Outbound Job Templates (1)

One outbound template ships, and like the inbound one it is a disabled skeleton.

# Job Description Method API End Point Enabled What It Does
1 Rest POST API POST Not set No A blank POST job that sends a single JSON-encoded field, record_key, to an endpoint you supply, and reads status, message and data.record_key back out of the response. It is the starting shape for any push: one identifying field out, a status and a message back.

Job Template Configuration

Settings

Setting Value
Order 10
Enabled No
Log Raw API Calls No
Method Type POST
Body Data Sending Method JSON Encoded Data
Data Sending Method JSON Encoded Data
Ignore Empty Outbound Fields Yes

Job Parameters and Enumeration

Rest POST API

Outbound fields list:

Label Name Type Required Pattern
Record Key record_key String on

Return data fields:

Label Name
Return Status status
Return Message message
Record Key data.record_key

NOTE: The template sends JSON. Switch Data Sending Method to Form Data for APIs that expect application/x-www-form-urlencoded, and use Raw JSON Outbound Template when the API needs a nested body structure that the flat outbound field list cannot express.