Un appel. Une couche géo complète.
Transmettez une adresse. Recevez des coordonnées, la hiérarchie de quartier et les lieux à proximité dans une seule réponse. Tout ce dont vos pages d'annonces ont besoin pour devenir visibles par l'IA, en un seul appel API.
Comment ça fonctionne
Pas d'assemblage de plusieurs services. Un seul point de terminaison gère géocodage, résolution de quartier et recherche POI en un seul appel.
Transmettez n'importe quelle chaîne d'adresse brute, un code postal ou une paire de coordonnées à GET /v1/geoenrich. Aucun prétraitement ni normalisation d'adresse requis.
L'API géocode l'adresse à la précision toiture, résout la hiérarchie de quartier et analyse plus d'un milliard de POIs indexés dans votre rayon choisi, retournant notes, lignes de transport, horaires d'ouverture et temps de trajet.
Chaque champ de la réponse correspond directement à une propriété schema.org. Insérez les coordonnées dans GeoCoordinates, le quartier dans containedInPlace et les lieux à proximité dans amenityFeature. Aucune transformation requise.
La plupart des bases de données d'annonces stockent ce que les utilisateurs saisissent : adresse, prix, chambres. Elles n'ont jamais été conçues pour fournir un contexte géographique lisible par les machines. GeoEnrich API comble ce fossé en une seule requête, retournant coordonnées, analyses de quartier, transports en temps réel, notes, temps de trajet et bien plus.
GET https://api.mapatlas.eu/v1/geoenrich
?address=Kollwitzstraße 65, Berlin
&radius=600
&categories=transit,education,leisure,supermarket
&include=neighborhoodProfile,realtime,busyness
&key=YOUR_API_KEY{
"address": {
"street": "Kollwitzstraße 65",
"postalCode": "10405",
"city": "Berlin",
"country": "DE"
},
"coordinates": {
"lat": 52.53841,
"lng": 13.41327,
"accuracy": "rooftop",
"elevation": 42
},
"adminHierarchy": {
"subDistrict": "Kollwitzkiez",
"neighborhood": "Prenzlauer Berg",
"district": "Pankow",
"city": "Berlin",
"state": "Berlin",
"country": "DE",
"postalCode": "10405"
},
"neighborhoodProfile": {
"tags": ["family-friendly", "trendy", "cycling-culture", "cafe-dense"],
"walkScore": 94,
"bikeScore": 91,
"transitScore": 98,
"noiseLevel": "moderate",
"airQualityIndex": 38,
"greenSpaceCoverage": "18%"
},
"dataTimestamp": "2026-03-01T00:00:00Z",
"radius": 600,
"poiCount": 1328,
"nearby": [
{
"name": "Eberswalder Str.",
"type": "transit",
"subtype": "metro",
"distance": 140,
"bearing": "NW",
"lines": ["U2"],
"destinations": ["Pankow", "Ruhleben"],
"frequency": "every 5 min (peak)",
"accessibility": "step-free",
"realtime": {
"nextDeparture": "in 3 min",
"direction": "Pankow",
"platform": "platform 1"
},
"travel": {
"walking": { "duration": "2 min", "distance": "140m" },
"cycling": { "duration": "1 min", "distance": "150m" },
"driving": { "duration": "1 min", "distance": "180m" }
}
},
{
"name": "Bus 142 / N2 at Eberswalder Str.",
"type": "transit",
"subtype": "bus",
"distance": 145,
"bearing": "NW",
"lines": ["142", "N2"],
"destinations": ["Ostbahnhof", "Zoologischer Garten"],
"frequency": "every 10 min (day) / 30 min (night)",
"realtime": {
"nextDeparture": "in 7 min",
"direction": "Ostbahnhof"
},
"travel": {
"walking": { "duration": "2 min", "distance": "145m" },
"cycling": { "duration": "1 min", "distance": "155m" },
"driving": { "duration": "1 min", "distance": "180m" }
}
},
{
"name": "Kollwitzplatz",
"type": "leisure",
"subtype": "park",
"distance": 210,
"bearing": "SE",
"openingHours": "24/7",
"size": "1.2 ha",
"amenities": ["playground", "dog-friendly", "benches", "fountain", "market-tue-sat"],
"rating": 4.6,
"reviews": 1842,
"busyness": {
"now": "quiet",
"peak": "Sat 11:00-14:00"
},
"travel": {
"walking": { "duration": "3 min", "distance": "210m" },
"cycling": { "duration": "1 min", "distance": "225m" },
"driving": { "duration": "1 min", "distance": "350m" }
}
},
{
"name": "Grundschule am Kollwitzplatz",
"type": "education",
"subtype": "primary_school",
"distance": 380,
"bearing": "E",
"ageRange": "6-12",
"schoolType":"public",
"capacity": 340,
"languages": ["German", "English"],
"rating": 4.2,
"reviews": 156,
"travel": {
"walking": { "duration": "5 min", "distance": "380m" },
"cycling": { "duration": "2 min", "distance": "410m" },
"driving": { "duration": "2 min", "distance": "520m" }
}
},
{
"name": "REWE Kollwitzstraße",
"type": "supermarket",
"subtype": "grocery",
"distance": 490,
"bearing": "N",
"openingHours": {
"mon-sat": "07:00-22:00",
"sun": "08:00-22:00"
},
"priceLevel": "$$",
"deliveryAvailable": true,
"paymentMethods": ["card", "cash", "contactless"],
"rating": 4.1,
"reviews": 892,
"busyness": {
"now": "busy",
"peak": "Mon-Fri 17:00-19:00"
},
"travel": {
"walking": { "duration": "6 min", "distance": "490m" },
"cycling": { "duration": "2 min", "distance": "510m" },
"driving": { "duration": "2 min", "distance": "650m" }
}
}
// ... 1,323 more across 18 categories
]
}Data at a scale and speed never available before
1B+
POIs indexed globally
Transit, retail, education & more
180+
Countries covered
Consistent schema everywhere
<200ms
Avg. API response
At any scale, any location
18
Data categories
Per single API call
One call returns every relevant place within your chosen radius, organized by category. Each dataset carries a dataTimestamp so AI engines and search crawlers know exactly how current your location data is.
Kollwitzstraße 65
Prenzlauer Berg · Berlin · DE
Nearby within 600m
Data verified · March 2026
Monthly refresh · dataTimestamp: 2026-03-01
Every field in the response maps directly to a schema.org property. Coordinates, neighborhood hierarchy, walkScore, transit lines, ratings, opening hours, travel times. No transformation needed.
lat/lng à précision toiture avec altitude. Alimente directement le schéma GeoCoordinates.
Hiérarchie complète plus walkScore, bikeScore, transitScore, niveau sonore, indice de qualité de l'air et étiquettes de caractère. Alimente containedInPlace et le contexte de quartier.
Plus de 1 328 POIs avec notes, horaires d'ouverture, lignes de transport, départs en direct, temps de trajet et données de fréquentation. Alimente le schéma amenityFeature.
Pas de configuration complexe. Pas d'assemblage de plusieurs appels. Transmettez une adresse, recevez la couche géo complète nécessaire pour alimenter le balisage schema.org sur chaque page d'annonce.
{
"@context": "https://schema.org",
"@type": "Apartment",
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.5384,
"longitude": 13.4132
},
"containedInPlace": {
"@type": "Place",
"name": "Prenzlauer Berg",
"containedInPlace": { "@type": "City", "name": "Berlin" }
},
"amenityFeature": [
{ "@type": "LocationFeatureSpecification",
"name": "Eberswalder Str.", "value": true,
"description": "140m nearby" }
],
"dateModified": "2026-03-01T00:00:00Z"
}The GeoEnrich API works for any listing: vacation rentals, real estate, hotels, or experiences. The API call is identical. Only the schema type differs. See how listing portals use this at scale.
Faites apparaître les pages de location individuelles dans les requêtes IA comme 'villa en bord de mer près de Faro avec restaurants à pied'.
Faites remonter les annonces pour des requêtes comme 'appartements à Prenzlauer Berg proche du métro' sans saisie manuelle de données.
Obtenez des citations IA pour des requêtes comme 'hôtel boutique dans le Marais, à pied des musées'.
Soyez cité pour des requêtes comme 'cours de cuisine à Barcelone près du Quartier Gothique'.
Un seul point de terminaison retourne la couche de données géo complète dont vos pages d'annonces ont besoin pour devenir visibles par l'IA.
Précision à quatre décimales. Renseigne le schéma GeoCoordinates sur chaque page d'annonce pour que les moteurs IA puissent la situer géographiquement.
Quartier, arrondissement, ville et pays résolus à partir de l'adresse. Alimente la chaîne containedInPlace pour la récupération IA au niveau de la zone.
Transports, enseignement, loisirs et santé dans un rayon configurable. Chaque lieu est retourné avec distance et temps de marche pour le schéma amenityFeature.
Chaque réponse inclut un dataTimestamp actualisé chaque mois. Associez-le à dateModified dans votre JSON-LD pour que les moteurs IA voient des données vérifiées et à jour.
Conçu pour des bases de données de 50 000 annonces ou plus. Exécutez le traitement d'enrichissement une seule fois au moment de la construction, mettez en cache la couche géo et servez sans coût récurrent par requête.
Entièrement hébergé en UE avec documentation de conformité RGPD et clauses contractuelles types. Aucun risque de résidence des données pour les portails d'annonces européens.
Commencez à créer avec MapAtlas dès aujourd'hui. Inscrivez-vous gratuitement et obtenez un accès instantané à toutes nos APIs de cartographie avec des limites de niveau gratuit généreuses.
Tout ce que vous devez savoir avant d'enrichir votre première annonce.