---
title: "List user events"
method: GET
path: "/api/user/events"
tags: ["User Management"]
---

# List user events

`GET /api/user/events`

## Request

- Base URL: `https://api.sponsorunited.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sponsorunited.com/api/user/events`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sponsorunited/apis/sponsorunited-api/docs/api/user/events/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves a paginated list of user events with optional filtering.

## Query parameters

- `page` integer, required
- `per_page` integer
- `status` string
- `user` string
- `scouting_groups` string
- `season` string
- `type` string
- `property_id` integer
- `property_name` string
- `order_by` string
- `order` 'asc' | 'desc'

## Response `200`

Paginated list of user events

- object
  - `data` UserEvent[]
    - `id` integer: captured_by is write-once: UserEventObserver::updating restores the original value when the column is dirty and the stored value is not null, including attempts to clear it. A first write uses an atomic update constrained by captured_by IS NULL so a concurrent write cannot be overwritten. captured_by_name and captured_by_email are plain text naming the person who captured a Vortex session when captured_by is a shared user (Vortex email-signup scouts have no user of their own). Only AuditService::createScoutingEvent writes them, when it creates the report, and moving a report to another event carries them to the report that replaces it; no update path accepts them, and they are null for every other report. Both go through storeCapturedByIdentity / copyCapturedByIdentity, never a plain attribute write (see there for why).
    - `delegator_id` integer, nullable
    - `captured_by` object, nullable: User who captured the report, including person_profile when eager loaded
      - `id` integer
      - `person_profile` PersonProfile
        - `id` integer
        - `user_id` integer
        - `avatar_id` integer, nullable
        - `person_profile_job_role_id` integer, nullable
        - `market_id` integer, nullable
        - `name` string
        - `job_title` string, nullable
        - `location` string, nullable
        - `school` string, nullable
        - `info` string, nullable
        - `suggested` integer, nullable
        - `previous_suggested` integer, nullable
        - `approved` boolean
        - `created_at` string, date-time
        - `updated_at` string, date-time
        - `deleted_at` string, date-time
    - `captured_by_name` string, nullable: Name of the person who captured the report when captured_by is a shared user (Vortex email-signup scouts). Null otherwise. Set once at creation.
    - `captured_by_email` string, nullable: Email of the person who captured the report when captured_by is a shared user (Vortex email-signup scouts). Null otherwise. Set once at creation.
    - `user_id` integer
    - `event_id` integer
    - `team_id` integer
    - `status` integer, nullable
    - `type` integer
    - `due_date` string, date-time, nullable
    - `attended_date` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `current_page` integer
  - `last_page` integer
  - `per_page` integer
  - `total` integer

## Other responses

- `401`: Unauthenticated
- `422`: Validation error

---

[API](https://skmtc.dev/sponsorunited/apis/sponsorunited-api.md) - [All operations](https://skmtc.dev/sponsorunited/apis/sponsorunited-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sponsorunited/apis/sponsorunited-api/revisions/cbf1ca5bff8f?raw)
