Unified Search
Trigram-ranked free-text search across matches, teams, players, and tournaments
GET
Unified CS2 search across matches, teams, players, tournaments
Documentation Index
Fetch the complete documentation index at: https://docs.ticktock.bet/llms.txt
Use this file to discover all available pages before exploring further.
What it returns
One flat, score-sorted list of mixed-type hits. Each item carries atype discriminator (match / team / player / tournament), the entity’s stable id, a short label for the primary line, a sub_label for the secondary line, and a score between 0 and 1. Hits are intentionally lean — clients follow up with GET /cs2/v1/{type}/{id} when the user picks one.
Designed for global autocomplete bars: one round-trip per keystroke, no client-side merging across four list endpoints.
Required scope
No single scope is required at the endpoint level. Instead, each result type is filtered by the matching list scope:| Result type | Required scope |
|---|---|
match | cs2:matches:list |
team | cs2:teams:list |
player | cs2:players:list |
tournament | cs2:tournaments:list |
data array. This lets the same endpoint serve narrow-scope keys (e.g. team-only autocomplete) and broad operator keys without a distinct URL per audience.
Ranking
Tiered relevance score over each entity’s name column, taking the max across tiers:| Tier | Match condition | Score |
|---|---|---|
| exact (case-insensitive) | lower(name) = lower(q) | 1.00 |
| prefix | name ILIKE 'q%' | 0.90 |
| substring | name ILIKE '%q%' | 0.70 |
| trigram similarity | pg_trgm similarity(name, q) | 0.00 – 1.00 |
pg_trgm GIN indexes.
Match search. Matches don’t carry their own name. They’re scored via FK joins — a match’s score is max(team_a_score, team_b_score, tournament_score). Typing a team surfaces that team’s upcoming/live/recent fixtures; typing a tournament surfaces all its matches.
Behaviour notes
- Minimum query length is 2 characters. Single-char queries match too broadly to rank usefully and return
400. limitis the total across all types, not a per-type cap. One result type can fill all slots when no others match.types=is honoured first, then scope-filtered. Asking fortypes=teams,playerswith a teams-only key returns teams; the unknown-to-this-keyplayerstype is silently dropped.- Stable ordering on ties. Matches are passed in first, so when a team and a match tie on score, the match wins — fixtures are the most actionable autocomplete result.
Examples
Autocomplete across everything:Related
GET /cs2/v1/teams?search=— same ranking, scoped to teams, supports pagination and region filter.GET /cs2/v1/players?search=— same ranking, scoped to players, supports current-team filter.
Authorizations
Tenant API key issued during onboarding
Query Parameters
Search query. Minimum 2 characters.
Minimum string length:
2Comma-separated subset of matches,teams,players,tournaments. Omitted → all four (subject to scope filtering).
Maximum results across all types combined.
Required range:
1 <= x <= 50Response
Successful Response
The response is of type Response Unified Search Cs2 V1 Search Get · object.
Last modified on May 10, 2026
Unified CS2 search across matches, teams, players, tournaments