Open interface

API

The public read-only API provides published place and category data as JSON and GeoJSON. It is intended for church information services, research and responsible integrations.

GET Single pilgrimage site

Read the complete published record for a place by its stable URL slug.

JSON

https://pilgrimap.org/api/v1/places/gnadenkapelle-altoetting?lang=vi

iFrame

<iframe src="https://pilgrimap.org/embed/place/gnadenkapelle-altoetting?lang=vi" loading="lazy" title="Gnadenkapelle Altötting"></iframe>
GET Search

Search by name, locality, postal code, region, alternative names and category.

JSON

https://pilgrimap.org/api/v1/search?q=Altötting&limit=20&amp;lang=vi

iFrame

<iframe src="https://pilgrimap.org/embed/search?q=Altötting&amp;lang=vi" loading="lazy" title="Pilgrimage sites in Altötting"></iframe>
GET Categories

Active catalogue values with icon, marker colour and filter link.

JSON

https://pilgrimap.org/api/v1/categories?lang=vi

iFrame

<iframe src="https://pilgrimap.org/embed/categories?lang=vi" loading="lazy" title="Pilgrimap categories"></iframe>
GET Map and GeoJSON

GeoJSON for custom maps or a ready-made embedded map view.

JSON / GeoJSON

https://pilgrimap.org/api/v1/geojson?category=marienheiligtum&amp;lang=vi

iFrame

<iframe src="https://pilgrimap.org/embed/map?place=gnadenkapelle-altoetting&amp;lang=vi" loading="lazy" title="Bản đồ hành hương"></iframe>

More endpoints

JSONiFrame equivalentPurpose
/api/v1/meta/embed/docsVersion, scope and documentation link
/api/v1/places/embed/placesFiltered and sorted list
/api/v1/places/<slug>/embed/place/<slug>Complete single place
/api/v1/search?q=…/embed/search?q=…Full-text search
/api/v1/categories/embed/categoriesActive categories
/api/v1/geojson/embed/mapRecords as GeoJSON or map
/api/v1/places/<slug>/geojson/embed/map?place=<slug>One place as GeoJSON or map focus
/api/v1/nearby?lat=48.1&lng=11.5/embed/nearby?lat=48.1&lng=11.5Places within a radius
/api/v1/random/embed/randomRandom published place
/api/v1/languagesActive languages and text direction
/api/v1/places/featured/embed/placesFeatured places
/api/v1/places/recent/embed/placesRecently updated places
/api/v1/places/<slug>/translationsAvailable place translations
/api/v1/statsPublic catalogue totals
/api/v1/openapi.jsonOpenAPI 3.1

Filters for /api/v1/places

ParameterDescription
qFull-text search
categoryCategory slug, for example marienheiligtum
localityLocality or district
countryISO country code, for example DE
regionRegion or state
featuredtrue/false – featured places
has_imagestrue/false – places with images
updated_sinceISO-8601 timestamp
bboxBounding box: west,south,east,north
page, per_pagePage number and at most 100 records per page
sort, ordername, locality or updated; asc/desc
langLanguage code, for example de, fr or it

JavaScript example

fetch('https://pilgrimap.org/api/v1/search?q=Kevelaer&lang=vi')
  .then(response => response.json())
  .then(result => console.log(result.data));

Python example

import requests

response = requests.get(
    'https://pilgrimap.org/api/v1/nearby',
    params={'lat': 48.13, 'lng': 11.58, 'radius_km': 100, 'lang': 'vi'},
    timeout=10,
)
response.raise_for_status()
places = response.json()['data']

JSON endpoints allow browser-side GET requests through CORS. API and iFrame requests are counted only in a separate technical API statistic and are not mixed with visitor analytics.