Catalog (142)

IDDocumentUpdatedAnchorsSHA
agents/ag2-extraction-notesAG2 Extraction Notes
agents/ag2-extraction-notes.md
10/20/2018, 1:46:40 AM11e8d0072ebec1
asset-provenanceAsset Provenance
asset-provenance.md
10/20/2018, 1:46:40 AM41025c0acc117
closeout-notesAI-RSI one-click closeout notes
closeout-notes.md
10/20/2018, 1:46:40 AM21f560f6a8535
content-credibility-engineContent Credibility Engine
content-credibility-engine.md
10/20/2018, 1:46:40 AM8d9aa32358670
demo-scriptProduct Walkthrough — Shot List & Script (60–90s)
demo-script.md
10/20/2018, 1:46:40 AM2299b901ec583
deploymentDeployment — Vercel + Render
deployment.md
10/20/2018, 1:46:40 AM8822e08a991b9
development-roadmapMeta Museum Development Roadmap
development-roadmap.md
10/20/2018, 1:46:40 AM23624a8a089d72
development/aidd-tddAIDD + TDD Discipline
development/aidd-tdd.md
10/20/2018, 1:46:40 AM5cd0a0524525a
development/typescript-command-contractTypeScript Command Contract
development/typescript-command-contract.md
10/20/2018, 1:46:40 AM0e2c0fe337ff6
envEnvironment Variables
env.md
10/20/2018, 1:46:40 AM13d45d28b1acb7
evals/golden-museum-questionsGolden Eval Dataset: Complex Museum Questions
evals/golden-museum-questions.md
10/20/2018, 1:46:40 AM62876a2b5e78d
knowledge/concepts/llm-wiki-patternDefinition
knowledge/concepts/llm-wiki-pattern.md
10/20/2018, 1:46:40 AM01538a0b7d895
knowledge/concepts/meta-museum-knowledge-systemDefinition
knowledge/concepts/meta-museum-knowledge-system.md
10/20/2018, 1:46:40 AM0fb8615747115
knowledge/concepts/open-knowledge-formatDefinition
knowledge/concepts/open-knowledge-format.md
10/20/2018, 1:46:40 AM037e419de4736
knowledge/indexMeta Museum Knowledge Wiki
knowledge/index.md
10/20/2018, 1:46:40 AM38d2fe66d7442
knowledge/logMeta Museum Knowledge Wiki Log
knowledge/log.md
10/20/2018, 1:46:40 AM19f73157e299f
knowledge/schema/llm-wiki-maintainerPurpose
knowledge/schema/llm-wiki-maintainer.md
10/20/2018, 1:46:40 AM01bc0cde6fa1e
knowledge/sources/llm-wiki-pattern-noteSummary
knowledge/sources/llm-wiki-pattern-note.md
10/20/2018, 1:46:40 AM0db115d8fd7bf
knowledge/sources/open-knowledge-format-google-2026-06-12Summary
knowledge/sources/open-knowledge-format-google-2026-06-12.md
10/20/2018, 1:46:40 AM0a87b065f97db
linked-art/activity-stream-partner-quickstartActivityStreams Partner Quickstart
linked-art/activity-stream-partner-quickstart.md
10/20/2018, 1:46:40 AM96ea3aea16866
linked-art/activity-stream-profileMetaMuseum Linked Art Activity Stream Profile
linked-art/activity-stream-profile.md
10/20/2018, 1:46:40 AM6adb634532df8
linked-art/api/abstract-worksLinked Art API: Abstract Works
linked-art/api/abstract-works.md
7/6/2026, 12:00:00 AM7271315c08d2d
linked-art/api/bibliographyLinked Art: Bibliography
linked-art/api/bibliography.md
7/6/2026, 12:00:00 AM126d9d5160565a
linked-art/api/cdwa-mappingLinked Art: CDWA Mapping
linked-art/api/cdwa-mapping.md
7/6/2026, 12:00:00 AM9baaefda0cff6
linked-art/api/code-and-toolsLinked Art: Code And Tools
linked-art/api/code-and-tools.md
7/6/2026, 12:00:00 AM87d87b00c2f04
linked-art/api/conceptsLinked Art API: Concepts
linked-art/api/concepts.md
7/6/2026, 12:00:00 AM75c3b10a975bb
linked-art/api/design-principlesLinked Art API: Design Principles
linked-art/api/design-principles.md
7/6/2026, 12:00:00 AM103ff80e8696b0
linked-art/api/digital-objectsLinked Art API: Digital Objects
linked-art/api/digital-objects.md
7/6/2026, 12:00:00 AM889a21989333a
linked-art/api/discoveryLinked Art API: Discovery
linked-art/api/discovery.md
7/7/2026, 12:00:00 AM5407a0f6a9de4
linked-art/api/eventsLinked Art API: Events
linked-art/api/events.md
7/6/2026, 12:00:00 AM8cdb00a835694
linked-art/api/groupsLinked Art API: Groups
linked-art/api/groups.md
7/6/2026, 12:00:00 AM7abbb3e00ba19
linked-art/api/halLinked Art API: HAL
linked-art/api/hal.md
7/6/2026, 12:00:00 AM264c645e4c2ea6
linked-art/api/indexLinked Art API Reference Notes
linked-art/api/index.md
7/6/2026, 12:00:00 AM404ab73322251
linked-art/api/json-ld-considerationsLinked Art API: JSON-LD Considerations
linked-art/api/json-ld-considerations.md
7/6/2026, 12:00:00 AM7dc542f437a12
linked-art/api/json-schemasLinked Art API: JSON Schemas
linked-art/api/json-schemas.md
7/6/2026, 12:00:00 AM1657ed7e27b78b
linked-art/api/peopleLinked Art API: People
linked-art/api/people.md
7/6/2026, 12:00:00 AM700141f499e00
linked-art/api/physical-objectsLinked Art API: Physical Objects
linked-art/api/physical-objects.md
7/6/2026, 12:00:00 AM10b947ded689e6
linked-art/api/placesLinked Art API: Places
linked-art/api/places.md
7/6/2026, 12:00:00 AM75b00bba40010
linked-art/api/protocolLinked Art API: Protocol
linked-art/api/protocol.md
7/6/2026, 12:00:00 AM8d7f6c925ba69
linked-art/api/provenance-activitiesLinked Art API: Provenance Activities
linked-art/api/provenance-activities.md
7/6/2026, 12:00:00 AM18565a129b4074
linked-art/api/schema-abstract-workLinked Art API Schema: Abstract Work
linked-art/api/schema-abstract-work.md
7/6/2026, 12:00:00 AM720660a51677e
linked-art/api/schema-conceptLinked Art API Schema: Concept
linked-art/api/schema-concept.md
7/6/2026, 12:00:00 AM76a568b387d80
linked-art/api/schema-digital-objectLinked Art API Schema: Digital Object
linked-art/api/schema-digital-object.md
7/6/2026, 12:00:00 AM7750a7f2de6a7
linked-art/api/schema-eventLinked Art API Schema: Event
linked-art/api/schema-event.md
7/6/2026, 12:00:00 AM7ecc0b93c1ea6
linked-art/api/schema-groupLinked Art API Schema: Group
linked-art/api/schema-group.md
7/6/2026, 12:00:00 AM833ee6eb1355f
linked-art/api/schema-org-mappingLinked Art: Schema.org Mapping
linked-art/api/schema-org-mapping.md
7/6/2026, 12:00:00 AM10e5407dc8677d
linked-art/api/schema-personLinked Art API Schema: Person
linked-art/api/schema-person.md
7/6/2026, 12:00:00 AM87c1f64043517
linked-art/api/schema-physical-objectLinked Art API Schema: Human-Made Object
linked-art/api/schema-physical-object.md
7/6/2026, 12:00:00 AM9d0ab12e93755
linked-art/api/schema-placeLinked Art API Schema: Place
linked-art/api/schema-place.md
7/6/2026, 12:00:00 AM8f3340073270b
linked-art/api/schema-provenance-activityLinked Art API Schema: Provenance Activity
linked-art/api/schema-provenance-activity.md
7/6/2026, 12:00:00 AM8dd2fe5345a6a
linked-art/api/schema-setLinked Art API Schema: Set
linked-art/api/schema-set.md
7/6/2026, 12:00:00 AM82b48dd1a0cb1
linked-art/api/schema-textual-workLinked Art API Schema: Textual Work
linked-art/api/schema-textual-work.md
7/6/2026, 12:00:00 AM827f38ce348c4
linked-art/api/schema-visual-workLinked Art API Schema: Visual Work
linked-art/api/schema-visual-work.md
7/6/2026, 12:00:00 AM97dc44dd62a63
linked-art/api/searchLinked Art API: Search
linked-art/api/search.md
7/7/2026, 12:00:00 AM6fe2301e3ac01
linked-art/api/setsLinked Art API: Sets
linked-art/api/sets.md
7/6/2026, 12:00:00 AM717aaf803945c
linked-art/api/shared-activitiesLinked Art API: Shared Activities
linked-art/api/shared-activities.md
7/6/2026, 12:00:00 AM7de394280c803
linked-art/api/shared-concept-referencesLinked Art API: Shared Concept References
linked-art/api/shared-concept-references.md
7/6/2026, 12:00:00 AM8d1d6465ac086
linked-art/api/shared-digital-linksLinked Art API: Shared Digital Links
linked-art/api/shared-digital-links.md
7/6/2026, 12:00:00 AM6aa747ae005bf
linked-art/api/shared-dimensionsLinked Art API: Shared Dimensions
linked-art/api/shared-dimensions.md
7/6/2026, 12:00:00 AM7a6a512ce1f69
linked-art/api/shared-identifiersLinked Art API: Shared Identifiers
linked-art/api/shared-identifiers.md
7/6/2026, 12:00:00 AM70e518b8d88c5
linked-art/api/shared-monetary-amountsLinked Art API: Shared Monetary Amounts
linked-art/api/shared-monetary-amounts.md
7/6/2026, 12:00:00 AM7030dc129f2ca
linked-art/api/shared-namesLinked Art API: Shared Names
linked-art/api/shared-names.md
7/6/2026, 12:00:00 AM73da4d8a4c849
linked-art/api/shared-referencesLinked Art API: Shared References
linked-art/api/shared-references.md
7/6/2026, 12:00:00 AM822aa1cc20d4f
linked-art/api/shared-relationshipsLinked Art API: Shared Relationships
linked-art/api/shared-relationships.md
7/6/2026, 12:00:00 AM7af011a27832c
linked-art/api/shared-rightsLinked Art API: Shared Rights
linked-art/api/shared-rights.md
7/6/2026, 12:00:00 AM79975708ccd02
linked-art/api/shared-statementsLinked Art API: Shared Statements
linked-art/api/shared-statements.md
7/6/2026, 12:00:00 AM7f26889987779
linked-art/api/shared-structuresLinked Art API: Shared Structures
linked-art/api/shared-structures.md
7/6/2026, 12:00:00 AM69f6a99f012ad
linked-art/api/shared-timespansLinked Art API: Shared TimeSpans
linked-art/api/shared-timespans.md
7/6/2026, 12:00:00 AM7ea33d788e29b
linked-art/api/textual-worksLinked Art API: Textual Works
linked-art/api/textual-works.md
7/6/2026, 12:00:00 AM783115d01844b
linked-art/api/visual-worksLinked Art API: Visual Works
linked-art/api/visual-works.md
7/6/2026, 12:00:00 AM75c7225b0a261
linked-art/canonical-identifier-policyCanonical Identifier Policy
linked-art/canonical-identifier-policy.md
10/20/2018, 1:46:40 AM856bc7bc9ee2f
linked-art/conformance-matrixLinked Art 1.0 — Conformance Matrix
linked-art/conformance-matrix.md
10/20/2018, 1:46:40 AM53666a6671a7a
linked-art/external-activity-streamsExternal Activity Stream Candidates
linked-art/external-activity-streams.md
10/20/2018, 1:46:40 AM3756dbb91f85c
linked-art/Linked%20Art%20NotesLinked Art Notes.md
linked-art/Linked Art Notes.md
10/20/2018, 1:46:40 AM0aca66d51107b
linked-art/Linked%20Open%20Art%20Data%20Web%20App%20-%20Must-have%20Data%20SourcesLinked Open Art Data Web App (AI) — Must-have Data Sources
linked-art/Linked Open Art Data Web App - Must-have Data Sources.md
10/20/2018, 1:46:40 AM77b7d350fe8a0
linked-art/LinkedArtAppFeatures🏛️ Art Explorer: Linked Art Application & Ecosystem
linked-art/LinkedArtAppFeatures.md
10/20/2018, 1:46:40 AM14e23b890ecd2a
linked-art/LinkedArtChallengesLinkedArtChallenges.md
linked-art/LinkedArtChallenges.md
10/20/2018, 1:46:40 AM0d8c987070277
linked-art/LinkedArtCollaborationLinkedArtCollaboration.md
linked-art/LinkedArtCollaboration.md
10/20/2018, 1:46:40 AM114ccf63edef3
linked-art/LinkedArtDashboardLinkedArtDashboard.md
linked-art/LinkedArtDashboard.md
10/20/2018, 1:46:40 AM06d04d4b2bf79
linked-art/LinkedArtFeatureRoadmapFeature Roadmap for Linked Open Art Data Apps
linked-art/LinkedArtFeatureRoadmap.md
10/20/2018, 1:46:40 AM8ac10d8e79c20
linked-art/LinkedArtJobReadyLinkedArtJobReady.md
linked-art/LinkedArtJobReady.md
10/20/2018, 1:46:40 AM0c60b357bcb87
linked-art/LinkedArtModel1.0-ReferenceLinked Art Model 1.0 Reference (Round 1)
linked-art/LinkedArtModel1.0-Reference.md
10/20/2018, 1:46:40 AM344e6d48d474b3e
linked-art/LinkedArtPatternsLinkedArtPatterns.md
linked-art/LinkedArtPatterns.md
10/20/2018, 1:46:40 AM0d45bbbb02d70
linked-art/LinkedArtPRD🖼️ Product Requirements Document
linked-art/LinkedArtPRD.md
10/20/2018, 1:46:40 AM2091bc1f37307c
linked-art/LinkedArtRoadmapLinkedArtRoadmap.md
linked-art/LinkedArtRoadmap.md
10/20/2018, 1:46:40 AM0e52e71c6bd28
linked-art/LinkedArtSaaSLinkedArtSaaS.md
linked-art/LinkedArtSaaS.md
10/20/2018, 1:46:40 AM03d260738fb29
linked-art/LinkedArtSoftwareCode and Tools
linked-art/LinkedArtSoftware.md
10/20/2018, 1:46:40 AM89e8fef24aea9
linked-art/LinkedArtSOTAWebAppLinkedArt SOTA Web App — Master Build Specification
linked-art/LinkedArtSOTAWebApp.md
10/20/2018, 1:46:40 AM129a5f0baca89c6
linked-art/LinkedArtUnmetNeedsLinkedArtUnmetNeeds.md
linked-art/LinkedArtUnmetNeeds.md
10/20/2018, 1:46:40 AM0cb35fac29cc1
linked-art/LinkedArtUseCasesLinkedArtUseCases.md
linked-art/LinkedArtUseCases.md
10/20/2018, 1:46:40 AM05c572ce8e7f3
linked-art/LinkedArtWidgetsLinkedArtWidgets.md
linked-art/LinkedArtWidgets.md
10/20/2018, 1:46:40 AM0b39911c7d97d
linked-art/LinkedDesignLinkedDesign.md
linked-art/LinkedDesign.md
10/20/2018, 1:46:40 AM00a02240471e5
linked-art/LODEngineLODEngine.md
linked-art/LODEngine.md
10/20/2018, 1:46:40 AM0ef73426f80db
linked-art/LODPipelineLODPipeline.md
linked-art/LODPipeline.md
10/20/2018, 1:46:40 AM0fe95e61ed9da
linked-art/LODToolsLODTools.md
linked-art/LODTools.md
10/20/2018, 1:46:40 AM03167947fc4e4
linked-art/metahistorybook-prod-harvest-evidenceMetaHistoryBook Production Consumer Evidence
linked-art/metahistorybook-prod-harvest-evidence.md
10/20/2018, 1:46:40 AM131577a970c8b0
linked-art/metahistorybook-reciprocal-harvest-checklistMetaHistoryBook Reciprocal Harvest Checklist
linked-art/metahistorybook-reciprocal-harvest-checklist.md
10/20/2018, 1:46:40 AM506f00beacbe6
linked-art/partitioningLinked Art Graph Partitioning
linked-art/partitioning.md
10/20/2018, 1:46:40 AM3341aff71f753
linked-art/SPARQLSPARQL.md
linked-art/SPARQL.md
10/20/2018, 1:46:40 AM050e00ed51733
linked-art/VocabulariesVocabularies.md
linked-art/Vocabularies.md
10/20/2018, 1:46:40 AM0e0574a338aaa
linked-art/wikidataexplorer-consumer-evidenceWikidata Explorer ActivityStreams Consumer Evidence
linked-art/wikidataexplorer-consumer-evidence.md
10/20/2018, 1:46:40 AM2d2dee0ad49d3
linked-art/YaleLuxYaleLux.md
linked-art/YaleLux.md
10/20/2018, 1:46:40 AM074fd47fae749
meta-wiki-art-bridgeMeta Wiki Art Bridge (MediaWiki + Wikibase)
meta-wiki-art-bridge.md
10/20/2018, 1:46:40 AM77a43fb0c48b8
ops/activity-adoption-proofActivity Feed Adoption Proof Runbook
ops/activity-adoption-proof.md
10/20/2018, 1:46:40 AM8b3c1d8e3399b
ops/ag2-workerAG2 Worker and Bridge Runbook
ops/ag2-worker.md
10/20/2018, 1:46:40 AM950efcd4e3318
ops/auth-credential-rotationAuth credential rotation runbook
ops/auth-credential-rotation.md
10/20/2018, 1:46:40 AM476e3fc6daefa
ops/deployment-preflightDeployment Preflight Runbook
ops/deployment-preflight.md
10/20/2018, 1:46:40 AM597db694dd88b
ops/era-c-exit-gate-evidenceEra C Exit-Gate Evidence Pack
ops/era-c-exit-gate-evidence.md
10/20/2018, 1:46:40 AM64fdaaa29056a
ops/evidence-script-ownershipEvidence Script Ownership
ops/evidence-script-ownership.md
10/20/2018, 1:46:40 AM48432d0529cf4
ops/external-evidence-request-packExternal Evidence Request Pack
ops/external-evidence-request-pack.md
10/20/2018, 1:46:40 AM64d89c9ef0410
ops/go-live-checklistGo-Live & Evidence-Pipeline Checklist
ops/go-live-checklist.md
10/20/2018, 1:46:40 AM6621cddad10fb
ops/k6-slok6 SLO Load Test (SOTA §20.4)
ops/k6-slo.md
10/20/2018, 1:46:40 AM4328b5b3163d4
ops/kpi-evidenceSOTA §26 KPI Evidence Input
ops/kpi-evidence.md
10/20/2018, 1:46:40 AM7bc46be9b160e
ops/launch-reviewLaunch Review Packet
ops/launch-review.md
10/20/2018, 1:46:40 AM51d414c314ee3
ops/managed-linked-art-pilot-runbookManaged Linked Art Pilot Runbook
ops/managed-linked-art-pilot-runbook.md
10/20/2018, 1:46:40 AM15b2e939be7a87
ops/otel-localLocal OpenTelemetry Wiring (Tempo / Jaeger)
ops/otel-local.md
10/20/2018, 1:46:40 AM51ebbc3b33f92
ops/outbox-projectorTransactional Outbox Projector (Postgres -> Solr/GraphDB)
ops/outbox-projector.md
10/20/2018, 1:46:40 AM6e6c332598258
ops/procurement-readiness-packetProcurement Readiness Packet
ops/procurement-readiness-packet.md
10/20/2018, 1:46:40 AM9c5685e82cca7
ops/product-constraintsProduct Constraints Gate
ops/product-constraints.md
10/20/2018, 1:46:40 AM2471d6d54d4e3
ops/reconciliation-serviceReconciliation Service (C2)
ops/reconciliation-service.md
10/20/2018, 1:46:40 AM605162c313ea9
ops/review-goalsReview Goals Audit
ops/review-goals.md
10/20/2018, 1:46:40 AM3cc1459601a26
ops/search-graph-provisioningSolr 9 + GraphDB Provisioning
ops/search-graph-provisioning.md
10/20/2018, 1:46:40 AM6fc1b15279a84
ops/security-dr-drillPen Test Baseline + DR Drill Runbook
ops/security-dr-drill.md
10/20/2018, 1:46:40 AM3a766ef3e2afc
progress/2026-05-31/era-c-readiness-snapshotEra C Readiness Snapshot (May 31, 2026)
progress/2026-05-31/era-c-readiness-snapshot.md
10/20/2018, 1:46:40 AM39672614ceb53
progress/era-historyMeta Museum — Era Delivery History
progress/era-history.md
10/20/2018, 1:46:40 AM4776bd307557c2
providers/harvard-art-museumsHarvard Art Museums API Integration Plan
providers/harvard-art-museums.md
10/20/2018, 1:46:40 AM11fa8b980154f5
providers/louvre-collections-jsonLouvre Collections JSON Integration Plan
providers/louvre-collections-json.md
10/20/2018, 1:46:40 AM11775f91a8d813
providers/moma-open-dataMoMA Open Data Snapshot
providers/moma-open-data.md
10/20/2018, 1:46:40 AM3bcdd2d8a3e6b
providers/museumsvictoria-collections-apiMuseums Victoria Collections API Integration
providers/museumsvictoria-collections-api.md
10/20/2018, 1:46:40 AM7a5408e229cdc
providers/nga-open-dataNational Gallery of Art (NGA) Open Data Integration Plan
providers/nga-open-data.md
10/20/2018, 1:46:40 AM1151c4807c8de0
providers/princeton-art-museumPrinceton University Art Museum API Integration Plan
providers/princeton-art-museum.md
10/20/2018, 1:46:40 AM11c8823f65ee41
providers/rkd-knowledge-graphRKD Knowledge Graph Integration Plan
providers/rkd-knowledge-graph.md
10/20/2018, 1:46:40 AM162b4b42f2ad42
providers/smithsonian-open-accessSmithsonian Open Access Integration Plan
providers/smithsonian-open-access.md
10/20/2018, 1:46:40 AM12db1ffa4cab02
providers/vanda-collections-apiVictoria and Albert Museum (V&A) Collections API Integration Plan
providers/vanda-collections-api.md
10/20/2018, 1:46:40 AM11755d93972233
qualityQuality & Performance
quality.md
10/20/2018, 1:46:40 AM6174add040960
reconciliation/exhibition-literature-reconciliationExhibition + Literature Reconciliation (B6.1)
reconciliation/exhibition-literature-reconciliation.md
10/20/2018, 1:46:40 AM7054bcea75896
responsible-aiResponsible AI
responsible-ai.md
10/20/2018, 1:46:40 AM8f90006650821
risk-registerRisk Register
risk-register.md
10/20/2018, 1:46:40 AM471caef3f084e
roadmap-to-10Roadmap to 10/10
roadmap-to-10.md
7/12/2026, 12:00:00 AM88cc33f95a176
roadmapMeta Museum Roadmap
roadmap.md
7/21/2026, 12:00:00 AM178ec5cdf0f68b
rsi-wikiAI-RSI compounding wiki
rsi-wiki.md
10/20/2018, 1:46:40 AM8b64914fe6f20
wikibase-cloud-migration-checklistWikibase Cloud -> Self-Host Migration Checklist
wikibase-cloud-migration-checklist.md
10/20/2018, 1:46:40 AM12170657fcbf2b

    Current Document: MetaMuseum Linked Art Activity Stream Profile

    Source updated 10/20/2018, 1:46:40 AM · SHA-256 adb634532df8 · 116 lines

    Canonical ID: linked-art/activity-stream-profile

    JSON for this doc:/api/docs/content?path=linked-art/activity-stream-profile.md

    Human link:/docs?doc=linked-art%2Factivity-stream-profile.md

    Canonical API endpoint:/api/docs/content?path=linked-art%2Factivity-stream-profile.md

    Sections (stable anchors):

    MetaMuseum Linked Art Activity Stream Profile

    Last updated: 2026-07-07

    MetaMuseum exposes `/api/activity` as an ActivityStreams 2.0 change feed with an embedded Linked Art projection on each activity item. The feed is designed for downstream collection-data consumers that need incremental synchronization while preserving Linked Art event semantics.

    Endpoints

    | Endpoint | Purpose |

    |---|---|

    | `/api/activity` | Global ActivityStreams `OrderedCollectionPage` over local write-audit, deletion, and semantic record activities. |

    | `/api/activity/collection` | IIIF Change Discovery-compatible `OrderedCollection` with mandatory `first` and `last` page references. |

    | `/api/activity/page/{page}` | Fixed ascending `OrderedCollectionPage` resources for walk-back harvesters. |

    | `/api/activity/object/{encodedObjectId}` | Object-scoped `OrderedCollectionPage` for one Linked Art object URI. |

    | `/api/activity/readiness` | External-consumer readiness ledger populated by declared feed reads. |

    | `/api/activity/subscriptions` | Durable callback subscription registry and verification target for downstream aggregators. |

    | `/api/providers/capabilities` | Provider and activity-syndication capability document, including discovery rels, endpoint templates, filters, and callback signing headers. |

    All activity endpoints support `GET` and `OPTIONS`, CORS, and `application/activity+json`.

    Item Shape

    Each `/api/activity` cursor-feed `orderedItems[]` entry is an ActivityStreams activity with:

    • `type`: `Create`, `Update`, or `Delete`
    • `endTime`: valid UTC synchronization timestamp; original invalid source times are retained under `extensions.sourceEndTime`
    • `object`: the affected object or tombstone, including dereferenceable `id`, optional `sourceId`, `activityHref`, and optional `equivalent[]` reconciliation links
    • `source.kind`: `audit`, `record-backfill`, `record-semantic`, or `deletion`
    • `linkedArt`: a Linked Art JSON-LD projection with `@context: https://linked.art/ns/v1/linked-art.json`; embedded `linkedArt.id` values dereference through `/api/events/{encodedSourceActivityId}`, carry `_complete: false`, and preserve source activity identity in `equivalent[]` when available

    For semantic collection events, `linkedArt` preserves event-centric fields such as `type`, `timespan`, `_complete`, names, classifications, object-specific target links (`produced`, `created`, `modified`, `destroyed`, `removed`, `encountered`, `formed`, `dissolved`), `used_specific_object`, and `carried_out_by` when those fields are valid for the activity class. `Set` collection records emit `Creation`/`created` rows, not physical `Production` rows, and record detail responses preserve `member_of` on the member record rather than inventing inverse `member[]` lists on the Set. Provenance wrapper activities also preserve relative `before`/`after` ordering and bundled `part[]` entries such as `Encounter`, `Acquisition`, `RightAcquisition`, `TransferOfCustody`, indeterminate `Transfer`, `Move`, and `Payment`, including nested find/rediscovery, title-transfer, rights-establishment/invalidation, percentage ownership shares, copyright, custody-transfer, unknown-transfer, movement origin/destination, multiple-owner, agent, exchange, loan, theft/loss, and commission/service payment details. Auction activities preserve auction-house/place classifications, auction-of-lot identifiers, lot `Set` `used_specific_object` values, `part_of` links to the overall auction, and provenance purchases `caused_by` the lot auction. Exhibition activities preserve exhibiting classifications, venue and organizer metadata, source descriptions, object-list `Set` links, concept `PropositionalObject` influence, and travelling-exhibition `part_of` links. Conservation coverage keeps condition assessments as `AttributeAssignment` rows with `assigned_property` and `assigned` condition types, separate from conservation `Modification` rows with technique, actor, description, timespan, and shared project `part_of` links. `Birth` and `Death` projections intentionally suppress `carried_out_by` and `used_specific_object`, matching the Linked Art activity-class restrictions.

    Default `/api/activity` cursor-feed responses and IIIF Change Discovery pages use the same partner-facing projection: valid UTC `endTime`, dereferenceable MetaMuseum `object.id` values, optional `object.sourceId` with the stored/provider record id when the projected id differs, `object.activityHref`, `source.kind`, and provider metadata. Default responses collapse duplicate rows for the same projected `object.id` to one latest-change harvest item, preferring deletion, audit, and `record-backfill` publication signals over historic `record-semantic` rows; explicit `source=` filters still expose source-specific rows for diagnostics and evidence checks. The cursor feed keeps embedded `linkedArt` by default, while IIIF Change Discovery pages are thin by default for immutable-page harvesters. Add `embed=linked-art` to a collection or page URL to include the richer `linkedArt` projection in fixed-page responses. Partners can verify the event handoff by reading `type=Update`, then dereferencing the first row's `linkedArt.id`; the returned `/api/events/...` entity should keep the same id, `_complete: false`, and source-preserving `equivalent[]`.

    The feed includes a conservative `record-backfill` source: if a stored record is not already represented by an audit or deletion activity, MetaMuseum emits one thin `Create` publication activity for that record. Semantic collection events such as production, creation, encounter, or custody transfer remain separate and do not suppress this bootstrap publication row, because external harvesters need a current-record publication signal as well as historic object events. Backfill timestamps prefer record/source update or import metadata such as `_source.importedAt`; for initial production seed rows, these are import/republication times rather than original museum object-change times. Unresolved timestamps still fall back to the epoch marker described below. Activity objects also carry an `equivalent[]` array with cross-dataset `equivalent[]` identifiers derived from stored `equivalent[]`, provider record URLs, provider collection URLs, and provider object Wikidata URLs when available.

    When an activity `object.id` dereferences through `/api/records/{id}`, the detail response serializes the record `id` as the canonical HTTP(S) detail URL, aligns the embedded record `_links.self.href` with that URL, and exposes the stored/provider identity in `equivalent[]`. This keeps a dereferenceable `object.id` on MetaMuseum Linked Art records while preserving the source record and import identity. Record detail responses also emit HTTP `Link` headers for autodiscovery: `rel="http://iiif.io/api/discovery/1#activity"` points at `/api/activity/collection`, while `rel="alternate"` points at the cursor feed and object-scoped feed.

    Semantic Event Extraction

    The feed extracts semantic events from these stored Linked Art record properties:

    | Record property | Linked Art event type | ActivityStreams type |

    |---|---|---|

    | `produced_by` | `Production` | `Create` |

    | `created_by` | `Creation` | `Create` |

    | `attributed_by` | `AttributeAssignment` | `Update` |

    | `modified_by` | `Modification` | `Update` |

    | `destroyed_by` | `Destruction` | `Update` |

    | `removed_by` | `PartRemoval` | `Create` |

    | `encountered_by` | `Encounter` | `Update` |

    | `formed_by` | `Formation` | `Create` |

    | `dissolved_by` | `Dissolution` | `Update` |

    | `born` | `Birth` | `Create` |

    | `died` | `Death` | `Update` |

    | `transferred_title_of` | `TransferOfTitle` | `Update` |

    | `transferred_custody_of` | `TransferOfCustody` | `Update` |

    | `used_for` | `Activity` | `Update` |

    Semantic `Destruction`, `Dissolution`, and `Death` describe lifecycle facts inside the Linked Art record, so MetaMuseum publishes them as ActivityStreams `Update` rows. ActivityStreams `Delete` remains reserved for real record/tombstone deletions from the deletion evidence pipeline, especially genuine upstream `404` or `410` cases.

    Write-audit and deletion events still emit a generic Linked Art `Activity` projection so every activity item has a Linked Art-facing payload, even when the source event is operational rather than semantic.

    Synchronization

    Consumers may use:

    • `limit`: page size, clamped to `1..100`
    • `offset`: backward-compatible page offset
    • `cursor`: stable descending-time cursor from `nextCursor`
    • `type`: `Create`, `Update`, or `Delete`
    • `source`: `audit`, `record-backfill`, `record-semantic`, or `deletion`
    • `provider`: exact provider key such as `met`, `vanda`, or `museumsvictoria`
    • `object` / `objectId`: exact object URI filter
    • `since` / `until`: timestamp range filters

    The default page size is `25` when `limit` is absent, and explicit `limit` values are clamped to `1..100`.

    The canonical `next` link prefers cursor sync only when the page boundary has a valid non-fallback timestamp. If a source event carries an invalid timestamp, `next` falls back to the offset-based `nextPage` link instead of emitting an unusable cursor. The `nextPage` alias remains offset-based for existing consumers.

    IIIF Change Discovery Compatibility

    This profile now includes a first IIIF Change Discovery API 1.0 compatibility layer. `/api/activity/collection` exposes a spec-shaped `OrderedCollection` with mandatory `first` and `last` page references, including the mandatory collection `last` link, and `/api/activity/page/{page}` exposes fixed ascending `OrderedCollectionPage` resources so IIIF/LOUD harvesters can start at `last`, walk `prev`, and stop at their last processed timestamp. Declared consumer IDs sent to the collection and page endpoints are recorded in the same readiness ledger as cursor-feed reads; page reads also merge the concrete activity types observed on that page. The original descending cursor API remains documented as a MetaMuseum extension for tail-following consumers.

    Example walk-back seed:

    
    curl "https://www.metamuseum.org/api/activity/collection?limit=100&provider=met" \
      -H "accept: application/activity+json"
    

    Each fixed page lists older activities first and newer activities last, matching the Change Discovery consumption model. Fixed pages omit absent `prev` and `next` links, normalize non-parseable source times to a valid UTC fallback with the original value preserved under `extensions.sourceEndTime`, and keep record-backed `object.id` values dereferenceable by pointing them at `/api/records/{encodedSourceRecordId}`. Epoch fallback timestamps are structurally valid but are not treated as production-quality incremental-sync evidence because they sort as the oldest possible changes; the evidence-grade production consumer run should wait for provider backfill with real event, import, or republication times and populated reconciliation hooks. Filter parameters such as `provider`, `type`, `source`, `object`, `since`, and `until` are preserved across collection, page, and cursor URLs; `embed=linked-art` is preserved across fixed-page traversal when requested.

    Open partner compatibility work:

    • Use the passing `metahistorybook-harvester-prod`, `daily-metahistorybook-prod`, and `wikidataexplorer-metamuseum-prod` reads plus their three verified callback rows as production-grade external-consumer evidence, then collect observed `Update`/`Delete` feed-read coverage for the strict syndication gate.
    • Produce `Update` coverage only from a real reviewed record revision, which audits an existing-record POST as `record.update`; produce `Delete` coverage only from `pnpm activity:tombstone:evidence` after a canonical upstream record returns HTTP `404` or `410` with a real evidence reference.
    • Expand cross-dataset `equivalent[]` identifiers beyond the current object-level provider URL and object-Wikidata mapping wherever additional providers expose safe object-level equivalents.
    • Publish an explicit `Refresh` activity if a future full republication needs to mark a new corpus baseline.
    • State delivery, deletion-tombstone retention, and cursor monotonicity guarantees with concrete retention windows.
    • Collect evidence from a real signed callback delivery. Subscription records now declare HMAC-SHA256 signing metadata with `x-metamuseum-signature` and `x-metamuseum-signature-timestamp`, but strict evidence still requires an observed partner callback POST.
    • Publish retry semantics for callback delivery.

    External Evidence Contract

    Partner-owned consumers identify themselves with `x-linked-art-consumer-id` when reading `/api/activity`, `/api/activity/collection`, `/api/activity/page/{page}`, or an object-scoped feed. A consumer counts toward strict evidence only after real feed-read telemetry, activity-type coverage, durable subscription evidence, callback verification, and the refreshed syndication-evidence packet are present. Community outreach and placeholder IDs remain context only.

    Partner onboarding steps and copy/paste commands live in activity-stream-partner-quickstart.md(activity-stream-partner-quickstart.md).

    Verification:

    
    node --import tsx --test --test-concurrency=1 tests/api/activity.test.ts tests/api/activity-as2.test.ts
    pnpm activity:syndication:evidence
    

    AI/agent quick endpoints