---
title: "Create a scouting event from a Vortex session"
method: POST
path: "/api/vortex/events"
tags: ["Vortex"]
---

# Create a scouting event from a Vortex session

`POST /api/vortex/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/vortex/events`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/sponsorunited/apis/sponsorunited-api/docs/api/vortex/events/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new event and its report for the specified user. That user is recorded as the report's Captured By and is its first Assigned To. Authenticated via X-API-Key.

## Request body

- VortexCreateEventRequest
  - `user_id` integer, required: ID of the user who captured the session. Recorded as the report's Captured By and used as its first Assigned To.
  - `hometeam_id` integer, required: ID of the home team / property
  - `awayteam_id` integer, nullable: ID of the away team (defaults to hometeam_id if omitted)
  - `name` string, required: Event name
  - `event_type` 'season' | 'single' | 'multi' | 'social', required: Type of event
  - `season` integer, required: Season year (e.g. 2026)
  - `scheduled` string, date-time, nullable: ISO 8601 scheduled datetime
  - `venue_id` integer, nullable: Venue ID
  - `attended_date` string, date-time, nullable: When the scout was demonstrably on site — the earliest photo capture time. Falls back to scheduled when omitted.
  - `captured_by_name` string, nullable: Name of the person who captured the session, stored as text on the report next to captured_by. Sent for Vortex email-signup scouts, who have no user of their own and are pushed as a shared user, so captured_by alone cannot tell them apart. Recorded once when the report is created; never changed afterwards.
  - `captured_by_email` string, nullable: Email of the person who captured the session, stored as text on the report next to captured_by. Same purpose and write-once rule as captured_by_name. Informational and stored as sent: it is not validated as an email address, so an address vortex-api accepted never fails the push.

## Response `201`

Event created successfully

- object
  - `id` integer
  - `name` string
  - `event_type` string
  - `season` integer
  - `hometeam_id` integer
  - `awayteam_id` integer
  - `scheduled` string, date-time, nullable

## 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)
