> For the complete documentation index, see [llms.txt](https://openet.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://openet.gitbook.io/docs/reference/api-reference/raster.md).

# Raster

## Timeseries Point

{% hint style="info" %}
**Note**: daily data is limited to 10 year retrievals for this endpoint.
{% endhint %}

Supports queries against OpenET's raster datasets for timeseries data summarized for a single point.&#x20;

## Point

> Provides support for queries against the OpenET raster datasets summarized a point.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Point":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"overpass":{"type":"boolean","title":"Return only the satellite observations","default":false},"geometry":{"items":{"type":"number"},"type":"array","format":"[longitude, latitude]","title":"Geometry"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"file_format":{"type":"string","title":"Output Extension","options":["csv","json"]}},"type":"object","required":["date_range","interval","geometry","model","variable","reference_et","file_format"],"title":"Point","description":"Raster timeseries point model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/timeseries/point":{"post":{"tags":["Retrieve Raster Data"],"summary":"Point","description":"Provides support for queries against the OpenET raster datasets summarized a point.","operationId":"point_raster_timeseries_point_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Point"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/timeseries/point' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2020-01-01",
    "2020-12-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.36322,
    38.87626
  ],
  "model": "Ensemble",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm",
  "file_format": "JSON"
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2020-01-01",
    "2020-12-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.36322,
    38.87626
  ],
  "model": "Ensemble",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm",
  "file_format": "JSON"
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/timeseries/point"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Timeseries Polygon

{% hint style="info" %}
**Note**: daily data is limited to 10 year retrievals for this endpoint.
{% endhint %}

Provides support for queries against OpenET's raster datasets summarized for a polygon specified by a list of longitude latitude pairs.&#x20;

## Polygon

> Provides support for queries against the OpenET raster datasets summarized for a polygon.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Polygon":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"overpass":{"type":"boolean","title":"Return only the satellite observations","default":false},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"geojson":{"additionalProperties":true,"type":"object","format":"RFC 7946 geoJSON specification","title":"GeoJSON"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"reducer":{"type":"string","title":"Pixel Reducer","options":["max","mean","median","min","mode","sum"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"file_format":{"type":"string","title":"Output Extension","options":["csv","json"]}},"type":"object","required":["date_range","interval","model","variable","reference_et","reducer","file_format"],"title":"Polygon","description":"Raster timeseries polygon model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/timeseries/polygon":{"post":{"tags":["Retrieve Raster Data"],"summary":"Polygon","description":"Provides support for queries against the OpenET raster datasets summarized for a polygon.","operationId":"polygon_raster_timeseries_polygon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Polygon"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/timeseries/polygon' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2021-01-01",
    "2021-12-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "SIMS",
  "variable": "ETo",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm",
  "file_format": "JSON"
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2021-01-01",
    "2021-12-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "SIMS",
  "variable": "ETo",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm",
  "file_format": "JSON"
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/timeseries/polygon"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Timeseries Multipolygon

{% hint style="info" %}
**Note**: daily data is limited to 1 year retrievals for this endpoint.
{% endhint %}

Provides support timeseries queries against OpenET's raster datasets summarized for multiple polygons specified by an Earth Engine asset ID or temporary uploaded `GeoJSON` file. For more information on Earth Engine assets, see the [Earth Engine](/docs/additional-resources/earth-engine.md) page.

The results of this endpoint will generate a **5 minute** retrieval link for a *`.CSV`* file. Each request will include the spatial aggregation of your choice with the area and volume of each polygon. See [FAQ](/docs/additional-resources/faq.md) for requirements for an asset ID.&#x20;

For large regions, please use [#export-multipolygon](#export-multipolygon "mention").

## Multipolygon

> Provides support for queries against the OpenET raster datasets summarized for multiple polygons.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Multipolygon":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"overpass":{"type":"boolean","title":"Return only the satellite observations","default":false},"asset_id":{"type":"string","title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"attributes":{"items":{"type":"string"},"type":"array","title":"Attributes of Feature Collection","remember":"Must contain primary key"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reducer":{"type":"string","title":"Pixel Reducer","options":["max","mean","median","min","mode","sum"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]}},"type":"object","required":["date_range","interval","asset_id","attributes","model","variable","reducer","reference_et"],"title":"Multipolygon","description":"Raster timeseries multipolygon model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/timeseries/multipolygon":{"post":{"tags":["Retrieve Raster Data"],"summary":"Multipolygon","description":"Provides support for queries against the OpenET raster datasets summarized for multiple polygons.","operationId":"multipolygon_raster_timeseries_multipolygon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multipolygon"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/timeseries/multipolygon' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2019-01-01",
    "2019-12-31"
  ],
  "interval": "monthly",
  "asset_id": "projects/openet/api_demo_features",
  "attributes": [
    "id"
  ],
  "reducer": "mean",
  "model": "ptJPL",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm"
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2019-01-01",
    "2019-12-31"
  ],
  "interval": "monthly",
  "asset_id": "projects/openet/api_demo_features",
  "attributes": [
    "id"
  ],
  "reducer": "mean",
  "model": "ptJPL",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm"
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/timeseries/multipolygon"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## GeoTIFF Composite

Allows the user to define a region of interest and request a subset of OpenET's monthly raster datasets as a single temporal aggregated composite raster GeoTIFF. Each image will be clipped to the geometry provided and have a maximum return size of **32 MB**. Note, `asset_id` can be used in place of `geometry`. See [FAQ](/docs/additional-resources/faq.md) for requirements for an asset ID.&#x20;

The results of this endpoint will generate a **5 minute** retrieval link for a *`.TIFF`* file. Data return is in a `JSON` format.&#x20;

For large regions use [#export-composite](#export-composite "mention").

## Composite

> Provides support for queries against the OpenET monthly raster datasets summarized as a composite GeoTIFF.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Composite":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"reducer":{"type":"string","title":"Pixel Reducer","options":["max","mean","median","min","mode","sum"]},"resample":{"type":"integer","title":"Pixel Resample in Meters","default":0,"options":[0,10,20,30]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]}},"type":"object","required":["date_range","model","variable","reference_et","reducer"],"title":"Composite","description":"Raster geotiff composite model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/geotiff/composite":{"post":{"tags":["Retrieve Raster Data"],"summary":"Composite","description":"Provides support for queries against the OpenET monthly raster datasets summarized as a composite GeoTIFF.","operationId":"composite_raster_geotiff_composite_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Composite"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/geotiff/composite' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2018-01-01",
    "2018-06-30"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "PTJPL",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm"
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2018-01-01",
    "2018-06-30"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "PTJPL",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm"
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/geotiff/composite"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## GeoTIFF Stack

{% hint style="info" %}
**Note**: retrieval is limited to 31 time steps per request. Each file counts as an individual request.
{% endhint %}

Allows the user to define a region of interest and request a subset of OpenET's raster datasets as multiple stacks of raster GeoTIFFs. Each image will be clipped to the geometry provided and have a maximum return size of **32 MB**. Note: `asset_id` can be used in place of `geometry`. See [FAQ](/docs/additional-resources/faq.md) for requirements for an asset ID.&#x20;

The results of this endpoint will generate **5 minute** retrieval links for a list of *`.TIFF`* files. Data return is in a `JSON` format.&#x20;

For large regions use [#export-stack](#export-stack "mention") endpoint.

## Stack

> Provides support for queries against the OpenET raster datasets summarized for a stack of GeoTIFFs.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Stack":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"overpass":{"type":"boolean","title":"Return only the satellite observations","default":false},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"resample":{"type":"integer","title":"Pixel Resample in Meters","default":0,"options":[0,10,20,30]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]}},"type":"object","required":["date_range","interval","model","variable","reference_et"],"title":"Stack","description":"Raster geotiff stack model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/geotiff/stack":{"post":{"tags":["Retrieve Raster Data"],"summary":"Stack","description":"Provides support for queries against the OpenET raster datasets summarized for a stack of GeoTIFFs.","operationId":"stack_raster_geotiff_stack_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stack"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/geotiff/stack' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2020-01-01",
    "2020-03-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "EEmetric",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm"
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2020-01-01",
    "2020-03-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "EEmetric",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm"
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/geotiff/stack"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Export Composite

Allows the user to define a region of interest and export a subset of OpenET's monthly raster datasets as a single temporal aggregated composite raster GeoTIFF. Each image will be clipped to the geometry provided. Note, `asset_id` can be used in place of `geometry`. See [FAQ](/docs/additional-resources/faq.md) for requirements for an asset ID.&#x20;

Data return in `JSON` format includes:

* Tracking identifier
* Encryption boolean
* Generated file name

To track your file, see the [#export-file-tracking](#export-file-tracking "mention") endpoint. To retrieve your exported files, use the [Account](/docs/reference/api-reference/account.md#account-storage) endpoint.  If your account is linked with Earth Engine, the exported files by default will be found in the *`OpenET Exports`* folder in the root of your Google Drive. If the `bucket` parameter is passed to override the export location to a private bucket, the export will go their instead if it is shared properly. For more detailed information on data exporting, see the [FAQ](/docs/additional-resources/faq.md).

## Composite Export

> Provides export support for large queries against the OpenET monthly raster datasets summarized as a monthly composite GeoTIFF.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Composite_Export":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"reducer":{"type":"string","title":"Pixel Reducer","options":["max","mean","median","min","mode","sum"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"encrypt":{"type":"boolean","title":"Encrypt File","default":false,"remember":"Output file can be decrypted with the API"},"cog":{"type":"boolean","title":"Cloud Optimized GeoTIFF format","description":"Opt for a cloud optimized version","default":false},"drive_folder":{"type":"string","title":"Root Google Drive Export Directory","default":"OpenET Exports","remember":"Avoid the use of special characters"},"resample":{"type":"integer","title":"Pixel Resample in Meters","default":0,"options":[0,10,20,30]}},"type":"object","required":["date_range","model","variable","reference_et","reducer"],"title":"Composite_Export","description":"Raster geotiff export model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/export/composite":{"post":{"tags":["Retrieve Raster Data"],"summary":"Composite Export","description":"Provides export support for large queries against the OpenET monthly raster datasets summarized as a monthly composite GeoTIFF.","operationId":"composite_export_raster_export_composite_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Composite_Export"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/export/composite' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2018-01-01",
    "2018-06-30"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "DisALEXI",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm",
  "encrypt": false
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2018-01-01",
    "2018-06-30"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "DisALEXI",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm",
  "encrypt": False
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/export/composite"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Export Stack

{% hint style="info" %}
**Note**: retrieval is limited to 31 time steps per request. Each file counts as an individual request.
{% endhint %}

Allows the user to define a region of interest and export a subset of OpenET's raster datasets as multiple stacks of raster GeoTIFFs. Each image will be clipped to the geometry provided. Note, `asset_id` can be used in place of `geometry`. See [FAQ](/docs/additional-resources/faq.md) for requirements for an asset ID.&#x20;

Data return in `JSON` format includes:

* Tracking identifier
* Encryption boolean
* Generated file name

To track your file, see the [#export-file-tracking](#export-file-tracking "mention") endpoint. To retrieve your exported files, use the [Account](/docs/reference/api-reference/account.md#account-storage) endpoint.  If your account is linked with Earth Engine, the exported files by default will be found in the *`OpenET Exports`* folder in the root of your Google Drive. If the `bucket` parameter is passed to override the export location to a private bucket, the export will go their instead if it is shared properly. For more detailed information on data exporting, see the [FAQ](/docs/additional-resources/faq.md).

## Stack Export

> Provides export support for large queries against the OpenET raster datasets summarized as a stack of GeoTIFFs.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Stack_Export":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"overpass":{"type":"boolean","title":"Return only the satellite observations","default":false},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"resample":{"type":"integer","title":"Pixel Resample in Meters","default":0,"options":[0,10,20,30]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"encrypt":{"type":"boolean","title":"Encrypt File","default":false,"remember":"Output file can be decrypted with the API"},"cog":{"type":"boolean","title":"Cloud Optimized GeoTIFF format","description":"Opt for a cloud optimized version","default":false},"drive_folder":{"type":"string","title":"Root Google Drive Export Directory","default":"OpenET Exports","remember":"Avoid the use of special characters"}},"type":"object","required":["date_range","interval","model","variable","reference_et"],"title":"Stack_Export","description":"Raster geotiff stack export model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/export/stack":{"post":{"tags":["Retrieve Raster Data"],"summary":"Stack Export","description":"Provides export support for large queries against the OpenET raster datasets summarized as a stack of GeoTIFFs.","operationId":"stack_export_raster_export_stack_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stack_Export"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/export/stack' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2020-01-01",
    "2020-03-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "EEmetric",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm",
  "encrypt": false
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2020-01-01",
    "2020-03-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "EEmetric",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm",
  "encrypt": False
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/export/stack"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Export Multipolygon

{% hint style="info" %}
**Note**: Daily data is limited to 1 year retrievals for this endpoint.
{% endhint %}

Provides support for large timeseries queries against OpenET's raster datasets summarized for multiple polygons specified by an Earth Engine asset ID or temporary uploaded `GeoJSON` file. For more information on Earth Engine assets, see the [Earth Engine](/docs/additional-resources/earth-engine.md) page and see [FAQ](/docs/additional-resources/faq.md) for requirements for an asset ID.&#x20;

Data return in `JSON` format includes:

* Tracking identifier
* Encryption boolean
* Generated file name

To track your file, see the [#export-file-tracking](#export-file-tracking "mention") endpoint. To retrieve your exported files, use the [Account](/docs/reference/api-reference/account.md#account-storage) endpoint. If your account is linked with Earth Engine, the exported files by default will be found in the *`OpenET Exports`* folder in the root of your Google Drive. If the `bucket` parameter is passed to override the export location to a private bucket, the export will go their instead if it is shared properly. For more detailed information on data exporting, see the [FAQ](/docs/additional-resources/faq.md).

## Multipolygon Export

> Provides export support for large queries against the OpenET raster datasets summarized for multiple polygons.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Multipolygon_Export":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"overpass":{"type":"boolean","title":"Return only the satellite observations","default":false},"asset_id":{"type":"string","title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"attributes":{"items":{"type":"string"},"type":"array","title":"Attributes of Feature Collection","remember":"Must contain primary key"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"reducer":{"type":"string","title":"Pixel Reducer","options":["max","mean","median","min","mode","sum"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"encrypt":{"type":"boolean","title":"Encrypt File","default":false,"remember":"Output file can be decrypted with the API"},"drive_folder":{"type":"string","title":"Root Google Drive Export Directory","default":"OpenET Exports","remember":"Avoid the use of special characters"}},"type":"object","required":["date_range","interval","asset_id","attributes","model","variable","reference_et","reducer"],"title":"Multipolygon_Export","description":"Raster timeseries multipolygon export model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/export/multipolygon":{"post":{"tags":["Retrieve Raster Data"],"summary":"Multipolygon Export","description":"Provides export support for large queries against the OpenET raster datasets summarized for multiple polygons.","operationId":"multipolygon_export_raster_export_multipolygon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multipolygon_Export"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/export/multipolygon' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2019-01-01",
    "2019-12-31"
  ],
  "interval": "monthly",
  "asset_id": "projects/openet/api_demo_features",
  "attributes": [
    "id"
  ],
  "model": "ptJPL",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm",
  "encrypt": false
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2019-01-01",
    "2019-12-31"
  ],
  "interval": "monthly",
  "asset_id": "projects/openet/api_demo_features",
  "attributes": [
    "id"
  ],
  "model": "ptJPL",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "mean",
  "units": "mm",
  "encrypt": False
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/export/multipolygon"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Export File Tracking

Provides support for tracking OpenET export queries. If the job is found it will return one of four states, the export type, and attempt number:

1. `UNSUBMITTED`
2. <mark style="color:blue;">`RUNNING`</mark>
3. <mark style="color:green;">`SUCCEEDED`</mark>
4. <mark style="color:red;">`FAILED`</mark>

Once an export state returns `SUCCEEDED` you may use the [Account](/docs/reference/api-reference/account.md#account-storage) endpoint to retrieve the link within **7 days**. If your account is linked with Earth Engine the export will be found in the *`OpenET Exports`* folder in the root of your Google Drive.&#x20;

If a job has `FAILED` you will see the *error* field in the return with details. If you are using a custom bucket to override the default export location, you must set the IAM permission of the bucket correctly or the job will fail to write (see the [FAQ](/docs/additional-resources/faq.md)). If you experience continued failed requests contact OpenET [support](https://openetdata.org/contact/).&#x20;

{% hint style="info" %}
**Note**: it is not unusual to see a job in the *PENDING* state for long periods. It just means there is high traffic to the API during this time.&#x20;
{% endhint %}

## Track

> Provides tracking support a file in the OpenET queue.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/export/track":{"get":{"tags":["Retrieve Raster Data"],"summary":"Track","description":"Provides tracking support a file in the OpenET queue.","operationId":"track_raster_export_track_get","parameters":[{"name":"tracking_id","in":"query","required":true,"schema":{"type":"string","title":"Tracking Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'GET' \
  'https://openet-api.org/raster/export/track?tracking_id=YOUR_TRACKING_ID' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' 
```

{% endtab %}

{% tab title="Python" %}

<pre class="language-python"><code class="lang-python">import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "tracking_id": YOUR_TRACKING_ID
}

# query the api 
resp = requests.get(
    headers=header,
<strong>    params=args,
</strong>    url="https://openet-api.org/raster/export/track"
)

print(resp.json())
</code></pre>

{% endtab %}
{% endtabs %}

## Raster Metadata

Exposes metadata as a `JSON` from an OpenET raster dataset summarized for a region specified by the user. Results will vary based on the collection being queried. An example set is shown below:

#### Response Fields:

* **`model_name`**: Name of the OpenET model used, e.g., "openet-geesebal".
* **`model_version`**: Version of the OpenET model, e.g., "0.2.2".
* **`tool_name`**: Name of the tool used for data processing, e.g., "scene\_interpolate\_mgrs\_export".
* **`tool_version`**: Version of the tool used, e.g., "0.2.1".
* **`core_version`**: Core version of the OpenET system, e.g., "0.1.2".
* **`start_date`**, **`end_date`**: Date range for the dataset period.
* **`interp_method`**: Interpolation method used, e.g., "LINEAR".
* **`interp_days`**: Number of days for interpolation, e.g., 32.
* **`cloud_cover_max`**: Maximum cloud cover percentage allowed in the dataset, e.g., 70.
* **`scale_factor_et`**, **`scale_factor_count`**: Scaling factors used for evapotranspiration (ET) and other counts.
* **`et_reference_band`**: Reference band used for ET calculation, e.g., "eto".
* **`et_reference_resample`**: Resampling method used for ET reference, e.g., "nearest".
* **`et_reference_factor`**: Scaling factor for ET reference.
* **`build_date`**: The date on which the data was ingested into the system, in `YYYY-MM-DD` format.
* **`mgrs_tile`**: MGRS tile code for the region queried.

{% hint style="success" %}
**Special**: The *build\_date* result will be the date of the most recent update from OpenET to the source collection. Note, this may be called *date\_ingested* for older collections.&#x20;
{% endhint %}

## Metadata

> Provides support for queries against the OpenET raster metadata.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Metadata":{"properties":{"interval":{"type":"string","title":"Interval","options":["daily","monthly"]},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]}},"type":"object","required":["interval","model","variable","reference_et"],"title":"Metadata","description":"Raster metadata model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/metadata":{"post":{"tags":["Retrieve Raster Data"],"summary":"Metadata","description":"Provides support for queries against the OpenET raster metadata.","operationId":"metadata_raster_metadata_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metadata"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/metadata' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "geeSEBAL",
  "variable": "ET",
  "reference_et": "gridMET"
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "geeSEBAL",
  "variable": "ET",
  "reference_et": "gridMET"
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/metadata"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Tile Cache

Returns a map id and token in `JSON` format, suitable for generating a map overlay from an OpenET raster dataset. Generated cache will expire after **2 hours**. Supports super sampling of ET data up to 10x10m pixels.&#x20;

## Tile Cache

> Provides support for dynamic tile generation from OpenET's raster datasets.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Tile_Cache":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"reducer":{"type":"string","title":"Pixel Reducer","options":["max","mean","median","min","mode","sum"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"resample":{"type":"integer","title":"Pixel Resample in Meters","default":0,"options":[0,10,20,30]},"gradient":{"additionalProperties":true,"type":"object","format":"{\"min\", \"max\", \"hex\"}","title":"Color Gradient"}},"type":"object","required":["date_range","model","variable","reference_et","reducer","gradient"],"title":"Tile_Cache","description":"Raster tile cache model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/visual/tile_cache":{"post":{"tags":["Retrieve Raster Data"],"summary":"Tile Cache","description":"Provides support for dynamic tile generation from OpenET's raster datasets.","operationId":"tile_cache_raster_visual_tile_cache_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tile_Cache"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/visual/tile_cache' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2021-10-01",
    "2021-11-05"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "Ensemble",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "sum",
  "units": "mm",
  "resample": 0,
  "gradient": {
    "min": 0,
    "max": 100,
    "palette": [
      "#9e6212",
      "#dcdd45",
      "#44b36c",
      "#2a3f65"
    ]
  }
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2021-10-01",
    "2021-11-05"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "Ensemble",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "sum",
  "units": "mm",
  "resample": 0,
  "gradient": {
    "min": 0,
    "max": 100,
    "palette": [
      "#9e6212",
      "#dcdd45",
      "#44b36c",
      "#2a3f65"
    ]
  }
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/visual/tile_cache"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}

## Animation

Use an OpenET raster dataset to create an ***900x900px*** `.gif` animation and film strip of corresponding images accessible by temporary url for 2 hours. Supports super sampling of data in 10 meter intervals up to *10x10m* pixels.&#x20;

## Animate

> Provides support for gif and image animation from OpenET's raster datasets.

```json
{"openapi":"3.1.0","info":{"title":"OpenET API","version":"3.0.0"},"security":[{"APIKeyHeader":[]}],"components":{"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"Authorization"}},"schemas":{"Animate":{"properties":{"date_range":{"items":{"type":"string","format":"date"},"type":"array","format":"[YYYY-MM-DD, YYYY-MM-DD]","title":"Time Range"},"geometry":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"format":"[longitude, latitude, ...]","title":"Geometry"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EE Shapefile Table ID","remember":"Share with openet@googlegroups.com"},"model":{"type":"string","title":"OpenET Model","options":["disalexi","eemetric","ensemble","geesebal","ptjpl","sims","ssebop"]},"variable":{"type":"string","title":"Variable","options":["count","et","eto","etr","etof","et_mad_max","et_mad_min","model_count","ndvi","pr","etaw"]},"reference_et":{"type":"string","title":"Reference ET Source","options":["cimis","gridmet","era5land","fret"]},"version":{"type":"number","title":"OpenET Image Collection Version","default":"2.1","options":[2,2.1]},"units":{"type":"string","title":"Output Units","default":"mm","options":["in","mm"]},"resample":{"type":"integer","title":"Pixel Resample in Meters","default":0,"options":[0,10,20,30]},"gradient":{"additionalProperties":true,"type":"object","format":"{\"min\", \"max\", \"hex\"}","title":"Color Gradient"}},"type":"object","required":["date_range","model","variable","reference_et","gradient"],"title":"Animate","description":"Raster animation model class."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/raster/visual/animate":{"post":{"tags":["Retrieve Raster Data"],"summary":"Animate","description":"Provides support for gif and image animation from OpenET's raster datasets.","operationId":"animate_raster_visual_animate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Animate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

Take a look at how you might call this method:

{% tabs %}
{% tab title="curl" %}

```bash
curl -X 'POST' \
  'https://openet-api.org/raster/visual/animate' \
  -H 'accept: application/json' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "date_range": [
    "2021-10-01",
    "2021-11-05"
  ],
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "Ensemble",
  "variable": "ET",
  "reference_et": "gridMET",
  "reducer": "sum",
  "units": "mm",
  "resample": 0,
  "gradient": {
    "min": 0,
    "max": 100,
    "palette": [
      "#9e6212",
      "#dcdd45",
      "#44b36c",
      "#2a3f65"
    ]
  }
}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# set your API key before making the request
header = {"Authorization": YOUR_API_KEY}

# endpoint arguments
args = {
  "date_range": [
    "2021-01-01",
    "2021-12-31"
  ],
  "interval": "monthly",
  "geometry": [
    -121.00747,
    44.2442,
    -121.00747,
    44.24742,
    -121.00295,
    44.24742,
    -121.00295,
    44.24422
  ],
  "model": "Ensemble",
  "variable": "ET",
  "reference_et": "gridMET",
  "units": "mm",
  "resample": 0,
  "gradient": {
    "min": 0,
    "max": 100,
    "palette": [
      "#9e6212",
      "#dcdd45",
      "#44b36c",
      "#2a3f65"
    ]
  }
}

# query the api 
resp = requests.post(
    headers=header,
    json=args,
    url="https://openet-api.org/raster/visual/animate"
)

print(resp.json())
```

{% endtab %}
{% endtabs %}
