Leads and rating
Leads from a club or partner website reach the cloud and the club acquisition report. The AISOLUS rating is a single player number from 1.0 to 7.0, the same in every club with AISOLUS.
Website lead
POST /v1/leads is a public method without authorization: the person is not a player yet. Call it from your server (website form → your server → cloud).
curl -X POST "https://your-server/api/v1/leads" \
-H "Content-Type: application/json" \
-d '{"phone": "+79000000001", "name": "Maria", "club_id": "c1",
"source": "site", "utm": {"utm_source": "google", "utm_campaign": "autumn"},
"comment": "Trial lesson, please"}'
# → {"ok": true, "id": "2c9e5a71-…", "duplicate": false}| Field | Required | Description |
|---|---|---|
phone | yes | A Russian number in any usual form; unreadable — 400 bad_phone. |
name | no | Name, up to 80 characters. |
club_id | no | Target club; unknown — 404 club_not_found. |
source | no | Source (website, ad, desk), up to 60 characters. |
utm | no | UTM tags as an object. |
comment | no | Comment, up to 300 characters. |
- A repeat with the same phone and club within 24 hours creates no new lead — the previous one comes back with
duplicate: true. A double form submission does not inflate the report. - If a person with this phone is already registered, the lead is linked to them. If they register later, the cloud uses the lead source as the player's acquisition source.
- Phone numbers are currently Russian only (+7).
AISOLUS rating: the scale
The number from 1.0 to 7.0 is moved by game results: opponent strength and score margin. Court cameras confirm the level by technique, tactics and consistency. It is shown rounded down to 0.05. The rating can go down — it reflects the current level.
| Value | Step |
|---|---|
| 1.00–1.49 | First steps |
| 1.50–1.99 | Beginner |
| 2.00–2.49 | Improver |
| 2.50–2.99 | Recreational |
| 3.00–3.49 | Confident recreational |
| 3.50–3.99 | Experienced recreational |
| 4.00–4.74 | Advanced |
| 4.75–5.49 | Semi-professional |
| 5.50–7.00 | Professional |
The scale with step descriptions and rules is the public GET /v1/rating/scale; step names and texts are returned in Russian, the table above gives their English meaning.
Player rating
GET /v1/rating/me— own rating:value,step, games, reliability, status, camera assessment on three criteria (tech,tactics,stability) and change history.GET /v1/rating/user/{uid}— another player's rating: value, step, games, reliability — no history.GET /v1/rating/leaderboard— top players: everywhere or among those with counted matches in a club (club_id);limitup to 200.GET /v1/ingest/levels— line-up levels for the court terminal (club token).
Status next to the number (status.code):
| Code | Meaning |
|---|---|
verified | Camera-verified: the assessment from games on camera courts matches the number |
adjusting | Cameras are adjusting: the assessment is higher or lower, the rating is moving towards it |
results | From game results; games on camera courts are needed to verify it |
provisional | Provisional — settles after a few games |
Camera verification needs at least three analysed games. A match where a person kept more than half of the score weighs half in the rating; a voided match (no-show, level score, club decision) does not count.
Elo rating and leaderboard
Besides the AISOLUS rating, a player has an Elo rating (starting at 1000) and a letter level derived from it: A — from 1850, B — from 1600, C — from 1300, D — below. A camera-scored match counts in full and marks the rating as verified (verified); manual entry counts half. Changes from a match come in ratingDeltas of the match result response.
GET /v1/leaderboard is a public table of the top 50 by Elo among players with a name set. The scope parameter is echoed back but does not affect the selection at the moment.