Events API
The events module provides access to Valorant esports events, tournaments, and competitions.
Overview
Access VCT Champions, VCT Masters, regional leagues, Game Changers tournaments, and other Valorant esports events. Get event details, matches, and standings.
Event-related API endpoints and models.
This module provides access to: - events.list_events(): List all events with filters - events.Info: Get event header/info - events.Matches: Get event matches - events.MatchSummary: Get event matches summary - events.Standings: Get event standings - events.Teams: Get event teams
- class vlrdevapi.events.EventTier(value)[source]
-
Event tier options.
- ALL = 'all'
- VCT = 'vct'
- VCL = 'vcl'
- T3 = 't3'
- GC = 'gc'
- CG = 'cg'
- OFFSEASON = 'offseason'
- class vlrdevapi.events.EventStatus(value)[source]
-
Event status filter options.
- ALL = 'all'
- UPCOMING = 'upcoming'
- ONGOING = 'ongoing'
- COMPLETED = 'completed'
- class vlrdevapi.events.ListEvent(id: int, name: str, status: Literal['upcoming', 'ongoing', 'completed'], url: str, region: str | None = None, start_date: date | None = None, end_date: date | None = None, start_text: str | None = None, end_text: str | None = None, prize: str | None = None)[source]
Bases:
objectEvent summary from events listing.
- class vlrdevapi.events.Info(id: int, name: str, subtitle: str | None = None, date_text: str | None = None, start_date: date | None = None, end_date: date | None = None, prize: str | None = None, location: str | None = None, regions: list[str] = <factory>)[source]
Bases:
objectEvent header/info details.
- class vlrdevapi.events.MatchTeam(name: str, id: int | None = None, country: str | None = None, score: int | None = None, is_winner: bool | None = None)[source]
Bases:
objectTeam in an event match.
- class vlrdevapi.events.Match(match_id: int, event_id: int, status: str, teams: tuple[MatchTeam, MatchTeam], url: str, stage: str | None = None, phase: str | None = None, date: date | None = None, time: str | None = None)[source]
Bases:
objectEvent match entry.
- class vlrdevapi.events.StageMatches(name: str, match_count: int, completed: int, upcoming: int, ongoing: int, start_date: date | None = None, end_date: date | None = None)[source]
Bases:
objectMatch summary for a stage.
- class vlrdevapi.events.MatchSummary(event_id: int, total_matches: int, completed: int, upcoming: int, ongoing: int, stages: list[StageMatches] = <factory>)[source]
Bases:
objectEvent matches summary.
- stages: list[StageMatches]
- class vlrdevapi.events.StandingEntry(place: str, prize: str | None = None, team_id: int | None = None, team_name: str | None = None, team_country: str | None = None, note: str | None = None)[source]
Bases:
objectSingle standing entry.
- class vlrdevapi.events.Standings(event_id: int, stage_path: str, url: str, entries: list[StandingEntry] = <factory>)[source]
Bases:
objectEvent standings.
- entries: list[StandingEntry]
- class vlrdevapi.events.EventStage(name: str, series_id: str, url: str)[source]
Bases:
objectAvailable stage option for an event matches page.
- class vlrdevapi.events.Team(id: int, name: str, type: str | None = None)[source]
Bases:
objectTeam information for an event.
- vlrdevapi.events.list_events(tier: EventTier | Literal['all', 'vct', 'vcl', 't3', 'gc', 'cg', 'offseason'] = EventTier.ALL, region: str | None = None, status: EventStatus | Literal['all', 'upcoming', 'ongoing', 'completed'] = EventStatus.ALL, page: int = 1, limit: int | None = None, timeout: float | None = None) list[ListEvent][source]
List events with filters.
- Parameters:
tier – Event tier (use EventTier enum or string)
region – Region filter (optional)
status – Event status (use EventStatus enum or string)
page – Page number (1-indexed)
limit – Maximum number of events to return (optional)
timeout – Request timeout in seconds
- Returns:
List of events
Example
>>> import vlrdevapi as vlr >>> from vlrdevapi.events import EventTier, EventStatus >>> events = vlr.events.list_events(tier=EventTier.VCT, status=EventStatus.ONGOING, limit=10) >>> for event in events: ... print(f"{event.name} - {event.status}")
- vlrdevapi.events.info(event_id: int, timeout: float | None = None) Info | None[source]
Get event header/info.
- Parameters:
event_id – Event ID
timeout – Request timeout in seconds
- Returns:
Event info or None if not found
Example
>>> import vlrdevapi as vlr >>> event_info = vlr.events.info(event_id=123) >>> print(f"{event_info.name} - {event_info.prize}")
- vlrdevapi.events.matches(event_id: int, stage: str | None = None, limit: int | None = None, timeout: float | None = None) list[Match][source]
Get event matches with team IDs.
- Parameters:
event_id – Event ID
stage – Stage filter (optional)
limit – Maximum number of matches to return (optional)
timeout – Request timeout in seconds
- Returns:
List of event matches with team IDs extracted from match pages
Example
>>> import vlrdevapi as vlr >>> matches = vlr.events.matches(event_id=123, limit=20) >>> for match in matches: ... print(f"{match.teams[0].name} (ID: {match.teams[0].id}) vs {match.teams[1].name} (ID: {match.teams[1].id})")
- vlrdevapi.events.match_summary(event_id: int, timeout: float | None = None) MatchSummary | None[source]
Get event match summary.
- Parameters:
event_id – Event ID
timeout – Request timeout in seconds
- Returns:
Match summary or None if not found
Example
>>> import vlrdevapi as vlr >>> summary = vlr.events.match_summary(event_id=123) >>> print(f"Total: {summary.total_matches}, Completed: {summary.completed}")
- vlrdevapi.events.standings(event_id: int, stage: str | None = None, timeout: float | None = None) Standings | None[source]
Get event standings.
- Parameters:
event_id – Event ID
stage – Stage filter (optional)
timeout – Request timeout in seconds
- Returns:
Standings or None if not found
Example
>>> import vlrdevapi as vlr >>> standings = vlr.events.standings(event_id=123) >>> for entry in standings.entries: ... print(f"{entry.place}. {entry.team_name} - {entry.prize}")
- vlrdevapi.events.stages(event_id: int, timeout: float | None = None) list[EventStage][source]
List available stages for an event’s matches page.
Returns a list of stage options with their series_id and URL. The special “All Stages” option will have series_id=”all”.
- vlrdevapi.events.teams(event_id: int, timeout: float | None = None) list[Team][source]
Get teams participating in an event.
- Parameters:
event_id – Event ID
timeout – Request timeout in seconds
- Returns:
List of teams in the event
Example
>>> import vlrdevapi as vlr >>> teams = vlr.events.teams(event_id=123) >>> for team in teams: ... print(f"{team.name} (ID: {team.id}) - Type: {team.type}")
Functions
info
- vlrdevapi.events.info(event_id: int, timeout: float | None = None) Info | None[source]
Get event header/info.
- Parameters:
event_id – Event ID
timeout – Request timeout in seconds
- Returns:
Event info or None if not found
Example
>>> import vlrdevapi as vlr >>> event_info = vlr.events.info(event_id=123) >>> print(f"{event_info.name} - {event_info.prize}")
list_events
- vlrdevapi.events.list_events(tier: EventTier | Literal['all', 'vct', 'vcl', 't3', 'gc', 'cg', 'offseason'] = EventTier.ALL, region: str | None = None, status: EventStatus | Literal['all', 'upcoming', 'ongoing', 'completed'] = EventStatus.ALL, page: int = 1, limit: int | None = None, timeout: float | None = None) list[ListEvent][source]
List events with filters.
- Parameters:
tier – Event tier (use EventTier enum or string)
region – Region filter (optional)
status – Event status (use EventStatus enum or string)
page – Page number (1-indexed)
limit – Maximum number of events to return (optional)
timeout – Request timeout in seconds
- Returns:
List of events
Example
>>> import vlrdevapi as vlr >>> from vlrdevapi.events import EventTier, EventStatus >>> events = vlr.events.list_events(tier=EventTier.VCT, status=EventStatus.ONGOING, limit=10) >>> for event in events: ... print(f"{event.name} - {event.status}")
match_summary
- vlrdevapi.events.match_summary(event_id: int, timeout: float | None = None) MatchSummary | None[source]
Get event match summary.
- Parameters:
event_id – Event ID
timeout – Request timeout in seconds
- Returns:
Match summary or None if not found
Example
>>> import vlrdevapi as vlr >>> summary = vlr.events.match_summary(event_id=123) >>> print(f"Total: {summary.total_matches}, Completed: {summary.completed}")
matches
- vlrdevapi.events.matches(event_id: int, stage: str | None = None, limit: int | None = None, timeout: float | None = None) list[Match][source]
Get event matches with team IDs.
- Parameters:
event_id – Event ID
stage – Stage filter (optional)
limit – Maximum number of matches to return (optional)
timeout – Request timeout in seconds
- Returns:
List of event matches with team IDs extracted from match pages
Example
>>> import vlrdevapi as vlr >>> matches = vlr.events.matches(event_id=123, limit=20) >>> for match in matches: ... print(f"{match.teams[0].name} (ID: {match.teams[0].id}) vs {match.teams[1].name} (ID: {match.teams[1].id})")
stages
standings
- vlrdevapi.events.standings(event_id: int, stage: str | None = None, timeout: float | None = None) Standings | None[source]
Get event standings.
- Parameters:
event_id – Event ID
stage – Stage filter (optional)
timeout – Request timeout in seconds
- Returns:
Standings or None if not found
Example
>>> import vlrdevapi as vlr >>> standings = vlr.events.standings(event_id=123) >>> for entry in standings.entries: ... print(f"{entry.place}. {entry.team_name} - {entry.prize}")
teams
- vlrdevapi.events.teams(event_id: int, timeout: float | None = None) list[Team][source]
Get teams participating in an event.
- Parameters:
event_id – Event ID
timeout – Request timeout in seconds
- Returns:
List of teams in the event
Example
>>> import vlrdevapi as vlr >>> teams = vlr.events.teams(event_id=123) >>> for team in teams: ... print(f"{team.name} (ID: {team.id}) - Type: {team.type}")
Enums
EventTier
EventStatus
Data Models
EventStage
Info
ListEvent
- class vlrdevapi.events.ListEvent(id: int, name: str, status: Literal['upcoming', 'ongoing', 'completed'], url: str, region: str | None = None, start_date: date | None = None, end_date: date | None = None, start_text: str | None = None, end_text: str | None = None, prize: str | None = None)[source]
Event summary from events listing.
Match
MatchSummary
MatchTeam
StageMatches
StandingEntry
Standings
- class vlrdevapi.events.Standings(event_id: int, stage_path: str, url: str, entries: list[StandingEntry] = <factory>)[source]
Event standings.
- entries: list[StandingEntry]
Team
Usage Examples
List Events
import vlrdevapi as vlr
# List all VCT events
events = vlr.events.list_events(tier="vct")
# Filter by status
ongoing = vlr.events.list_events(tier="vct", status="ongoing")
# Filter by region
na_events = vlr.events.list_events(tier="vct", region="na")
Get Event Details
import vlrdevapi as vlr
# Get event information
info = vlr.events.info(event_id=2283)
print(f"{info.name}")
print(f"Prize: {info.prize}")
print(f"Location: {info.location}")
# Access parsed dates
if info.start_date:
print(f"Start Date: {info.start_date}")
if info.end_date:
print(f"End Date: {info.end_date}")
Get Event Matches
import vlrdevapi as vlr
# Get all matches for an event
matches = vlr.events.matches(event_id=2498)
for match in matches:
print(f"{match.teams[0].name} vs {match.teams[1].name}")
print(f"Status: {match.status}")
Get Event Standings
import vlrdevapi as vlr
# Get event standings/prize distribution
standings = vlr.events.standings(event_id=2498)
for entry in standings.entries:
print(f"{entry.place}. {entry.team_name}")
if entry.prize:
print(f" Prize: {entry.prize}")
Get Event Teams
import vlrdevapi as vlr
# Get teams participating in an event
teams = vlr.events.teams(event_id=2682)
for team in teams:
print(f"{team.name} (ID: {team.id})")
if team.type:
print(f" Type: {team.type}")
See more examples: Usage Examples