How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Lucra Sports Tournaments (Legacy) API

Drop-in replacement endpoints for the original tournament API operations.Request/response shapes are identical.---## Tournament Types### CASH_FIXEDThe total prize pool is defined upfront and has no relation to the amount collected from buy-ins.- Reward amounts are fixed regardless of how many participants join- The tenant bears the financial risk — if insufficient participants join, the tenant may pay out more in prizes than collected in entry fees- Prize values in `paymentStructure` represent absolute monetary amounts### CASH_PERCENTAGEThe prize pool is calculated from the total amount collected from entry fees, distributed according to percentage allocations.- The `value` in `paymentStructure` represents a percentage (e.g., 60 for 60%)- **The sum of all percentage values must equal exactly 100**- Actual payout amounts are calculated after fees are deducted from the collected pool**Payout Calculation:**```Pool Net Amount = MAX((Total Collected - Fee%), Min Payout Amount)Prize Amount = Pool Net Amount × (Tier Percentage ÷ 100)```---## Replayable TournamentsReplayable tournaments allow participants to join the same tournament multiple times, submitting new scores in an attempt to improve their standing. Each time a user rejoins, they pay the buy-in amount again (if applicable) and start a new attempt.| Attribute | Type | Default | Description ||-----------|------|---------|-------------|| `maxAttempts` | number | 1 | Maximum number of times a user can join/rebuy || `attemptFinished` | boolean | false | When submitting scores, marks the attempt as completed || `omitAttemptCompletedCheck` | boolean | false | If true, allows rebuys even when the current attempt is not finished |**How It Works:**1. **Initial Entry** — Users join by paying the buy-in amount (first attempt)2. **Submitting Scores** — While an attempt is active, users can submit/update scores. Set `attemptFinished: true` to lock the attempt3. **Rebuying** — Users can rejoin if they haven't reached `maxAttempts` and their current attempt is finished (unless `omitAttemptCompletedCheck: true`)4. **Leaderboard** — The user's best score across all attempts determines their final positionUse the `canSubmitNewScore` field in the leaderboard response to check if a user can submit scores or needs to rebuy.---## Position and Ranking| Field | Type | Description ||-------|------|-------------|| `position` | number | Automatically calculated rank based on scores (1, 2, 3, …) || `positionOverride` | number | Optional manual position that overrides automatic ranking for reward distribution |**Automatic Position** is calculated based on scores and `scoringType` (`HIGHEST_SCORE` or `LOWEST_SCORE`). Always unique — no ties.**Position Override** uses rank-based logic that handles ties (1, 2, 2, 4, …). Can also be manually set during tournament completion. Returns `null` when it equals `position`.When completing without specifying winners (auto-complete), the system:1. Sorts users by score according to `scoringType`2. Calculates `position` using sequential numbering (1, 2, 3, …)3. Calculates override position handling ties (1, 2, 2, 4, …)4. Sets `positionOverride` to non-null only when it differs from `position`5. Distributes rewards based on final positions**Best Practice:** Always use `positionOverride ?? position` to display a user's final ranking.---## Scoring Types- **HIGHEST_SCORE** — Higher scores rank better (e.g., points-based games)- **LOWEST_SCORE** — Lower scores rank better (e.g., golf, racing)---## Sign-Up WindowTournaments can optionally define a sign-up window using `signUpStart` and `signUpEnd`.When set, participants can only join during this window. If omitted, sign-ups follow thedefault behavior (open from creation until the tournament expires).| Constraint | Rule ||-----------|------|| `signUpEnd` ≤ `expiresAt` | Sign-ups must close before tournament expiration || `signUpStart` < `signUpEnd` | Window must have a positive duration |---## Tournament Lifecycle```OPEN → CONFIRMED → CLOSED ↓ ↓ CANCELED ← ←```

Lucra Sports Tournaments (Legacy) API is one of 9 APIs that Lucra Sports publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Tournaments (Legacy). The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, authentication docs, and rate-limit docs.

This API exposes 8 operations across 7 paths, and defines 22 schemas. It is described by OpenAPI 3.2.0, at version 1.0.

Requests are made against 3 base URLs: /, https://forge.lucrasports.com, https://forge.sandbox.lucrasports.com.

8 operations 7 paths 22 schemas 2 GET1 PATCH4 POST1 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0
Base URL
https://forge.lucrasports.com
Authentication
API Key
Resource Areas
1

Authentication & Security 1

Lucra Sports Tournaments (Legacy) API declares 1 security scheme for authenticating requests. An API key is passed in the header as X-Lucra-Api-Key (X-Lucra-Api-Key).

  • X-Lucra-Api-Key — API key for tenant authentication

Paths & Operations 8

Across 7 paths, the API surfaces 8 operations — 2 GET, 1 PATCH, 4 POST, 1 PUT. Each is listed below with its method, path, parameters, and response codes.

Tournaments (Legacy) 8

Drop-in replacement endpoints for the original tournament API operations. Request/response shapes are identical. --- Tournament Types CASHFIXED The total prize pool is defined upf…

POST
/api/rest/pool-tournament/create
Create Tournament
TournamentsLegacyController_createTournament body → 201
POST
/api/rest/pool-tournament/user-score
Ingest Tournament Scores
TournamentsLegacyController_ingestScores body → 200
GET
/api/rest/pool-tournament/query/active
Query Active Tournaments
TournamentsLegacyController_getActiveTournaments 4 params → 200
GET
/api/rest/pool-tournament/{id}
Get Tournament
TournamentsLegacyController_getTournament 1 param → 200
PUT
/api/rest/pool-tournament/{id}
Update Tournament
TournamentsLegacyController_updateTournament 1 param body → 200
PATCH
/api/rest/pool-tournament/{id}/users-scores
Update User Scores
TournamentsLegacyController_updateUserScores 1 param body → 200
POST
/api/rest/pool-tournament/{id}/cancel
Cancel Tournament
TournamentsLegacyController_cancel 1 param → 200
POST
/api/rest/pool-tournament/{id}/complete
Complete Tournament
TournamentsLegacyController_complete 1 param body → 200

Schemas 22

The contract defines 22 schemas that model the data the API accepts and returns. The most detailed are LegacyTournamentMatchupDto (31 properties), LegacyTournamentUpdateObjectDto (23 properties), LegacyTournamentCreateObjectDto (23 properties), LegacyCompleteTournamentObjectDto (15 properties). Each schema is shown below with its type and property counts.

LegacyActionResponseDto
object
3 properties 1 required
LegacyTournamentCreateObjectDto
object
23 properties 4 required
LegacyActiveTournamentsResponseDto
object
5 properties 5 required
LegacyTournamentUpdateDto
object
1 property 1 required
LegacyIngestScoresObjectDto
object
5 properties 1 required
LegacyIngestScoresDto
object
1 property 1 required
LegacyTournamentUpdateScoreDto
object
5 properties 2 required
LegacyTournamentMatchupDto
object
31 properties 31 required
LegacyTournamentCreateResponseDto
object
1 property 1 required
LegacyTournamentUserDto
object
12 properties 12 required
IngestScoresResponseDto
object
2 properties 2 required
LegacyCompleteTournamentObjectDto
object
15 properties
WrappedLegacyActiveTournamentsResponseDto
object
1 property 1 required
LegacyCompletePaymentStructureRowDto
object
4 properties 2 required
LegacyUpdateScoresObjectDto
object
1 property 1 required
WrappedLegacyTournamentMatchupDto
object
1 property 1 required
LegacyTournamentUpdateObjectDto
object
23 properties
LegacyCompleteTournamentDto
object
1 property 1 required
LegacyUpdateScoresDto
object
1 property 1 required
LegacyIngestScoresUserScoreDto
object
6 properties 1 required
LegacyTournamentRewardStructureDto
object
9 properties 9 required
LegacyTournamentCreateDto
object
1 property 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

lucra-sports-tournaments-legacy-api-openapi.yml Raw ↑

Other APIs Lucra Sports publishes across the network.

Lucra Sports Health API
Lucra Sports Locations API
Lucra Sports Recreational Games API
Lucra Sports States API
Lucra Sports Tenant Tag Groups API
Lucra Sports Tournaments API
Lucra Sports User Score API
Lucra Sports Webhooks API
Where this information came from

This is an independent, third-party profile of Lucra Sports Tournaments (Legacy) API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.