{"id":"linked-art/api/schema-provenance-activity","relativePath":"linked-art/api/schema-provenance-activity.md","title":"Linked Art API Schema: Provenance Activity","markdown":"# Linked Art API Schema: Provenance Activity\n\n**Last refreshed:** 2026-07-06\n\nSource: [Provenance Activity schema docs](https://linked.art/api/1.0/schema_docs/provenance/) and [provenance.json](https://linked.art/api/1.0/schema/provenance.json), part of Linked Art API 1.0, published under [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/). This is a project summary; the upstream schema is authoritative.\n\n## Purpose\n\nThe Provenance Activity schema describes `crm:E7_Activity`: a broad activity during which ownership, custody, location, rights, or other relationships for one or more objects changed. In Linked Art API terms this is the schema-backed provenance wrapper shape, with detailed transfer, payment, move, encounter, and rights-change activities carried in `part[]`.\n\nRelated upstream references:\n\n- [Provenance Activity API endpoint](https://linked.art/api/1.0/endpoint/provenance_activity/)\n- [Object provenance model documentation](https://linked.art/model/provenance/)\n\n## Top-Level Constraints\n\n- Schema type: object.\n- CRM class: `crm:E7_Activity`.\n- Additional top-level properties are not allowed.\n- `@context`: required.\n- `id`: required URI string for the entity.\n- `type`: required class string. The practical Linked Art class is `Activity`.\n- `_label`: required developer-facing human-readable label.\n- `classified_as`: required array of `Type` structures. Provenance Activity records must include the Provenance Activity classification.\n\n## Permitted Top-Level Fields\n\n- `identified_by`: array of `Name` or `Identifier` structures.\n- `classified_as`: required array of `Type` structures that classify this provenance activity.\n- `referred_to_by`: array of embedded statements or textual references about the activity.\n- `equivalent`: array of compact references to equivalent identities.\n- `representation`: array of embedded `VisualItem` structures linked through digital objects.\n- `member_of`: array of `Set` references.\n- `subject_of`: array of embedded `LinguisticObject` web pages or digital objects focused on this activity.\n- `attributed_by`: array of `AttributeAssignment` structures relating another entity to this activity.\n- `during`: array of `Period` references that contain this activity.\n- `after`: array of `Period`, `Event`, or `Activity` references that end before this activity begins.\n- `before`: array of `Period`, `Event`, or `Activity` references that start after this activity ends.\n- `took_place_at`: array of `Place` references where the activity occurred.\n- `timespan`: `TimeSpan` structure for the date-time range of the activity.\n- `caused_by`: array of events that caused this activity.\n- `carried_out_by`: array of `Person` or `Group` references responsible for the activity.\n- `used_specific_object`: array of object or set references used to carry out the activity.\n- `influenced_by`: array of entities that influenced the activity.\n- `technique`: array of `Type` references for techniques used.\n- `part_of`: reference to an identified `Event` or `Activity` of which this activity is part.\n- `part`: array of detailed provenance activity parts.\n\n## Embedded Structures Highlighted By The Schema\n\n`identified_by` items can be:\n\n- `Name` structures, with required `type` and `content`, plus optional `_label`, nested `identified_by`, `referred_to_by`, `classified_as`, `language`, and `part`.\n- `Identifier` structures, following the shared identifier pattern.\n\n`referred_to_by` items are embedded `LinguisticObject` statements:\n\n- `type`: required.\n- `content`: required.\n- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `format` are allowed.\n\n`representation` items are embedded `VisualItem` structures:\n\n- `type`: required.\n- `_label`, `identified_by`, `classified_as`, `referred_to_by`, and `digitally_shown_by` are allowed.\n- Nested digital objects can carry `access_point`, `format`, and `conforms_to`.\n\n`subject_of` items are embedded `LinguisticObject` structures:\n\n- `type`: required.\n- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `digitally_carried_by` are allowed.\n\n## Provenance Part Types\n\nThe `part` array can include these detailed activity shapes:\n\n- `Acquisition`: ownership transfer. `transferred_title_of` is required; `transferred_title_from` and `transferred_title_to` identify previous and new owners when known.\n- `RightAcquisition`: rights establishment or invalidation, using `Right` structures.\n- `TransferOfCustody`: custody transfer, with transferred object, previous custodian, and new custodian fields.\n- `Payment`: payment activity, including `paid_amount`, `paid_from`, and `paid_to` when known.\n- `Encounter`: discovery or encounter event, using `encountered` object references.\n- `Move`: location movement, using `moved`, `moved_from`, and `moved_to`.\n- `Activity`: generic provenance part for cases such as promises or other activity classifications.\n\nEach part is also an activity-like structure and can carry names, classifications, statements, places, timespan, cause, actor responsibility, used objects, influences, techniques, and temporal ordering.\n\n## Required Part Evidence\n\nThe schema makes several part-level evidence boundaries explicit:\n\n- `Acquisition.transferred_title_of`: required object references for title transfer.\n- `TransferOfCustody.transferred_custody_of`: required object references for custody transfer.\n- `Encounter.encountered`: required object references for discovery or find events.\n- `Move.moved`: required object references for movement.\n- `RightAcquisition.establishes`: required rights structures for rights establishment.\n\nDo not use an `Acquisition` when the evidence only proves an unknown transfer, loan, or custody change. Use the more specific part shape only when the claim is supported.\n\n## Meta Museum Notes\n\nMeta Museum already preserves provenance wrappers and bundled `part[]` activities in ActivityStreams projections and record fixtures. Existing coverage includes `Acquisition`, `Payment`, `TransferOfCustody`, `Encounter`, `RightAcquisition`, `Move`, `Transfer`, promise activities, `Right` structures, ownership and custody transfers, movement origins/destinations, auction lot sets, commission/service payment details, unknown-transfer evidence, and rights establishment/invalidation.\n\nThis expanded schema adds the endpoint-level validation target for provenance exports: required identity fields, required top-level `classified_as`, no unexpected top-level properties, explicit `part[]` provenance parts, and required part-specific evidence fields.\n\n## Test Ideas\n\n- Validate representative provenance activity records against `provenance.json`.\n- Assert `@context`, `id`, `type`, `_label`, and `classified_as` are present.\n- Assert unknown top-level properties fail schema validation.\n- Preserve top-level `during`, `after`, `before`, `took_place_at`, `timespan`, `caused_by`, `carried_out_by`, `used_specific_object`, `influenced_by`, `technique`, and `part_of`.\n- Preserve `part[]` entries for `Acquisition`, `Payment`, `TransferOfCustody`, `Encounter`, `RightAcquisition`, `Move`, and generic classified `Activity`.\n- Assert `Acquisition.transferred_title_of`, `TransferOfCustody.transferred_custody_of`, `Encounter.encountered`, `Move.moved`, and `RightAcquisition.establishes` are present when those part types are used.\n","sections":[{"level":2,"heading":"Purpose","anchor":"purpose"},{"level":2,"heading":"Top-Level Constraints","anchor":"top-level-constraints"},{"level":2,"heading":"Permitted Top-Level Fields","anchor":"permitted-top-level-fields"},{"level":2,"heading":"Embedded Structures Highlighted By The Schema","anchor":"embedded-structures-highlighted-by-the-schema"},{"level":2,"heading":"Provenance Part Types","anchor":"provenance-part-types"},{"level":2,"heading":"Required Part Evidence","anchor":"required-part-evidence"},{"level":2,"heading":"Meta Museum Notes","anchor":"meta-museum-notes"},{"level":2,"heading":"Test Ideas","anchor":"test-ideas"}],"html":"<h1 id=\"linked-art-api-schema-provenance-activity\">Linked Art API Schema: Provenance Activity</h1>\n<p><strong>Last refreshed:</strong> 2026-07-06</p>\n<p>Source: <a href=\"https://linked.art/api/1.0/schema_docs/provenance/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">Provenance Activity schema docs</a> and <a href=\"https://linked.art/api/1.0/schema/provenance.json\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">provenance.json</a>, part of Linked Art API 1.0, published under <a href=\"http://creativecommons.org/licenses/by/4.0/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">CC BY 4.0</a>. This is a project summary; the upstream schema is authoritative.</p>\n<h2 id=\"purpose\">Purpose</h2>\n<p>The Provenance Activity schema describes `crm:E7_Activity`: a broad activity during which ownership, custody, location, rights, or other relationships for one or more objects changed. In Linked Art API terms this is the schema-backed provenance wrapper shape, with detailed transfer, payment, move, encounter, and rights-change activities carried in `part[]`.</p>\n<p>Related upstream references:</p>\n<ul><li><a href=\"https://linked.art/api/1.0/endpoint/provenance_activity/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">Provenance Activity API endpoint</a></li><li><a href=\"https://linked.art/model/provenance/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">Object provenance model documentation</a></li></ul>\n<h2 id=\"top-level-constraints\">Top-Level Constraints</h2>\n<ul><li>Schema type: object.</li><li>CRM class: `crm:E7_Activity`.</li><li>Additional top-level properties are not allowed.</li><li>`@context`: required.</li><li>`id`: required URI string for the entity.</li><li>`type`: required class string. The practical Linked Art class is `Activity`.</li><li>`_label`: required developer-facing human-readable label.</li><li>`classified_as`: required array of `Type` structures. Provenance Activity records must include the Provenance Activity classification.</li></ul>\n<h2 id=\"permitted-top-level-fields\">Permitted Top-Level Fields</h2>\n<ul><li>`identified_by`: array of `Name` or `Identifier` structures.</li><li>`classified_as`: required array of `Type` structures that classify this provenance activity.</li><li>`referred_to_by`: array of embedded statements or textual references about the activity.</li><li>`equivalent`: array of compact references to equivalent identities.</li><li>`representation`: array of embedded `VisualItem` structures linked through digital objects.</li><li>`member_of`: array of `Set` references.</li><li>`subject_of`: array of embedded `LinguisticObject` web pages or digital objects focused on this activity.</li><li>`attributed_by`: array of `AttributeAssignment` structures relating another entity to this activity.</li><li>`during`: array of `Period` references that contain this activity.</li><li>`after`: array of `Period`, `Event`, or `Activity` references that end before this activity begins.</li><li>`before`: array of `Period`, `Event`, or `Activity` references that start after this activity ends.</li><li>`took_place_at`: array of `Place` references where the activity occurred.</li><li>`timespan`: `TimeSpan` structure for the date-time range of the activity.</li><li>`caused_by`: array of events that caused this activity.</li><li>`carried_out_by`: array of `Person` or `Group` references responsible for the activity.</li><li>`used_specific_object`: array of object or set references used to carry out the activity.</li><li>`influenced_by`: array of entities that influenced the activity.</li><li>`technique`: array of `Type` references for techniques used.</li><li>`part_of`: reference to an identified `Event` or `Activity` of which this activity is part.</li><li>`part`: array of detailed provenance activity parts.</li></ul>\n<h2 id=\"embedded-structures-highlighted-by-the-schema\">Embedded Structures Highlighted By The Schema</h2>\n<p>`identified_by` items can be:</p>\n<ul><li>`Name` structures, with required `type` and `content`, plus optional `_label`, nested `identified_by`, `referred_to_by`, `classified_as`, `language`, and `part`.</li><li>`Identifier` structures, following the shared identifier pattern.</li></ul>\n<p>`referred_to_by` items are embedded `LinguisticObject` statements:</p>\n<ul><li>`type`: required.</li><li>`content`: required.</li><li>`_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `format` are allowed.</li></ul>\n<p>`representation` items are embedded `VisualItem` structures:</p>\n<ul><li>`type`: required.</li><li>`_label`, `identified_by`, `classified_as`, `referred_to_by`, and `digitally_shown_by` are allowed.</li><li>Nested digital objects can carry `access_point`, `format`, and `conforms_to`.</li></ul>\n<p>`subject_of` items are embedded `LinguisticObject` structures:</p>\n<ul><li>`type`: required.</li><li>`_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `digitally_carried_by` are allowed.</li></ul>\n<h2 id=\"provenance-part-types\">Provenance Part Types</h2>\n<p>The `part` array can include these detailed activity shapes:</p>\n<ul><li>`Acquisition`: ownership transfer. `transferred_title_of` is required; `transferred_title_from` and `transferred_title_to` identify previous and new owners when known.</li><li>`RightAcquisition`: rights establishment or invalidation, using `Right` structures.</li><li>`TransferOfCustody`: custody transfer, with transferred object, previous custodian, and new custodian fields.</li><li>`Payment`: payment activity, including `paid_amount`, `paid_from`, and `paid_to` when known.</li><li>`Encounter`: discovery or encounter event, using `encountered` object references.</li><li>`Move`: location movement, using `moved`, `moved_from`, and `moved_to`.</li><li>`Activity`: generic provenance part for cases such as promises or other activity classifications.</li></ul>\n<p>Each part is also an activity-like structure and can carry names, classifications, statements, places, timespan, cause, actor responsibility, used objects, influences, techniques, and temporal ordering.</p>\n<h2 id=\"required-part-evidence\">Required Part Evidence</h2>\n<p>The schema makes several part-level evidence boundaries explicit:</p>\n<ul><li>`Acquisition.transferred_title_of`: required object references for title transfer.</li><li>`TransferOfCustody.transferred_custody_of`: required object references for custody transfer.</li><li>`Encounter.encountered`: required object references for discovery or find events.</li><li>`Move.moved`: required object references for movement.</li><li>`RightAcquisition.establishes`: required rights structures for rights establishment.</li></ul>\n<p>Do not use an `Acquisition` when the evidence only proves an unknown transfer, loan, or custody change. Use the more specific part shape only when the claim is supported.</p>\n<h2 id=\"meta-museum-notes\">Meta Museum Notes</h2>\n<p>Meta Museum already preserves provenance wrappers and bundled `part[]` activities in ActivityStreams projections and record fixtures. Existing coverage includes `Acquisition`, `Payment`, `TransferOfCustody`, `Encounter`, `RightAcquisition`, `Move`, `Transfer`, promise activities, `Right` structures, ownership and custody transfers, movement origins/destinations, auction lot sets, commission/service payment details, unknown-transfer evidence, and rights establishment/invalidation.</p>\n<p>This expanded schema adds the endpoint-level validation target for provenance exports: required identity fields, required top-level `classified_as`, no unexpected top-level properties, explicit `part[]` provenance parts, and required part-specific evidence fields.</p>\n<h2 id=\"test-ideas\">Test Ideas</h2>\n<ul><li>Validate representative provenance activity records against `provenance.json`.</li><li>Assert `@context`, `id`, `type`, `_label`, and `classified_as` are present.</li><li>Assert unknown top-level properties fail schema validation.</li><li>Preserve top-level `during`, `after`, `before`, `took_place_at`, `timespan`, `caused_by`, `carried_out_by`, `used_specific_object`, `influenced_by`, `technique`, and `part_of`.</li><li>Preserve `part[]` entries for `Acquisition`, `Payment`, `TransferOfCustody`, `Encounter`, `RightAcquisition`, `Move`, and generic classified `Activity`.</li><li>Assert `Acquisition.transferred_title_of`, `TransferOfCustody.transferred_custody_of`, `Encounter.encountered`, `Move.moved`, and `RightAcquisition.establishes` are present when those part types are used.</li></ul>","updatedAt":"2026-07-06T00:00:00.000Z","checksum":"dd2fe5345a6a7ec1eac013b63932353ca80e2fd45520db2678b6d9d8f814653a","checksumPrefix":"dd2fe5345a6a","anchorCount":8,"lineCount":114,"rawUrl":"/api/docs/content?path=linked-art%2Fapi%2Fschema-provenance-activity.md","htmlUrl":"/docs?doc=linked-art%2Fapi%2Fschema-provenance-activity.md","apiUrl":"/api/docs/content?path=linked-art%2Fapi%2Fschema-provenance-activity.md"}