# Extract

## Introduction

Extraction is the process by which USE (Unified Scriptable Extractor) retrieves data from external locations. The following types of data source are supported:

| Type         | Description                                                                                                                                                                             |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **APIs**     | Typically, usage data is retrieved from the API or APIs provided by the cloud (or clouds) for which reports need to be generated. This is usually a REST API accessed via HTTP/S.       |
| **Files**    | A file on the local file-system or on a shared volume. This is usually a CSV, JSON or XML file.                                                                                         |
| **Exivity**  | In some cases it is useful to retrieve information from Exivity itself, such that accounts and usage data that were created historically can be incorporated into the daily processing. |
| **Database** | Arbitrary SQL queries can be executed against an SQL server either via a direct connection string or via an ODBC DSN.                                                                   |
| **Web**      | Arbitrary HTTP queries can be invoked in order to retrieve information from any web page accessible from the Exivity server.                                                            |

## USE script

A *USE script* is required for USE to operate. Further information can be found via the links below:

An introductory overview of the scripting language:

{% content-ref url="extract/basics-1" %}
[basics-1](https://olddocs.exivity.io/3.4.3/data-pipelines/extract/basics-1)
{% endcontent-ref %}

A reference guide for the USE scripting language:

{% content-ref url="extract/language" %}
[language](https://olddocs.exivity.io/3.4.3/data-pipelines/extract/language)
{% endcontent-ref %}

How to parse XML and JSON data

{% content-ref url="extract/parslets" %}
[parslets](https://olddocs.exivity.io/3.4.3/data-pipelines/extract/parslets)
{% endcontent-ref %}

Template scripts that can be used as starting points for common data sources:

{% content-ref url="extract/templates" %}
[templates](https://olddocs.exivity.io/3.4.3/data-pipelines/extract/templates)
{% endcontent-ref %}
