# 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](https://openet.gitbook.io/docs/additional-resources/earth-engine "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention") 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-storage](https://openet.gitbook.io/docs/reference/account#account-storage "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention").

## 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](https://openet.gitbook.io/docs/additional-resources/faq "mention") 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-storage](https://openet.gitbook.io/docs/reference/account#account-storage "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention").

## 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](https://openet.gitbook.io/docs/additional-resources/earth-engine "mention") page and see [faq](https://openet.gitbook.io/docs/additional-resources/faq "mention") 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-storage](https://openet.gitbook.io/docs/reference/account#account-storage "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention").

## 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-storage](https://openet.gitbook.io/docs/reference/account#account-storage "mention") 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](https://openet.gitbook.io/docs/additional-resources/faq "mention")). 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://openet.gitbook.io/docs/reference/api-reference/raster.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
