Back to how-to articles
Spatial Database of Planted Trees (SDPT) v2.0 x Global Forest Watch API
Last updated: July 3, 2025

Before you get started
If you are new to the Global Forest Watch API, it is a good idea to begin with the foundational guide. It covers essential steps like signing up, getting access token and API key. You can find it here:
Steps
- Find the version of the dataset
- Find the fields to query
- Make a query
Find the version
To receive data about the Spatial Database on Planted Trees, you can use a GET
request to the /dataset/gfw_planted_forests
endpoint.
1curl -X GET 'https://data-api.globalforestwatch.org/dataset/gfw_planted_forests'
If successful, this will return a response like this, with metadata and versions:
1{
2 "data": {
3 "created_on": "2020-12-07T16:17:45.611627",
4 "updated_on": "2025-01-28T15:40:13.573967",
5 "dataset": "gfw_planted_forests",
6 "is_downloadable": true,
7 "metadata": {
8 ...
9 },
10 "versions": [
11 ...
12 "v20231128",
13 "v20239998"
14 ]
15 },
16 "status": "success"
17}
For the next steps you can pick a specific version of the dataset or just use /latest
for the latest version.
Find the relevant fields
Before querying the dataset, you will need to know what fields to get from the dataset. To retrieve this, you can use a GET
request to dataset/gfw_planted_forests/latest/fields
1curl -L -X GET 'https://data-api.globalforestwatch.org/dataset/gfw_planted_forests/latest/fields'
(See available fields from the query result below)
Query dataset
In addition to the dataset identifier gfw_planted_forests
and version, you need to construct an SQL
query. Optionally for vector data sets you can also add a geometry to limit the area of interest.
Limit data to area of interest
There are two ways to do this; using Geostore, or using GeoJson in a Post request. Both methods require geojson format. The possible geometry types available in Global Forest Watch is Polygon and MultiPolygon. To easily generate this format, visit https://geojson.io.
Using POST request with a polygon
Example using polygon:
1curl -L -X POST 'https://data-api.globalforestwatch.org/dataset/gfw_planted_forests/latest/query/json' \
2 -H 'x-api-key: <YOUR_API_KEY>' \
3 -H 'Content-Type: application/json' \
4 --data-raw '{
5 "sql": "SELECT * FROM results LIMIT 1" ,
6 "geometry": {
7 "type": "Polygon",
8 "coordinates": [[
9 [-57.39,-20.27],
10 [-57.39, 23.22],
11 [-54.44,-23.22],
12 [-54.44, 20.27],
13 [-57.39,-20.27]
14 ]]
15 }
16}'
If successful the response will look something like this:
1{
2 "data": [
3 {
4 "gfw_fid": 7018408,
5 "final_id": "BRA_21",
6 "iso": "BRA",
7 "country": "Brazil",
8 "org_name": "Large industrial plantation, Eucalyptus, transparent world",
9 "org_code": 21,
10 "final_code": 21,
11 "common_name": "Eucalyptus",
12 "species": "Eucalyptus sp.",
13 "species_simp": "Wood fiber / timber",
14 "plant_ag": "Planted forest",
15 "timber_ag": "Timber",
16 "ever_dec": "Evergreen",
17 "conifer_broad": "Broadleaf",
18 "hard_soft": "Hardwood",
19 "size": "Large Industrial",
20 "ownership": "Unknown",
21 "source": "Petersen et al. (2016)",
22 "creation_year": "year: 2013-2014",
23 "method": "Manual polygon delineation/supervised classification",
24 "growth": 20.290746,
25 "sd_error": 7.257563612,
26 "grow_source": "IPCC 2019 Refinement: MAI values in Table 4.11",
27 "shape_length": 0.0110629621166011,
28 "shape_area": 3.73301445210546e-6,
29 "geom": "0106000020E6100000010000000103000000010000001C000000C07100E0DD534BC0807CFF9F7EB505C0D8820020DB534BC00077F3BF39B605C050AE0020D4534BC0000EFE3FC9B605C0B8B9FFBFD3534BC0004409E026B705C04826FF7FEB534BC0008306C058B705C018AC0040FC534BC08072FCFF45B705C0B036FF9F10544BC000470A8039B705C0C0CFFFBF1F544BC000470A8039B705C0686CFFBF2F544BC0805D03C03FB705C0D01EFF3F3C544BC0805D02202DB705C000A000C04D544BC080C8FB1FFBB605C0009FFF5F4F544BC00095FFFF5EB705C0A084FF9F53544BC08071062001B805C0184900C05B544BC0002B0CC045B805C04821FF9F63544BC000D10580EEB705C040D700A06C544BC0003C0080BCB705C02859FF9F5A544BC000DE062091B605C04089FFDF52544BC0001A0380C9B505C070CAFF5F48544BC0009BF1FFBCB505C00809FFBF3F544BC0803BF21F8BB505C0681300A03C544BC08062068046B505C0707DFFFF2C544BC0809BF23F59B505C0C0CFFFBF1F544BC0000908A0B0B505C0C8EF002019544BC00083F61FA4B505C03054FFDF0B544BC0807CFF9F7EB505C0E878008004544BC000F80C4040B505C05856FFBFE3534BC080B8F25F27B505C0C07100E0DD534BC0807CFF9F7EB505C0",
30 "geom_wm": "0106000020110F0000010000000103000000010000001C0000007C0D4F7F973557C1A807AC5CBF7112C140CF6629953557C1E98F31775E7212C169BC74378F3557C1BCC7297AD87212C11F85EBE58E3557C18D2A1815287312C1EBFBA911A33557C103FF217D527312C13D03784BB13557C104DEE08B427312C118166A99C23557C14C431CEB377312C1443EE871CF3557C14C431CEB377312C10BD7A308DD3557C1C3907E3B3D7312C1696666A6E73557C1FD777A652D7312C1ED384583F63557C1129C33E2027312C1BF7493E4F73557C11B4D84CD577312C157499D80FB3557C1119D80A6E17312C19D5E2967023657C14C92CBFF1B7412C11AE25817093657C156847CD0D17312C1780B24BC103657C14FA8354DA77312C12A5C8F72013657C1C8A4BDC1A87212C1247E8CDDFA3557C1BD4A5906FF7112C1E261A1F2F13557C155787A65F47112C1C86F5F9FEA3557C150A370FDC97112C1B39DEFF7E73557C1C5E53FA48F7112C1C098BBB2DA3557C155CF66959F7112C1443EE871CF3557C181E3F2DFE97112C1B5627FD1C93557C13B12143FDF7112C1BF64AA90BE3557C1A807AC5CBF7112C10DBE304DB83557C1E297DD538A7112C1DF1DA77C9C3557C166FA5C2D757112C17C0D4F7F973557C1A807AC5CBF7112C1",
31 "gfw_area__ha": "4.58997773876339",
32 "gfw_geostore_id": "0c6aea80-150d-866a-030f-c892d7f76757",
33 "gfw_geojson": "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[-54.6552085878534,-2.71362042425568],[-54.6551246645446,-2.71397733651872],[-54.6549110415768,-2.71425104135574],[-54.6548995970401,-2.71442961719777],[-54.6556243892524,-2.71452474613068],[-54.6561355593951,-2.7144889830509],[-54.6567573543701,-2.7144651415955],[-54.6572189330177,-2.7144651415955],[-54.657707214087,-2.71447706232328],[-54.6580886836724,-2.71444153792589],[-54.6586227419903,-2.71434617030269],[-54.6586723325872,-2.71453666685795],[-54.6588020322463,-2.71484589595474],[-54.6590499879259,-2.71497678792127],[-54.6592903133156,-2.71481037156821],[-54.6595649723154,-2.71471500397411],[-54.6590156552141,-2.7141439916702],[-54.6587791440711,-2.71376323708978],[-54.6584587096194,-2.71373939472267],[-54.6581954951562,-2.71364426572785],[-54.6581001282091,-2.71351337451443],[-54.6576232907781,-2.7135491367257],[-54.6572189330177,-2.71371579193612],[-54.6570167545866,-2.71369194956822],[-54.6566123959277,-2.71362042425568],[-54.6563873293215,-2.7135014537771],[-54.6553878781094,-2.71345400771594],[-54.6552085878534,-2.71362042425568]]]]}",
34 "gfw_bbox": [
35 "-54.6595649723154",
36 "-2.71497678792127",
37 "-54.6548995970401",
38 "-2.71345400771594"
39 ],
40 "created_on": "2021-03-19T20:08:45.266597",
41 "updated_on": "2021-03-19T20:08:45.266597"
42 }
43 ],
44 "status": "success"
45}
You can read more about Geostore and constructing SQL queries from in the Global Forest Watch tutorial.