L’utilisation avancĂ©e des APIs GEODES requiert Ă minima l’accĂšs Ă un terminal et Ă l’outil en ligne de commande Curl.
L’outil Postman offre Ă©galement une IHM facilitant la dĂ©couverte du catalogue GEODES et de ses APIs.
Optionnel :
- Il peut parfois ĂȘtre nĂ©cessaire de configurer un proxy en exportant la variable suivante : export https_proxy=<proxy>
1. Rechercher via l’API STAC
L’API STAC GEODES est accessible depuis la landing page : https://geodes-portal.cnes.fr/api/stac.
Elle expose les endpoints :
- /collections : Permet de rechercher des jeux de données
- /items: Permet de rechercher des produits
- /collections/#collectionId : Permet de rechercher une collection spécifique à partir de son id
- /collections/#collectionId/items: Permet de rechercher les items d’une une collection spĂ©cifique Ă partir de son id
- /collections/#collectionId/items/#itemId: Permet de rechercher un item spĂ©cifique d’une une collection spĂ©cifique Ă partir de l’id de la collection et de l’id de l’item.
Les opĂ©rateurs supportĂ©s par l’API STAC GEODES sont :
| Mot clé | Utilité | Exemple |
|---|---|---|
| eq | Chercher une valeur exacte | “sat:relative_orbit” : {“eq”:51} |
| neq | Chercher les valeurs diffĂ©rentes | “platform”:{“neq”:”S1B”} |
| in | Chercher plusieurs valeurs | “sar:polarizations”: {“in”: [“VV”,”VV VH”]} |
| contains | Contient une valeur | “mission”: {“contains”:”theia”} |
| lte | Cherche des valeurs infĂ©rieures ou Ă©gales Ă | “eo:cloud_cover”:{“lte”:30} |
| gte | Cherche des valeurs supĂ©rieures ou Ă©gales Ă | “start_datetime”:{“gte”:”2027-01-01T00:00:00Z”} |
1.1 Rechercher des jeux de données
La liste des collections GEODES est accessible ici :https://geodes-portal.cnes.fr/api/stac/collections
Les métadonnées des collections GEODES sont présentées ci-dessous :
| Attribut | Type | Recherche | Description | Valeurs possibles ou exemple ou pattern |
|---|---|---|---|---|
| title | String | oui | Titre de la collection | “PEPS Sentinel-1 Level1” |
| description | String | oui | Description de la collection | “Sentinel-1 Level-1 products are the baseline products […] ” |
| dataset | String | oui | RĂ©fĂ©rence de la collection | “PEPS_S1_L1” |
| gsd | String | Résolution spatiale le plus fine, en mÚtres | 5 | |
| platform | String | oui | Plateformes d’acquisition des donnĂ©es | sentinel-2, multisat |
| processing:level | String | oui | Niveau de produit | LEVEL1 |
| constellation | String | Nom de la mission | sentinel-1, sentinel-2, etc… | |
| instruments | String | Capteur | C-SAR | |
| temporal_resolution | String | Résolution temporelle en jours | 144 | |
| total_items | Number | nombre de produits dans cette collection | 10 | |
| keywords | String | oui | Mots clĂ©s associĂ©s Ă la collection | [“s1″,”sentinel-1″,”l1″,”sar”,”grd”,”slc”] |
| missions | String | Projets chapeau | spĂ©cifique Postel (cyclopes, polder, …) | |
| providers | JSON | Fournisseurs de la collection | ||
| missions | String | oui | Projet en charge de la collection |
Il est possible de rechercher des jeux de donnĂ©es du catalogue et leurs mĂ©tadonnĂ©es avec une requĂȘte de type :
curl -k -H "Content-Type: application/json" -X POST -d '{"page":1, "query": { <ATTRIBUTS RECHERCHES> }}' "https://geodes-portal.cnes.fr/api/stac/collections" |
Le nombre de collections correspondantes aux critĂšres de recherche est disponible dans l’attribut “matched” de la rĂ©ponse.
Exemples
La requĂȘte suivante permet de trouver une collection dont les mots-clĂ©s contiennent l’expression “grd” :
curl -k -H "Content-Type: application/json" -X POST -d '{"page":1, "query": {"keywords": {"contains":"grd"}}}' "https://geodes-portal.cnes.fr/api/stac/collections"
La requĂȘte peut ĂȘtre Ă©galement lancer avec un get pour un rĂ©sultat rapide:
curl -k -X GETÂ "https://geodes-portal.cnes.fr/api/stac/collections"X POST -d '{"page":1, "query": {"keywords": {"contains":"grd"}}}' "https://geodes-portal-prod.cnes.fr/api/search/collections"
1.2 Rechercher des produits
La liste des produits GEODES est accessible ici :https://geodes-portal.cnes.fr/api/stac/items
La liste des mĂ©tadonnĂ©es de produits offertes par l’API GEODES est accessible ici: https://geodes.cnes.fr/metadonnees-offertes-par-lapi-stac-de-geodes/
Il est possible de rechercher des produits du catalogue et leurs mĂ©tadonnĂ©es avec la requĂȘte suivante:
|
Le nombre de produits correspondants aux critĂšres de recherche est disponible dans l’attribut “matched” de la rĂ©ponse.
La limite d’affichage est configurable avec une valeur maximale de 80. Au delĂ de 80 Ă©lĂ©ments, il faut parcourir les pages de rĂ©ponses pour obtenir la suite.
Chaque requĂȘte retourne une liste de produits et leurs mĂ©tadonnĂ©es au format JSON.
Le filtre sortBy est optionnel et permet d’ordonner la rĂ©ponse selon les valeurs d’un attribut spĂ©cifiĂ© :
“direction” correspond au sens choisi pour le tri. Il y a 2 valeurs possibles : “asc” pour ascendant et “dsc” pour descendant.
“field” correspond Ă l’attribut choisi pour le tri. Il doit faire partie de la liste dâattribut donnĂ©e prĂ©cĂ©demment.
Exemples
- Trouver des produits de type S1A SLC dont la date de dĂ©but d’acquisition est entre le 20 Juin 2023 Ă 4h21m51s et le 28 Juin 2023 Ă 4h21m51s et dont la polarisation est VV et le mode de capteur est soit IW soit EW :
curl -k -H "Content-Type: application/json" -X POST -d '{"page":1,"query":{"start_datetime":{"lte":"2023-06-28T04:21:51.000Z","gte":"2023-06-20T04:21:51.000Z"},"sar:polarizations" : {"in": ["VV"]}, "platform": {"in": ["S1A"]},"product:type": {"in": ["SLC"]},"sar:instrument_mode": {"in": ["IW","EW"]}}}' "https://geodes-portal.cnes.fr/api/stac/items"
- Trouver 10 produits SENTINEL2 L1C dont la couverture nuageuse est infĂ©rieure Ă 50% et dont l’emprise intersecte une bbox donnĂ©e :
curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "bbox":[148,-30,153,-28], "query": {"dataset": {"in":["PEPS_S2_L1C"]}, "eo:cloud_cover": {"lte":50}}}' "https://geodes-portal.cnes.fr/api/stac/items"
- Trouver le produit dont le nom est S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614:
curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "bbox":[148,-30,153,-28], "query": {"identifier":{"contains":"S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614"}}' "https://geodes-portal.cnes.fr/api/stac/items"
- Trouver 10 produits SENTINEL2 L1C dont la couverture nuageuse est inférieure à 10% et ordonné selon le taux de couverture nuageuse :
curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, sortBy: [{ direction: "asc", field: "eo:cloud_cover" }] ,"query": {"dataset": {"in":["PEPS_S2_L1C"]}, "eo:cloud_cover": {"lte":10}}}' "https://geodes-portal.cnes.fr/api/stac/items"
- Trouver les produits SENTINEL2 L1C diffusĂ©s par GEODES en janvier 2022 (exemple de requĂȘte utile pour du moissonnage)
curl -k -H "Content-Type: application/json" -X POST -d '{"page":1,"query":{"dataset":{"in":["PEPS_S2_L1C"]}, "datetime":{"lte":"2022-01-31T23:59:59.999Z"}, "datetime":{"gte":"2022-01-01CT00:00:00.000Z"}}}' https://geodes-portal.cnes.fr/api/stac/items
1.3 DĂ©couvrir les mĂ©tadonnĂ©es d’une collection spĂ©cifique
La liste des mĂ©tadonnĂ©es d’une collection spĂ©cifique est accessible ici :https://geodes-portal.cnes.fr/api/stac/collections/#collectionId
CollectionId reprĂ©sente l’id d’une collection qui peut ĂȘtre rĂ©cupĂ©rer avec une requĂȘte sur les collections.
Exemple :
- Trouver les mĂ©tadonnĂ©es de la collection “Sentinel-1 Level 1” :
curl -k -X GET "https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1"
1.4 Rechercher des items une collection spécifique
La liste des produits d’une collection spĂ©cifique est accessible ici :https://geodes-portal.cnes.fr/api/stac/collections/#collectionId/items
CollectionId reprĂ©sente l’id d’une collection qui peut ĂȘtre rĂ©cupĂ©rer avec une requĂȘte sur les collections.
Exemple :
- Trouver les produits de la collection “Sentinel-1 Level 1”: https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items
curl -k -X GET "https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items"
1.5 Rechercher un item spécifique
La liste des mĂ©tadonnĂ©es d’un produit spĂ©cifique est accessible ici :https://geodes-portal.cnes.fr/api/stac/collections/#collectionId/items/#itemId
itemId reprĂ©sente l’id d’un item, il est de la forme “URN:…”
Exemple :
- Trouver les mĂ©tadonnĂ©es du produit “S1A_IW_SLC__1SDV_20230205T213855_20230205T213925_047106_05A6BD_61EA”:
curl -k -X GET "https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items/URN:FEATURE:DATA:gdh:d0264bba-0719-35da-8d48-d65a72cfa58e:V1"
2. GĂ©nĂ©rer une clĂ© d’API
2.1. S’authentifier sur le portail GEODES
Dans un premier temps, vous devez vous connecter au portail GEODES afin de gĂ©nĂ©rer une clĂ© d’API.
Voici les étapes à suivre :
- Ouvrir votre navigateur internet
- Accéder au portail GEODES en utilisant le lien suivant : https://geodes-portal.cnes.fr
- S’authentifier via le bouton Log In en haut Ă droite :

Une fois redirigĂ© sur la page de connexion, veuillez saisir votre adresse e-mail, votre mot de passe, puis cliquer sur le bouton “Login” :

Si vous possĂ©dez dĂ©jĂ un compte GEODES, passez directement Ă l’Ă©tape “3.3 GĂ©nĂ©rer une clĂ© d’API“.
2.2. Créer un compte
Afin de crĂ©er un compte, veuillez cliquer sur le bouton “Create account”,

Puis, renseignez les informations ci-dessous :

Attention, tous les champs sont obligatoires. Le mot de passe doit contenir au moins une majuscule, un chiffre et un caractĂšre spĂ©cial et atteindre une longueur d’au moins 8 caractĂšres.
Un email de vérification vous sera envoyé avec un lien de validation de compte. DÚs réception du mail, veuillez cliquer sur le lien afin de valider votre compte.
2.3. GĂ©nĂ©rer une clĂ© d’API
Veuillez cliquer sur votre nom en haut Ă droite et choisir l’option “My information” :

Vous pouvez dĂ©sormais choisir de gĂ©nĂ©rer une clĂ© d’API en cliquant sur le bouton “Generate” :

Ensuite, la clĂ© d’API sera gĂ©nĂ©rĂ©e et apparaĂźtra dans l’IHM.

Vous pouvez alors le copier dans le presse papier en cliquant sur l’icĂŽne dĂ©diĂ©e.
Ensuite, vous devrez exporter une variable d’environnement APIKEY avec la clĂ© d’API gĂ©nĂ©rĂ©e Ă l’Ă©tape “2.3 GĂ©nĂ©rer une clĂ© d’API“.
Voici un exemple :
export APIKEY="sSDFSGcxvjqRSDGFDDFGDFGDFGWSDFFSDGDFG"
Pour modifier votre clĂ© d’API, cliquez sur l’icĂŽne de rĂ©gĂ©nĂ©ration. Votre clĂ© d’API sera rĂ©gĂ©nĂ©rĂ©e et remplacera l’ancienne clĂ© dans l’IHM.
3. TĂ©lĂ©charger un produit via l’API
Optionnel :
- Si vous utilisez les services de tĂ©lĂ©chargement depuis un terminal, il peut ĂȘtre pratique d’exporter une variable d’environnement APIKEY avec la clĂ© d’API.
export APIKEY="Copier_ici_votre_clé_API"
L’API GEODES de recherche renvoie un JSON contenant des informations sur les produits correspondant Ă la recherche et notamment le lien de tĂ©lĂ©chargement des produits. Il est possible via un simple ensemble d’instructions Shell d’extraire le nom de l’archive du produit (contenant son identifiant) ainsi que son lien de tĂ©lĂ©chargement, en utilisant la commande suivante :
<COMMANDE CURL> | sed 's/,/\n/g' | grep zip | sed 's/assets\":{/\n/g' | grep href | sed 's/{"href"://g'
Par exemple :
curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "query": {"dataType": {"in":["PEPS_S2_L1C"]}}}' "https://geodes-portal.cnes.fr/api/stac/search" | sed 's/,/\n/g' | grep zip | sed 's/assets\":{/\n/g' | grep href | sed 's/{"href"://g'
Cela permet d’obtenir un rĂ©sultat sous la forme :
“archive1″:”lien1”
“archive2″:”lien2”
“archive3″:”lien3”
“archive4″:”lien4”
“archive5″:”lien5”
“archive6″:”lien6”
“archive7″:”lien7”
“archive8″:”lien8”
“archive9″:”lien9”
“archive10″:”lien10”
en prenant en compte le “limit”: 10 de la requĂȘte.
Il suffit ensuite pour tĂ©lĂ©charger le produit de rĂ©cupĂ©rer le lien dĂ©sirĂ© et de l’incorporer Ă la requĂȘte de la forme suivante :
curl -vvv -k -L -H "X-API-Key: $APIKEY" -XGET "<LIEN TELECHARGEMENT>" --output <chemin vers fichier sortie>
Par exemple :
curl -vvv -k -L -H "X-API-Key: $APIKEY" -XGET "https://geodes-portal.cnes.fr/api/download/URN:FEATURE:DATA:gdh:01202b44-2d76-36b8-9453-56bf907882bf:V1/files/6e5ffa91b66775844607711eae4e0483" --output SENTINEL2C_20250922-171411-673_L2A_T14SQE_C_V4-0.zip
Important : dans les scripts, bien penser à échapper le caractÚre ':' avec %3A
4. Consulter la disponibilitĂ© d’un produit
Certains produits diffusĂ©s par GEODES sont stockĂ©s sur bande (Tier3) tandis que d’autres sont stockĂ©s sur disque (Tier2). Les APIs suivantes permettent de consulter le mode de stockage afin d’anticiper un tĂ©lĂ©chargement direct ou un tĂ©lĂ©chargement aprĂšs restauration sur disque.
4.1. DisponibilitĂ© d’un produit
L’endpoint pour connaitre disponibilitĂ© d’un produit est : /availability/{NOM_DU_PRODUIT}
Il s’agit d’une requĂȘte GET.
curl -XGET -k -H "Content-Type:application/json" -H "X-API-Key: $APIKEY" -H "Prefer:respond-async" "<URL_DU_PORTAIL>/availability/{NOM_DU_PRODUIT}" |
un exemple de requĂȘte
curl -XGET -k -H "Content-Type:application/json" -H "X-API-Key: $APIKEY" -H "Prefer:respond-async" "https://geodes-portal.cnes.fr/availability/S2A_MSIL1C_20161106T094202_N0500_R036_T32NNM_20230926T184801" |
4.2. DisponibilitĂ© d’une liste de produits
Pour connaĂźtre le mode de stockage d’une liste de produits, utiliser une requĂȘte POST sur l’endpoint : /availability avec un body pouvant prendre la forme suivante :
{ "product_ids": [ "URN_DU_PRODUIT_1", "URN_DU_PRODUIT_2" ]} |
La requĂȘte retourne une rĂ©ponse sous la forme :
|
Ci-dessous un exemple de requĂȘte
curl -XPOST -k --data "@body.json" -H "Content-Type:application/json" -H "X-API-Key: $APIKEY" -H "Prefer:respond-async" "https://geodes-portal.cnes.fr/availability" |
avec body.json :
|
La réponse retournée est de la forme suivante :
|
5. Pour les utilisateurs Python
PyGEODES est un outil de recherche et téléchargement des produits catalogués dans GEODES.

Lâensemble des informations pour installer et utiliser cet outil est disponible sur Github : pygeodes â pygeodes v0.1.0 Manual
Vous trouverez également dans cette documentation des exemples pour vous accompagner dans sa prise en main.
En cas de questions/remarques sur lâoutil PyGEODES, merci de nous contacter via le formulaire de contact.
