Simple, Composable, Open Source ETL

Singer powers data extraction and consolidation for all of your organization’s tools.

See It in Action

Join us on Slack

The open-source standard for writing scripts that move data.

Singer describes how data extraction scripts—called “taps” —and data loading scripts—called “targets”— should communicate, allowing them to be used in any combination to move data from any source to any destination. Send data between databases, web APIs, files, queues, and just about anything else you can think of.

Try it

For example, these two simple commands pull currency exchange rate data from Exchangeratesapi.io into a CSV file:

Check out the directory of taps and targets for more data sources and destinations.

          › pip install target-csv tap-exchangeratesapi
          › tap-exchangeratesapi | target-csv
              INFO Replicating the latest exchange rate data from exchangeratesapi.io
              INFO Tap exiting normally
          › cat exchange_rate.csv
          AUD,BGN,BRL,CAD,CHF,CNY,CZK,DKK,GBP,HKD,HRK,HUF,IDR,ILS,INR,JPY,KRW,MXN,MYR,NOK,NZD,PHP,PLN,RON,RUB,SEK,SGD,THB,TRY,ZAR,EUR,USD,date
          1.3023,1.8435,3.0889,1.3109,1.0038,6.869,25.47,7.0076,0.79652,7.7614,7.0011,290.88,13317.0,3.6988,66.608,112.21,1129.4,19.694,4.4405,8.3292,1.3867,50.198,4.0632,4.2577,58.105,8.9724,1.4037,34.882,3.581,12.915,0.9426,1.0,2017-02-24T00:00:00Z
        

Check out the directory of taps and targets for more data sources and destinations.

Features

Singer Taps

Taps extract data from any source and write it to a standard stream in a JSON-based format.

Singer Targets

Targets consume data from taps and do something with it, like load it into a file, API or database.

How to contribute

Join us on Slack to collaborate with hundreds of members of the Singer community.

Check out the Singer GitHub to learn more and see what projects are in the works.