matches

Create a match or an americano tournament

Returns the public match plus the organizer's personal token, personal link and private manage link. Give those to the person you act for; never publish them.

post/api/v1/matches

Request

  • Base URL: https://kicksma.sh
  • URL: https://kicksma.sh/api/v1/matches
  • Auth: one of:
    • none
    • HTTP bearer

Request body

type'match' | 'tournament'

A match is exactly four players. A tournament is an americano with 4 to 64 players in fours.

startsAtstring required

ISO 8601 date-time. With an offset or Z it is absolute; without one it is read in tz. Example: 2026-09-11T19:00

tzstring required

IANA time zone the players live in, for example Asia/Singapore or Asia/Bangkok.

durationMinutes60 | 90 | 120

How long the court is booked: 60, 90 or 120 minutes. Omit for 90 (a match) or 120 (a tournament). The match page, the cards and the calendar invitation show it.

venuestring

Club or court name. Enables the venue board and the booking link.

venueMapUrlstring uri
courtstring

Court within the venue, e.g. "3".

capacityinteger

Tournaments only, a multiple of 4. Matches are always 4.

format'americano' | 'mexicano' | 'king'

Tournaments only. americano: partners rotate, everyone plays everyone. mexicano: courts by standings after round 1. king: winners move up a court, losers down.

fixedPairsboolean

Tournaments only: two partners play every round together, in any format. Pairs sign up together (join_match with partner); a player alone is listed as needing a partner. Americano then rotates the opponents: every pair meets every other pair, and the table ranks pairs.

pointsPerMatchinteger

Tournaments only: fixed points per match (16, 21, 24, 32). Omit for free scoring; mexicano defaults to 24.

gamesTointeger

Tournaments only: first to N games (4, 6, 8) instead of points; the table then ranks by matches won.

whenFull'waitlist' | 'closed'
levelMinnumber nullable

Level range 0 to 7 (Playtomic-style). Omit both for any level.

levelMaxnumber nullable
verifiedLevelsOnlyboolean

With a range: only levels confirmed by an organizer, a coach or a club walk in; declared levels inside the range ask to join.

category'men' | 'women' | 'mixed' nullable

Who the match is for: men, women or mixed. Omit for anyone. Information for the players who find it; nobody is checked when they join.

ageMin35 | 45 | 55 nullable

An age tag: 35, 45 or 55 means 35+, 45+ or 55+. Omit for any age. Information only; nobody is checked when they join.

titlestring
notestring
bookingUrlstring uri

The club's booking page or confirmation link, shown to players.

coststring

What each player pays, as free text: 400 THB, €8, split 4 ways.

listOnVenueBoardboolean

Show the match on the public venue board (/v/{venue-slug}). Off by default.

organizerPlaysboolean

Seat the organizer in the match (default). False when they only organize.

Response

Created

shareUrlstring
nextstring

Changes

No recorded changes to this operation across all 1 revision of this API.