API v1 - API extract profile
The API Extract Profile endpoint allows the API to view the extract profiles created in your Matillion ETL instance. The data is returned unflattened or nested in the form of a single-column JSON structure. As part of this endpoint, you can export and import more than one API extract profile and/or RSD files contained in your Matillion ETL instance.
Prerequisites
- To use Matillion ETL API services, you must know how to make REST API calls, either by employing a REST API GUI client such as Postman, or employing a command line interface (CLI) like cURL.
- If you are new to Matillion ETL's API, read our Matillion API introduction and explore the v1 API map.
- Requires the Matillion ETL instance URL, the user's username and password, with appropriate permissions, and the name of the API Extract Profile and/or RSD file to be exported or imported.
Note
- The username and password of a user with access to the API extract profiles within a Matillion ETL instance will need to be used to authenticate the connection. These may need to be specified before the command when using a command-line tool—for example:
-u user:password
. - When exporting or importing API extract profiles or RSD files, the source file or content type and target file will also need to be specified.
- There is no API method for specifically exporting or importing all RSD files in an API extract profile, because this can be done when exporting or importing the API extract profile itself.
- Matillion ETL can currently only use API extract profiles that are formatted in JSON.
Using the API
Return extract profiles from a Matillion ETL instance by making a GET or POST call with the form:
<InstanceAddress>/rest/v1/apiextractprofile/<endpoint>
Note
<InstanceAddress>/rest/v1/apiextractprofile
is the base URI for all API extract profile endpoints. Add the specific <endpoint>
information for each function, documented in the below sections.
Where:
<instanceAddress>
is the URI of your Matillion ETL instance in the formhttp://host:port
.<endpoint>
is the name of the API endpoint that accomplishes the task you want to perform. These endpoints are documented in the following sections.
Get apiextractprofile
Returns a list of API extract profiles in this Matillion ETL instance.
To return a list of API extract profiles, make the following GET call:
<InstanceAddress>/rest/v1/apiextractprofile
A successful GET call to the endpoint will return the following response from the server, in JSON format:
{
"<APIExtractProfileName>"
}
Get export
Exports one or more API profiles, and/or their RSD files from this Matillion ETL instance.
To export the entire list of API extract profiles, make the following GET call:
<InstanceAddress>/rest/v1/apiextractprofile/export
To export a single API extract profile, make the following GET call:
<InstanceAddress>/rest/v1/apiextractprofile/name/<apiextractprofile>/export
Where <apiextractprofile>
is the name of your chosen API profile extract in this Matillion ETL instance to be exported.
A GET call to the endpoint will return the following response from the server for a single API extract profile, in JSON format:
{
"objects": [
{
"connectorName": "example",
"endpoints": [
{
"endpointName": "abc",
"connectorName": "Example",
"description": "",
"endpointUri": "https://api.example.com/v1/bpi/currentprice.json",
"httpRequestType": "GET",
"pagingEnabled": false,
"pagingType": null,
"endpointSchema": "{\\"schema\\":{\\"type\\":\\"struct\\",\\"objectcontents\\":{\\"chartName\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"bpi\\":{\\"type\\":\\"struct\\",\\"objectcontents\\":{\\"EUR\\":{\\"type\\":\\"struct\\",\\"objectcontents\\":{\\"symbol\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"rate_float\\":{\\"precision\\":8,\\"scale\\":3,\\"type\\":\\"DOUBLE PRECISION\\"},\\"code\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"rate\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"description\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"}}},\\"GBP\\":{\\"type\\":\\"struct\\",\\"objectcontents\\":{\\"symbol\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"rate_float\\":{\\"precision\\":9,\\"scale\\":4,\\"type\\":\\"DOUBLE PRECISION\\"},\\"code\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"rate\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"description\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"}}},\\"USD\\":{\\"type\\":\\"struct\\",\\"objectcontents\\":{\\"symbol\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"rate_float\\":{\\"precision\\":9,\\"scale\\":4,\\"type\\":\\"DOUBLE PRECISION\\"},\\"code\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"rate\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"description\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"}}}}},\\"time\\":{\\"type\\":\\"struct\\",\\"objectcontents\\":{\\"updateduk\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"},\\"updatedISO\\":{\\"type\\":\\"TIMESTAMP\\"},\\"updated\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"}}},\\"disclaimer\\":{\\"size\\":2000,\\"type\\":\\"VARCHAR\\"}}}}",
"schemaType": "UNFLATTENED_NO_REPEAT_ELEMENT",
"authEnabled": false,
"authType": "",
"authScheme": "",
"pagingSizeParameter": null,
"pagingSize": null,
"nextAbsoluteUriDataKey": null,
"pagingOffsetParameter": null,
"pagingTotalItemsParameter": null,
"params": []
}
]
},
],
"version": "1.48.7",
"environment": "redshift"
}
Post import
Import one or more API Profiles, and/or their RSD files into this Matillion ETL instance. This will be a POST method API call, as it will have to attach the project in the body as a JSON file to import into this Matillion ETL instance.
To import one or more API profiles and/or their RSD files, make the following POST call:
<InstanceAddress>/rest/v1/apiextractprofile/import
The POST body should contain the following, in JSON format:
{
"objects": [
{
"connectorName": "example",
"endpoints": [ ]
}
],
"version": "1.48.7",
"environment": "redshift"
}
A successful POST call to the endpoint will return the following response from the server, in JSON format:
{
"name": "API Extracts",
"statusList": [
{
"success": true,
"name": "example"
}
],
"success": true
}
Contact us
If any help is needed navigating the API extract profile API in Matillion ETL, read Getting Support.