Digital Earth Africa Scene Search: Satellite Scenes by Collection, Area and Date
digitalearthafrica/search-items
Searches Digital Earth Africa's satellite data catalogue (STAC) for scenes of one collection, such as s2_l2a (Sentinel-2), ls8_sr (Landsat 8), wofs_ls (water observations) or rainfall_chirps_monthly, optionally within a bounding box and a date or date range. Returns up to 20 scenes with id, footprint, acquisition time, product properties and links to the data files, plus the total number of matching scenes and an offset to page. Catalogue metadata only: the files themselves are not fetched. Large collections can take 25 seconds without a date range or box. Use the catalogue root tool for collection ids. Digital Earth Africa data, passed through unmodified and served by Eden Engine; not an official Digital Earth Africa product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Catalogue metadata from Digital Earth Africa (digitalearthafrica.org), Open Data Cube Explorer STAC API. Each product has its own licence and credit line, which the catalogue links to; check it before reusing the files a scene points to. Served by Eden Engine; not an official Digital Earth Africa product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "digitalearthafrica/search-items" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "digitalearthafrica/search-items" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "digitalearthafrica/search-items", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "digitalearthafrica/search-items", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 21, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"collection",
"limit"
],
"properties": {
"bbox": {
"type": "string",
"pattern": "^-?[0-9]{1,3}(\\.[0-9]+)?(,-?[0-9]{1,3}(\\.[0-9]+)?){3}$",
"description": "Optional bounding box as west,south,east,north in decimal degrees (WGS84), no spaces, for example 36.7,-1.4,36.9,-1.2 (Nairobi). Leave out for the whole collection."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many scenes to return, 1 to 20. Required."
},
"offset": {
"type": "integer",
"maximum": 99999,
"minimum": 0,
"description": "Number of scenes to skip, for reading the next page (the `_o` value of the `next` link). Leave out to start at the first scene."
},
"datetime": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?(/[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?)?$",
"description": "Optional date or range: 2024-01-15, 2024-01-01/2024-01-31 or 2024-01-01T00:00:00Z/2024-01-31T23:59:59Z (UTC). Leave out for all dates. A date range keeps large collections fast."
},
"collection": {
"enum": [
"alos_palsar_mosaic",
"cci_landcover",
"cgls_landcover",
"cgls_lwq100_2019_2024",
"cgls_lwq100_2024_nrt",
"cgls_lwq300_2002_2012",
"cgls_lwq300_2016_2024",
"cgls_lwq300_2024_nrt",
"crop_mask",
"crop_mask_central",
"crop_mask_eastern",
"crop_mask_indian_ocean",
"crop_mask_northern",
"crop_mask_sahel",
"crop_mask_southeast",
"crop_mask_southern",
"crop_mask_western",
"dem_cop_30",
"dem_cop_90",
"dem_srtm",
"dem_srtm_deriv",
"esa_worldcereal_activecropland",
"esa_worldcereal_maize_active",
"esa_worldcereal_maize_irrigation",
"esa_worldcereal_maize_main",
"esa_worldcereal_temporarycrops",
"esa_worldcereal_wintercereals",
"esa_worldcereal_wintercereals_irrigation",
"esa_worldcover",
"esa_worldcover_2020",
"esa_worldcover_2021",
"fc_ls",
"fc_ls_summary_annual",
"gm_ls5_ls7_annual",
"gm_ls5_ls7_annual_lowres",
"gm_ls8_annual",
"gm_ls8_annual_lowres",
"gm_ls8_ls9_annual",
"gm_ls8_ls9_annual_lowres",
"gm_s2_annual",
"gm_s2_annual_lowres",
"gm_s2_rolling",
"gm_s2_semiannual",
"gm_s2_semiannual_lowres",
"gmw",
"io_lulc",
"io_lulc_v2",
"isda_soil_bedrock_depth",
"isda_soil_bulk_density",
"isda_soil_carbon_total",
"isda_soil_clay_content",
"isda_soil_sand_content",
"isda_soil_silt_content",
"iwmi_beneficial_fraction_monthly",
"iwmi_blue_et_monthly",
"iwmi_et_fraction_monthly",
"iwmi_evaporation_monthly",
"iwmi_evaporative_stress_index_monthly",
"iwmi_green_et_monthly",
"iwmi_interception_monthly",
"iwmi_number_of_rainy_days_monthly",
"iwmi_transpiration_monthly",
"jers_sar_mosaic",
"landsat_c2l2_ar",
"ls5_sr",
"ls5_st",
"ls7_sr",
"ls7_st",
"ls8_sr",
"ls8_st",
"ls9_sr",
"ls9_st",
"nasadem",
"ndvi_anomaly",
"ndvi_climatology_ls",
"rainfall_chirps_daily",
"rainfall_chirps_monthly",
"s1_monthly_mosaic",
"s1_rtc",
"s2_l2a",
"s2_l2a_c1",
"s3_ol_2_wfr_nrt",
"s3_olci_l2_lfr",
"s3_olci_l2_wfr",
"s3_slstr_l2_lst",
"s3_syn_2_vg1",
"s5p_tropomi_l2_aer_ai",
"s5p_tropomi_l2_ch4",
"s5p_tropomi_l2_cloud",
"s5p_tropomi_l2_co",
"s5p_tropomi_l2_hcho",
"s5p_tropomi_l2_no2",
"s5p_tropomi_l2_o3",
"s5p_tropomi_l2_so2",
"wapor_soil_moisture",
"wofs_ls",
"wofs_ls_summary_alltime",
"wofs_ls_summary_annual",
"wq_annual",
"wsf_2015",
"wsf_2019",
"wsf_evolution"
],
"type": "string",
"description": "The collection id to search, for example s2_l2a (Sentinel-2), ls8_sr (Landsat 8 surface reflectance), wofs_ls (water observations from Landsat) or rainfall_chirps_monthly. The catalogue root tool lists them."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"type",
"features"
],
"properties": {
"type": {
"type": "string",
"description": "Always FeatureCollection."
},
"links": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"features": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The scene or tile dataset id."
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"description": "[west, south, east, north]."
},
"type": {
"type": "string",
"description": "Always Feature."
},
"links": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"assets": {
"type": "object",
"description": "The files of the scene: each asset has an `href` (usually an s3:// URL) and a `type`. This tool lists them; it does not fetch them.",
"additionalProperties": true
},
"geometry": {
"type": [
"object",
"null"
],
"description": "The footprint, a GeoJSON geometry.",
"additionalProperties": true
},
"collection": {
"type": "string"
},
"properties": {
"type": "object",
"description": "Acquisition time (`datetime`, or `start_datetime` and `end_datetime` for products spanning a period), platform and product-specific fields.",
"additionalProperties": true
},
"stac_version": {
"type": "string"
}
},
"additionalProperties": true
},
"description": "The scenes. Empty when nothing matches; that is not an error."
},
"numberMatched": {
"type": "integer"
},
"numberReturned": {
"type": "integer"
}
},
"description": "A STAC FeatureCollection: `features` is the page, `numberMatched` the total matching scenes and `numberReturned` the page size. A `next` link in `links` carries the offset of the next page.",
"additionalProperties": true
}