ESA Sentinel Search & Download API
Clone or download
jonas-eberle Merge pull request #5 from johntruckenbrodt/master
restructuring into Python package
Latest commit 68102a2 Jan 31, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
sentinel_api improved zipfile validation Jan 31, 2018
LICENSE.txt initial commit Jul 24, 2017 adjusted including example files Jul 24, 2017 minor style edits Jul 24, 2017 added directive 'include_package_data = True' Jul 24, 2017

ESA Sentinel Search & Download API

With this API you can easily search and download scenes from the ESA Copernicus program using the ESA Sentinels Scientific Data Hub. It has been developed for data acquisition at Friedrich-Schiller-University Jena, Department for Earth Observation ( and is part of the EU-H2020 Satellite-based Wetland Observation Service (SWOS) project (


Needed Python libraries:

  • GDAL
  • Shapely
  • requests
  • progressbar

On Windows, using PIP you can install GDAL and Shapely with the whl packages from Gohlke:

The API has been tested with Python2.7 under Unix and Windows 7.

Usage of API in Python

Please see,, and with three examples.

To load features/geometries you can use either the "load_sites" method given a geospatial file or the "set_geometries" method to directly set a geometry in the Well-known-Text (Wkt) format.

Please note: Using the "set_geometries" method the projection has to be in Lat/Long, EPSG:4326.

The "search" method can be used with further parameters according to the OpenSearch protocol from the ESA Data Hub (see "productType" and "sensoroperationalmode" as an example below):


import sentinel_api as api

# use username and password for ESA DATA Hub authentication
username = '****YOUR_ESA_DATA_HUB_USERNAME****'
password = '****YOUR_ESA_DATA_HUB_PASSWORD****'

# please also specify the Hub URL:
# All Sentinel-1 and -2 scenes beginning from 15th Nov. 2015:
# All historic Sentinel-1 scenes:
s1 = api.SentinelDownloader(username, password, api_url='')

# set directory for
# - filter scenes list with existing files
# - set directory path for data download

# load geometries from shapefile

# search for scenes with some restrictions (e.g., minimum overlap 1%)'S1A*', min_overlap=0.01, start_date='2015-12-01', date_type='beginPosition', productType='GRD', sensoroperationalmode='IW')

# add another search query (e.g., for Sentinel-1B); both search results will be merged'S1B*', min_overlap=0.01, start_date='2015-12-01', date_type='beginPosition', productType='GRD', sensoroperationalmode='IW')

# you can either write results to a bash file for wget or download files directly in this script
# s1.write_results('wget', '')


For now, please see the docstrings for each method within the code or within python

import sentinel_api as api