◒HISTORICAL EXPLORER

Historical Explorer · operations

Sources

Every source this application can reach, what it is configured to do, what it actually returned, and exactly what happened to those records on the way to the map, the archive and the media viewer. A source is never shown as working because it exists in the configuration file — a green status requires an observed call that returned records.

Overall source status

Read from configuration, cache state and this instance’s own observations. Opening this page makes no provider request.

Configured
28
Enabled
27
Operational
3
Missing credentials
0
Failing
0
Disabled
1
Dataset-only
3
Live-query
24
Active map datasets
6
Indexed map records
176,067
Returning records
0 tested
Map-eligible
0 tested
Returning media
0 tested
Unresolved geography
0 tested

“Active map datasets” and “Indexed map records” are durable data already readable by the map. The four “tested” counts are separate, short-lived live-provider probes in this server instance; an untested source is not a zero-record source.

Spatial datasets serving the map

Latest published version
rce-2026-08-17
Data in use
Real ingested dataset — Production-ingested dataset
Places
176,067 across 1,020 tiles
Geometry
11,917 shapes across 2,385 tiles
Imported
2026-08-17 20:27:20Z
Validation
passed
Checksum
95c46a9e25bef15c6f62f01707ee5ae099b9925fe65ea8651815d250ee8f3feb
Active readable datasets
6 of 6
Resolver
resolver-v1
Tiling
2° tiles · 64 name buckets · 5° overview
Licence
CC0 1.0 (register metadata)
  • Plateforme Ouverte du Patrimoine — 49,216 places, 0 shapesActive and readable by the map · france-pop@france-pop-2026-08-17
  • INAH — 18,616 places, 0 shapesActive and readable by the map · inah@inah-2026-08-17
  • Korea Heritage Service — 17,524 places, 0 shapesActive and readable by the map · korea-heritage@korea-heritage-2026-08-17
  • K-samsök — 44,000 places, 0 shapesActive and readable by the map · ksamsok@ksamsok-2026-08-17
  • Pleiades — 34,721 places, 10,018 shapesActive and readable by the map · pleiades@pleiades-2026-08-17
  • Rijksdienst voor het Cultureel Erfgoed — 11,990 places, 1,899 shapesActive and readable by the map · rce@rce-2026-08-17
  • 63488 city
  • 3394 administrative_area
  • 17183 country
  • 23194 exact_point
  • 62369 approximate_point
  • 4540 historical_region
  • 1899 area_footprint

Cache and shared storage

Environment
production
Redis
Available via UPSTASH_REDIS_REST_*
Backend
shared_redis_rest
Entries
2
Hits / misses
0 / 1
Stale serves
0
Negative hits
0
Status refreshed
2026-11-03 14:13:58Z

Shared Redis REST cache active via UPSTASH_REDIS_REST_*.

Canonical / XREF

Store
Durable partitioned Redis
Entities
0
Claims
0
Edges
0
Review decisions
0

Partitioned Redis keys hold canonical cores, claim shards, provider links, edges, and review decisions.

Provider controls

Global disable
Not set
Disabled providers
None
Cached-only providers
None
Ignored values
None

Media host policy

Every surface renders plain <img>/<video>, so the Next.js optimizer is not in the path today. images.remotePatterns is generated from this same allowlist so adopting next/image needs no further configuration — and no wildcard host is ever emitted.

Allowed media hosts (45)

**.archive.org · **.archives.gov · **.bnf.fr · **.culture.gouv.fr · **.cultureelerfgoed.nl · **.deutsche-digitale-bibliothek.de · **.europeana.eu · **.finna.fi · **.getty.edu · **.historicengland.org.uk · **.ids.si.edu · **.iiif.si.edu · **.inah.gob.mx · **.khs.go.kr · **.kulturarvsdata.se · **.loc.gov · **.metmuseum.org · **.micr.io · **.openhistoricalmap.org · **.rijksmuseum.nl · **.si.edu · **.vatlib.it · **.viaf.org · **.wikimedia.org · **.wikipedia.org · api.europeana.eu · api.finna.fi · catalog.archives.gov · cdn.loc.gov · collectionapi.metmuseum.org · commons.wikimedia.org · digi.vatlib.it · gallica.bnf.fr · iiif.archive.org · iiif.getty.edu · iiif.micr.io · images.metmuseum.org · lcweb2.loc.gov · media.getty.edu · memory.loc.gov · nara-media-001.s3.amazonaws.com · pleiades.stoa.org · s3.amazonaws.com · tile.loc.gov · upload.wikimedia.org

next/image remotePatterns (49, configured)

https://**.archive.org · https://**.archives.gov · https://**.bnf.fr · https://**.culture.gouv.fr · https://**.cultureelerfgoed.nl · https://**.deutsche-digitale-bibliothek.de · https://**.europeana.eu · https://**.finna.fi · https://**.getty.edu · https://**.historicengland.org.uk · https://**.inah.gob.mx · https://**.khs.go.kr · https://**.kulturarvsdata.se · https://**.loc.gov · https://**.metmuseum.org · https://**.micr.io · https://**.openhistoricalmap.org · https://**.rijksmuseum.nl · https://**.si.edu · https://**.vatlib.it · https://**.viaf.org · https://**.wikimedia.org · https://**.wikipedia.org · https://archive.org · https://archives.gov · https://bnf.fr · https://culture.gouv.fr · https://cultureelerfgoed.nl · https://deutsche-digitale-bibliothek.de · https://europeana.eu · https://finna.fi · https://getty.edu · https://historicengland.org.uk · https://inah.gob.mx · https://khs.go.kr · https://kulturarvsdata.se · https://loc.gov · https://metmuseum.org · https://micr.io · https://nara-media-001.s3.amazonaws.com · https://openhistoricalmap.org · https://pleiades.stoa.org · https://rijksmuseum.nl · https://s3.amazonaws.com/NARAprodstorage/** · https://si.edu · https://vatlib.it · https://viaf.org · https://wikimedia.org · https://wikipedia.org

Environment

Variable names and whether a value is present. No value is ever read into this page.

VariableKindPresentPurpose
EUROPEANA_API_KEYOptional provider credentialPresentset EUROPEANA_API_KEY (free: https://www.europeana.eu/en/account/api-keys)
NARA_API_KEYOptional provider credentialPresentset NARA_API_KEY (free: email Catalog_API@nara.gov for a read-only key)
ORCID_CLIENT_IDOptional provider credentialPresentset ORCID_CLIENT_ID and ORCID_CLIENT_SECRET (free Public API credentials)
ORCID_CLIENT_SECRETOptional provider credentialPresentset ORCID_CLIENT_ID and ORCID_CLIENT_SECRET (free Public API credentials)
SMITHSONIAN_API_KEYOptional provider credentialPresentset SMITHSONIAN_API_KEY
HISTORY_API_CONTACT_EMAILOptional tuningPresentFallback contact address, used only when RESEARCH_CONTACT_EMAIL is unset.
HISTORY_API_USER_AGENTOptional tuningMissingOverrides the outbound User-Agent sent to every provider, ignoring the two variables it is otherwise built from.
NARA_API_BASE_URLOptional tuningMissingOverrides the Catalog API path if it moves. The host stays allowlisted either way.
PUBLIC_APP_URLOptional tuningPresentSupplies the site URL in the outbound User-Agent, alongside RESEARCH_CONTACT_EMAIL.
RESEARCH_CACHED_ONLY_PROVIDERSOptional tuningMissingServe these providers from retained results only; never call them.
RESEARCH_CONTACT_EMAILOptional tuningPresentSelects Crossref's polite pool and supplies the contact address in the outbound User-Agent.
RESEARCH_DISABLE_ALL_PROVIDERSOptional tuningMissingEmergency switch. When "true", every provider is reported disabled.
RESEARCH_DISABLED_PROVIDERSOptional tuningMissingComma-separated provider ids to disable. Unknown ids are ignored, not guessed.
VATICAN_LIBRARY_BASE_URLOptional tuningPresentOverrides the DigiVatLib base URL.
VATICAN_LIBRARY_ENABLEDOptional tuningPresentSet to "false" to disable the Vatican Library. Any other value leaves it enabled.
RESEARCH_HEALTH_TOKENProduction onlyPresentGates the raw provider-health endpoint and the raw diagnostic payloads on this page.
RESEARCH_REBUILD_TOKENProduction onlyPresentGates canonical rebuild submission. Unrelated to source diagnostics.
RESEARCH_REVIEW_TOKENProduction onlyPresentGates canonical human-review writes. Unrelated to source diagnostics.
KV_REST_API_TOKENRequired infrastructurePresentAccepted in place of UPSTASH_REDIS_REST_TOKEN.
KV_REST_API_URLRequired infrastructurePresentVercel's Upstash/KV integration injects this automatically.
UPSTASH_REDIS_REST_TOKENRequired infrastructurePresentRead-write token. A read-only token cannot write the record-to-place index.
UPSTASH_REDIS_REST_URLRequired infrastructurePresentDurable cache and spatial index. Either this pair or the KV_REST_API_* pair is required in production.

Sources

Select a source to see its configuration, runtime, coverage and bounded test without leaving this page.

Configured, not testedsmithsonianLive JSON APIGlobal collections held in the United States

Smithsonian Institution

Smithsonian Institution is enabled and configured. No call has been observed in this instance, so nothing is claimed about whether it is answering.

Provider documentation

Running a provider test is an operator action. Enter the operational token above to enable it.

Configuration

Provider id
smithsonian
Display name
Smithsonian Institution
Access method
EDAN Open Access JSON API
Region or coverage
Global collections held in the United States
Base URL
https://api.si.edu/openaccess/api/v1.0
Tested endpoint
https://api.si.edu/openaccess/api/v1.0
Public test URL
Not available: this endpoint requires a server-held credential.
Diagnostic route
/api/research/source-test?provider=smithsonian
Enabled
Yes — set SMITHSONIAN_API_KEY
Required variables
SMITHSONIAN_API_KEY Present
Rate limit
60 requests/minute
Concurrency limit
2
Timeout
9000 ms, 2 retries
Cache mode
persistent
Storage policy
Cached 300s, served stale for up to 60 minutes after a failed refresh.
Attribution
Smithsonian Institution
Metadata rights
Provider default; see the record's own rights statement
Media rights
Media rights are stated per asset; a public record never implies reusable scans.
Geographic capability
textual_places. Adapter: emits no coordinates, emits textual places.
Supported record types
object, photograph, document, publication, collection
Capabilities
search, record-lookup, images

Credential values are never read into this page. Only the presence of each variable is reported.

Runtime status

Last request
Never
Last success
Never
Last failure
Never
Last state
Not observed in this instance
Last latency
—
Last record count
—
Provider-reported matches
Not supplied by this source
Cache hit
—
Stale response used
No
Circuit breaker
Closed
Negative cache
Empty results are retained for 90s before the source is asked again
Access issue
None — access is not the problem
Most recent error
None recorded
Totals observed in this instance
  • 0 calls
  • 0 records
  • 0 failures
  • 0 aborted
  • 0 avg latency ms
  • 0 exact places
  • 0 approximate places
  • 0 parent summaries
  • 0 unresolved places

Counters are per-instance and reset when the server restarts. They are never written to shared storage.

Issues and recommendations

Known limitations
  • Records carry structured place names but never coordinates, so a Smithsonian record only reaches the map when its place text resolves against the spatial index.Evidence: src/lib/smithsonian.ts structuredList(raw, "place"); provider-policy.ts geographic.coordinates = false
  • The key travels as an `api_key` query parameter, so a captured request URL must be redacted before display.Evidence: src/lib/smithsonian.ts call()
Recommendations
Configuration
  • Set SMITHSONIAN_API_KEY in every environment; without it the primary source contributes nothing at all.
Geography
  • Smithsonian place strings are the largest single pool of unresolved locations. Extending the gazetteer with modern city and country names would convert them into parent-location summaries.
What this page will not do

These diagnostics are read-only. Nothing here changes a credential, runs an ingestion, deletes a cache, activates a dataset, overrides a match decision, or edits production configuration. A bounded test makes one small, predefined request through the same pacing and circuit-breaker rules as ordinary traffic, and nothing it resolves is written to the durable record-to-place index.

Reading this page

What a status means

operational
Operational
operational_with_partial_data
Operational, partial data
configured_not_tested
Configured, not tested
missing_credentials
Missing credentials
invalid_credentials
Invalid credentials
disabled
Disabled
rate_limited
Rate limited
circuit_open
Circuit open
provider_unavailable
Provider unavailable
schema_error
Response schema changed
ingestion_required
Ingestion required
ingestion_not_run
Ingestion not run
using_fixture_only
Fixture only
using_committed_sample
Using committed sample
no_supported_machine_access
No supported machine access
rights_restricted
Rights restricted
not_implemented
Not implemented

How map coverage works

Exact coordinates appear as points. City, country and regional records remain accessible as parent-location summaries drawn at a conventional anchor, never as a fabricated event at a centroid. Records with no source-supported place stay available through the area’s catalogue browser and are never scattered onto the map. A location a source deliberately withheld is never plotted.

A source total is never treated as a mapped record count. The counts on this page state what a bounded test actually returned, not what a source holds.

Copy this status

The full sanitized status payload, as this page received it.