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.
| Variable | Kind | Present | Purpose |
|---|---|---|---|
| EUROPEANA_API_KEY | Optional provider credential | Present | set EUROPEANA_API_KEY (free: https://www.europeana.eu/en/account/api-keys) |
| NARA_API_KEY | Optional provider credential | Present | set NARA_API_KEY (free: email Catalog_API@nara.gov for a read-only key) |
| ORCID_CLIENT_ID | Optional provider credential | Present | set ORCID_CLIENT_ID and ORCID_CLIENT_SECRET (free Public API credentials) |
| ORCID_CLIENT_SECRET | Optional provider credential | Present | set ORCID_CLIENT_ID and ORCID_CLIENT_SECRET (free Public API credentials) |
| SMITHSONIAN_API_KEY | Optional provider credential | Present | set SMITHSONIAN_API_KEY |
| HISTORY_API_CONTACT_EMAIL | Optional tuning | Present | Fallback contact address, used only when RESEARCH_CONTACT_EMAIL is unset. |
| HISTORY_API_USER_AGENT | Optional tuning | Missing | Overrides the outbound User-Agent sent to every provider, ignoring the two variables it is otherwise built from. |
| NARA_API_BASE_URL | Optional tuning | Missing | Overrides the Catalog API path if it moves. The host stays allowlisted either way. |
| PUBLIC_APP_URL | Optional tuning | Present | Supplies the site URL in the outbound User-Agent, alongside RESEARCH_CONTACT_EMAIL. |
| RESEARCH_CACHED_ONLY_PROVIDERS | Optional tuning | Missing | Serve these providers from retained results only; never call them. |
| RESEARCH_CONTACT_EMAIL | Optional tuning | Present | Selects Crossref's polite pool and supplies the contact address in the outbound User-Agent. |
| RESEARCH_DISABLE_ALL_PROVIDERS | Optional tuning | Missing | Emergency switch. When "true", every provider is reported disabled. |
| RESEARCH_DISABLED_PROVIDERS | Optional tuning | Missing | Comma-separated provider ids to disable. Unknown ids are ignored, not guessed. |
| VATICAN_LIBRARY_BASE_URL | Optional tuning | Present | Overrides the DigiVatLib base URL. |
| VATICAN_LIBRARY_ENABLED | Optional tuning | Present | Set to "false" to disable the Vatican Library. Any other value leaves it enabled. |
| RESEARCH_HEALTH_TOKEN | Production only | Present | Gates the raw provider-health endpoint and the raw diagnostic payloads on this page. |
| RESEARCH_REBUILD_TOKEN | Production only | Present | Gates canonical rebuild submission. Unrelated to source diagnostics. |
| RESEARCH_REVIEW_TOKEN | Production only | Present | Gates canonical human-review writes. Unrelated to source diagnostics. |
| KV_REST_API_TOKEN | Required infrastructure | Present | Accepted in place of UPSTASH_REDIS_REST_TOKEN. |
| KV_REST_API_URL | Required infrastructure | Present | Vercel's Upstash/KV integration injects this automatically. |
| UPSTASH_REDIS_REST_TOKEN | Required infrastructure | Present | Read-write token. A read-only token cannot write the record-to-place index. |
| UPSTASH_REDIS_REST_URL | Required infrastructure | Present | Durable 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.
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.
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_KEYPresent- 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
- Set SMITHSONIAN_API_KEY in every environment; without it the primary source contributes nothing at all.
- 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.