How to Use This Data
PadelOS offers a set of public APIs — web addresses that return your club's live data (trainings, open matches, and more) instead of a web page. Each one works the same basic way:
The address returns data in a format called JSON — a structured format, not ready-made HTML. It isn't meant to be viewed directly, it's meant to be read by code.
Whoever builds or manages your website (a developer) fetches that address, reads the fields out of the response, and uses them to generate the HTML your visitors actually see — a training name, a price, a time slot, and so on.
In practice, that means four steps on the developer's side:
Fetch the data — call the address and get the response back.
Parse it — convert the raw response into a usable object so individual fields can be read out of it.
Loop through the list — the data comes back as a list of items (trainings, matches, etc.); the code goes through it one item at a time.
Build the HTML — for each item, pull out the fields you want to show and insert them into the page.
This same pattern applies to every PadelOS public API — only the address and the specific fields returned change. Below is how it works for the Trainings Listing API specifically.
About the Trainings API
This endpoint returns the trainings and clinics currently open to the public at your club — no player login required. It's meant for clubs that want to display their training schedule on their own website, or pull it into another system.
The Basic Request
Every request starts from the same address, with your Club ID added on:
Replace YOUR_CLUB_ID with your club's ID, provided by PadelOS.
Example — for a club called PadelART:
Asking for More Than One Club
If you manage multiple locations and want one combined list, separate the Club IDs with a comma:
(216933 here is a placeholder for a second location — swap in your actual second Club ID.)
Narrowing the Results
You can add extra filters to the address to only show certain trainings. Add each one after an &.
Filter | What it does |
sport | Only show one sport, e.g. sport=padel. Leave it out to show all sports. |
day | Only show trainings on a specific weekday, e.g. day=Monday. |
startTime / endTime | Only show trainings starting or ending within a time window, e.g. startTime=09:00. |
searchTerm | Only show trainings whose name matches text you enter. |
trainerId | Only show trainings run by one specific trainer. |
availability | available shows only trainings with open spots, slots_full shows only full ones. Leave it out to show both. |
hideFilters | Hide certain trainings from the list entirely — sold_out hides full ones, registration_closed hides ones that aren't open for sign-up yet. |
Example — only padel trainings with open spots at PadelART:
If you enter a value a filter doesn't recognise, that one filter is simply ignored — the rest of the request still works.
Splitting Results Into Pages
If your club runs a lot of trainings, you can ask for the list in smaller chunks instead of all at once:
limit — how many trainings per page, e.g. limit=10.
page — which page to fetch, e.g. page=2.
Leave both out and every matching training comes back in one response.
What You Get Back
The response is a list of trainings, each including:
Name, dates, and how often it repeats
The trainer(s) running it
Price
How many spots are filled and how many are available
Whether registration is currently open, and if not, when it opens
Any rating or gender restriction on who can join
Sample response — showing what one training in the list looks like:
name: Saturday Morning Padel Clinic
clubId: 216932
clubName: PadelART
startDate: 2026-09-19
endDate: 2026-10-24
recurrType: weekly
registrationType: individual
type: session_purchase
trainer: Omar Haddad
participantPrice: €35 (originalPrice: €35, no discount applied)
capacity: 4 of 6 spots filled
isRegistrationOpen: true
rating range: 2.5–4.0
gender restriction: none