---
title: "getActivity"
method: GET
path: "/v1/entity/activity/{id}"
tags: ["Activity"]
---

# getActivity

`GET /v1/entity/activity/{id}`

Get activity by id

## Path parameters

- `id` string, ulid, required — See https://github.com/ulid/spec

## Query parameters

- `anonymize` boolean
- `operations_size` integer
- `operations_from` integer

## Response `200`

Success

- ActivityItem
  - `_id` string, ulid — See https://github.com/ulid/spec
  - `timestamp` string, date-time
  - `type` string, required — A type for the activity. Used to categorize activities in the activity feed and for event subscriptions. Built-in entity activity types (custom activities can be defined as well): - EntityCreated - EntityUpdated - EntityDeleted - EntitySoftDeleted - EntityRestored - RelationsAdded - RelationsRemoved - RelationsSoftDeleted - RelationsRestored - RelationsDeleted - ChangesetCreated - ChangesetAutoCleared - ChangesetApplied - ChangesetDismissed
  - `title` string, required — Title for activity. Supports handlebars syntax.
  - `message` string, required — Message for activity. Supports handlebars syntax.
  - `payload` object
  - `pending` boolean — Indicates whether the activity is in the pending state. Pending activities are not yet visible in the activity feed and events are not yet dispatched.
  - `caller` ActivityCallerContext
    - `EpilotAuth` object
      - `token` object
        - `sub` string
        - `email` string
        - `cognito:username` string
        - `custom:ivy_user_id` string
  - `operations_total` integer — Count of total operations attached to this activity
  - `operations` EntityOperation[]
    - `entity` string, uuid, required
    - `org` string, required
    - `activity_id` string, ulid — See https://github.com/ulid/spec
    - `activity_type` string — A type for the activity. Used to categorize activities in the activity feed and for event subscriptions. Built-in entity activity types (custom activities can be defined as well): - EntityCreated - EntityUpdated - EntityDeleted - EntitySoftDeleted - EntityRestored - RelationsAdded - RelationsRemoved - RelationsSoftDeleted - RelationsRestored - RelationsDeleted - ChangesetCreated - ChangesetAutoCleared - ChangesetApplied - ChangesetDismissed
    - `operation` 'createEntity' | 'updateEntity' | 'deleteEntity' | 'softDeleteEntity' | 'restoreEntity' | 'relationsAdded' | 'relationsRemoved' | 'relationsSoftDeleted' | 'relationsRestored' | 'relationsDeleted', required
    - `params` object
      - `id` string, uuid
      - `slug` string — URL-friendly identifier for the entity schema
    - `payload` object
      - `_id` string, uuid
      - `_org` string — Organization Id the entity belongs to
      - `_owners` EntityOwner[]
        - `org_id` string, required
        - `user_id` string
      - `_schema` string — URL-friendly identifier for the entity schema
      - `_title` string, nullable — Title of entity
      - `_tags` string[], nullable
      - `_created_at` string, date-time, nullable
      - `_updated_at` string, date-time, nullable
      - `_deleted_at` string, date-time, nullable
      - `_acl` object — Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
        - `view` string[]
        - `edit` string[]
        - `delete` string[]
      - `_purpose` string[], nullable
      - `_purpose_name` string[], nullable — Automatically computed purpose names from _purpose attribute
      - `_manifest` string[], nullable — Manifest ID used to create/update the entity
      - `_changesets` object, nullable — Pending attribute changesets for attributes configured with external or approval edit mode. The value shape is `Changeset` (`proposed_value`, `created_at`, `edit_mode`, ...) and is what `:apply` / `:dismiss` operate on. Read-only via normal entity PATCH/PUT operations — those handlers strip `_changesets` from request bodies. Use the changeset management endpoints to mutate this field.
    - `diff` object
      - `added` object — New attributes added to the entity as part of the operation
        - `_id` string, uuid
        - `_org` string — Organization Id the entity belongs to
        - `_owners` EntityOwner[]
          - `org_id` string, required
          - `user_id` string
        - `_schema` string — URL-friendly identifier for the entity schema
        - `_title` string, nullable — Title of entity
        - `_tags` string[], nullable
        - `_created_at` string, date-time, nullable
        - `_updated_at` string, date-time, nullable
        - `_deleted_at` string, date-time, nullable
        - `_acl` object — Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
          - `view` string[]
          - `edit` string[]
          - `delete` string[]
        - `_purpose` string[], nullable
        - `_purpose_name` string[], nullable — Automatically computed purpose names from _purpose attribute
        - `_manifest` string[], nullable — Manifest ID used to create/update the entity
        - `_changesets` object, nullable — Pending attribute changesets for attributes configured with external or approval edit mode. The value shape is `Changeset` (`proposed_value`, `created_at`, `edit_mode`, ...) and is what `:apply` / `:dismiss` operate on. Read-only via normal entity PATCH/PUT operations — those handlers strip `_changesets` from request bodies. Use the changeset management endpoints to mutate this field.
      - `updated` object — Attributes updated in the entity. Note: These values contain the previous values before the update!
        - `_id` string, uuid
        - `_org` string — Organization Id the entity belongs to
        - `_owners` EntityOwner[]
          - `org_id` string, required
          - `user_id` string
        - `_schema` string — URL-friendly identifier for the entity schema
        - `_title` string, nullable — Title of entity
        - `_tags` string[], nullable
        - `_created_at` string, date-time, nullable
        - `_updated_at` string, date-time, nullable
        - `_deleted_at` string, date-time, nullable
        - `_acl` object — Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
          - `view` string[]
          - `edit` string[]
          - `delete` string[]
        - `_purpose` string[], nullable
        - `_purpose_name` string[], nullable — Automatically computed purpose names from _purpose attribute
        - `_manifest` string[], nullable — Manifest ID used to create/update the entity
        - `_changesets` object, nullable — Pending attribute changesets for attributes configured with external or approval edit mode. The value shape is `Changeset` (`proposed_value`, `created_at`, `edit_mode`, ...) and is what `:apply` / `:dismiss` operate on. Read-only via normal entity PATCH/PUT operations — those handlers strip `_changesets` from request bodies. Use the changeset management endpoints to mutate this field.
      - `deleted` object — Attributes removed from the entity as part of the operation
        - `_id` string, uuid
        - `_org` string — Organization Id the entity belongs to
        - `_owners` EntityOwner[]
          - `org_id` string, required
          - `user_id` string
        - `_schema` string — URL-friendly identifier for the entity schema
        - `_title` string, nullable — Title of entity
        - `_tags` string[], nullable
        - `_created_at` string, date-time, nullable
        - `_updated_at` string, date-time, nullable
        - `_deleted_at` string, date-time, nullable
        - `_acl` object — Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
          - `view` string[]
          - `edit` string[]
          - `delete` string[]
        - `_purpose` string[], nullable
        - `_purpose_name` string[], nullable — Automatically computed purpose names from _purpose attribute
        - `_manifest` string[], nullable — Manifest ID used to create/update the entity
        - `_changesets` object, nullable — Pending attribute changesets for attributes configured with external or approval edit mode. The value shape is `Changeset` (`proposed_value`, `created_at`, `edit_mode`, ...) and is what `:apply` / `:dismiss` operate on. Read-only via normal entity PATCH/PUT operations — those handlers strip `_changesets` from request bodies. Use the changeset management endpoints to mutate this field.
    - `source_context` EntityOperationSourceContext — Billing and audit source context for the operation event.
      - `source` 'portal' | 'epilot' | 'erp' | 'system' | 'api' | 'external' | 'journey' | 'automation' | 'unknown', required — Normalized source bucket for the operation.
      - `source_label` string — Original free-form source label from the caller or changeset, when available.
      - `source_system` string — Optional upstream system label, for example an ERP system name.
      - `source_reference` string — Optional upstream change reference.
      - `actor_type` 'user' | 'portal_user' | 'api_client' | 'automation' | 'system'
      - `actor_id` string
      - `effective_at` string, date-time
    - `_workflow_origin` object — Internal property for workflow origin tracking and infinite loop prevention. Populated when an entity update originates from a workflow execution. This allows downstream automation services to prevent circular triggering.
      - `workflow_exec_id` string — The ID of the workflow execution that triggered this entity update
      - `flow_template_id` string — The flow template ID - used to detect and prevent circular triggering
    - `_automation_chain` string[] — Ordered automation flow ids that caused this change; used to break multi-automation trigger loops.

## Other responses

- `404` — The requested resource was not found

---

[API](https://skmtc.net/epilot/apis/entity-api.md) · [All operations](https://skmtc.net/epilot/apis/entity-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/entity-api/revisions/3020984570dc/schema)
