[{"data":1,"prerenderedAt":3073},["ShallowReactive",2],{"navigation_docs_en":3,"-en-oauth-partner-api":312,"-en-oauth-partner-api-surround":3068},[4,17,210,237,272],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Getting started","\u002Fen\u002Fgetting-started","en\u002F0.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Tour of the admin","sporty-toggle-large-on",{"title":13,"path":14,"stem":15,"icon":16},"First-week setup","\u002Fen\u002Fgetting-started\u002Ffirst-week-setup","en\u002F0.getting-started\u002F2.first-week-setup","sporty-calendar-check",{"title":18,"path":19,"stem":20,"children":21,"page":209},"Interface","\u002Fen\u002Finterface","en\u002F1.interface",[22,65,72,79,90,97,105,112,119,126,147,154,174,185,203],{"title":23,"path":24,"stem":25,"children":26,"icon":28},"Courts","\u002Fen\u002Finterface\u002Fcourts","en\u002F1.interface\u002F01.courts\u002F1.index",[27,29],{"title":23,"path":24,"stem":25,"icon":28},"sporty-court-sport",{"title":30,"path":31,"stem":32,"children":33,"icon":11},"Access control and lights","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F1.index",[34,35,40,45],{"title":30,"path":31,"stem":32,"icon":11},{"title":36,"path":37,"stem":38,"icon":39},"Weblock","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations\u002Fweblock","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F2.weblock","sporty-door-open",{"title":41,"path":42,"stem":43,"icon":44},"Shelly","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations\u002Fshelly","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F3.shelly","sporty-bolt",{"title":46,"path":47,"stem":48,"children":49,"icon":39},"UniFi Access","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F1.index",[50,52,56,61],{"title":51,"path":47,"stem":48,"icon":39},"Overview",{"title":53,"path":54,"stem":55,"icon":11},"Connect the VPN","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fvpn","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F2.vpn",{"title":57,"path":58,"stem":59,"icon":60},"Create an API token","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fapi-token","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F3.api-token","sporty-gear",{"title":62,"path":63,"stem":64,"icon":28},"Set it up in Club Admin","\u002Fen\u002Finterface\u002Fcourts\u002Fintegrations\u002Funifi-access\u002Fclub-admin","en\u002F1.interface\u002F01.courts\u002F5.integrations\u002F4.unifi-access\u002F4.club-admin",{"title":66,"path":67,"stem":68,"children":69,"icon":71},"Members","\u002Fen\u002Finterface\u002Fmembers","en\u002F1.interface\u002F02.members\u002F1.index",[70],{"title":66,"path":67,"stem":68,"icon":71},"sporty-user-group",{"title":73,"path":74,"stem":75,"children":76,"icon":78},"Memberships","\u002Fen\u002Finterface\u002Fmemberships","en\u002F1.interface\u002F03.memberships\u002F1.index",[77],{"title":73,"path":74,"stem":75,"icon":78},"sporty-id-card",{"title":80,"path":81,"stem":82,"children":83,"icon":85},"Leagues","\u002Fen\u002Finterface\u002Fleagues","en\u002F1.interface\u002F04.leagues\u002F1.index",[84,86],{"title":80,"path":81,"stem":82,"icon":85},"sporty-ranking-star",{"title":87,"path":88,"stem":89,"icon":16},"Planned competitions","\u002Fen\u002Finterface\u002Fleagues\u002Fplanned-competitions","en\u002F1.interface\u002F04.leagues\u002F2.planned-competitions",{"title":91,"path":92,"stem":93,"children":94,"icon":96},"Tournaments","\u002Fen\u002Finterface\u002Ftournaments","en\u002F1.interface\u002F05.tournaments\u002F1.index",[95],{"title":91,"path":92,"stem":93,"icon":96},"sporty-trophy",{"title":98,"path":99,"stem":100,"children":101,"icon":104},"Payments and subscriptions","\u002Fen\u002Finterface\u002Fpayments","en\u002F1.interface\u002F06.payments\u002F1.index",[102],{"title":103,"path":99,"stem":100,"icon":104},"Payments","sporty-credit-card",{"title":106,"path":107,"stem":108,"children":109,"icon":111},"Shop","\u002Fen\u002Finterface\u002Fshop","en\u002F1.interface\u002F07.shop\u002F1.index",[110],{"title":106,"path":107,"stem":108,"icon":111},"sporty-bag-shopping",{"title":113,"path":114,"stem":115,"children":116,"icon":118},"Schools and coaches","\u002Fen\u002Finterface\u002Fschools","en\u002F1.interface\u002F08.schools\u002F1.index",[117],{"title":113,"path":114,"stem":115,"icon":118},"sporty-graduation-cap",{"title":120,"path":121,"stem":122,"children":123,"icon":125},"Emails","\u002Fen\u002Finterface\u002Femails","en\u002F1.interface\u002F09.emails\u002F1.index",[124],{"title":120,"path":121,"stem":122,"icon":125},"sporty-envelope",{"title":127,"path":128,"stem":129,"children":130,"icon":132},"Video and cameras","\u002Fen\u002Finterface\u002Fvideo","en\u002F1.interface\u002F10.video\u002F1.index",[131,133,137,142],{"title":127,"path":128,"stem":129,"icon":132},"sporty-camera-cctv",{"title":134,"path":135,"stem":136,"icon":132},"Dahua cameras","\u002Fen\u002Finterface\u002Fvideo\u002Fdahua","en\u002F1.interface\u002F10.video\u002F2.dahua",{"title":138,"path":139,"stem":140,"icon":141},"Other RTMP cameras","\u002Fen\u002Finterface\u002Fvideo\u002Frtmp","en\u002F1.interface\u002F10.video\u002F3.rtmp","sporty-video",{"title":143,"path":144,"stem":145,"icon":146},"Match analytics","\u002Fen\u002Finterface\u002Fvideo\u002Fanalytics","en\u002F1.interface\u002F10.video\u002F4.analytics","sporty-chart-simple",{"title":148,"path":149,"stem":150,"children":151,"icon":153},"Reports","\u002Fen\u002Finterface\u002Freports","en\u002F1.interface\u002F11.reports\u002F1.index",[152],{"title":148,"path":149,"stem":150,"icon":153},"sporty-chart-mixed",{"title":155,"path":156,"stem":157,"children":158,"icon":60},"Settings","\u002Fen\u002Finterface\u002Fsettings","en\u002F1.interface\u002F12.settings\u002F1.index",[159,161,165,169],{"title":160,"path":156,"stem":157,"icon":60},"Club settings",{"title":162,"path":163,"stem":164,"icon":16},"Booking rules and price list","\u002Fen\u002Finterface\u002Fsettings\u002Fbooking-rules","en\u002F1.interface\u002F12.settings\u002F2.booking-rules",{"title":166,"path":167,"stem":168,"icon":78},"Sign-up and legal pages","\u002Fen\u002Finterface\u002Fsettings\u002Fsignup-and-legal","en\u002F1.interface\u002F12.settings\u002F3.signup-and-legal",{"title":170,"path":171,"stem":172,"icon":173},"Administrators and roles","\u002Fen\u002Finterface\u002Fsettings\u002Fadministrators-and-roles","en\u002F1.interface\u002F12.settings\u002F4.administrators-and-roles","sporty-user",{"title":175,"path":176,"stem":177,"children":178,"icon":180},"Social publishing","\u002Fen\u002Finterface\u002Fsocial","en\u002F1.interface\u002F13.social\u002F1.index",[179,181],{"title":175,"path":176,"stem":177,"icon":180},"sporty-newspaper",{"title":182,"path":183,"stem":184,"icon":11},"Connecting channels","\u002Fen\u002Finterface\u002Fsocial\u002Fchannels","en\u002F1.interface\u002F13.social\u002F2.channels",{"title":186,"path":187,"stem":188,"children":189,"icon":28},"Seated events","\u002Fen\u002Finterface\u002Fseated-events","en\u002F1.interface\u002F14.seated-events\u002F1.index",[190,191,195,199],{"title":186,"path":187,"stem":188,"icon":28},{"title":192,"path":193,"stem":194,"icon":28},"Seating plans","\u002Fen\u002Finterface\u002Fseated-events\u002Fseating-plans","en\u002F1.interface\u002F14.seated-events\u002F2.seating-plans",{"title":196,"path":197,"stem":198,"icon":16},"Selling seats","\u002Fen\u002Finterface\u002Fseated-events\u002Fselling-seats","en\u002F1.interface\u002F14.seated-events\u002F3.selling-seats",{"title":200,"path":201,"stem":202,"icon":39},"On sale and at the door","\u002Fen\u002Finterface\u002Fseated-events\u002Fon-sale","en\u002F1.interface\u002F14.seated-events\u002F4.on-sale",{"title":204,"path":205,"stem":206,"children":207,"icon":16},"Season tickets","\u002Fen\u002Finterface\u002Fseason-tickets","en\u002F1.interface\u002F15.season-tickets\u002F1.index",[208],{"title":204,"path":205,"stem":206,"icon":16},false,{"title":211,"path":212,"stem":213,"children":214,"icon":217},"Website","\u002Fen\u002Fwebsite","en\u002F2.website\u002F1.index",[215,218,223,227,232],{"title":216,"path":212,"stem":213,"icon":217},"Website builder","sporty-browser",{"title":219,"path":220,"stem":221,"icon":222},"Pages, hero and footer","\u002Fen\u002Fwebsite\u002Fpages","en\u002F2.website\u002F2.pages","sporty-file-lines",{"title":224,"path":225,"stem":226,"icon":180},"News and events","\u002Fen\u002Fwebsite\u002Fnews-and-events","en\u002F2.website\u002F3.news-and-events",{"title":228,"path":229,"stem":230,"icon":231},"Coaches and gallery","\u002Fen\u002Fwebsite\u002Fcoaches-and-gallery","en\u002F2.website\u002F4.coaches-and-gallery","sporty-images",{"title":233,"path":234,"stem":235,"icon":236},"FAQ and sponsors","\u002Fen\u002Fwebsite\u002Ffaq-and-sponsors","en\u002F2.website\u002F5.faq-and-sponsors","sporty-circle-question",{"title":238,"path":239,"stem":240,"children":241,"icon":173},"For members","\u002Fen\u002Fmembers","en\u002F3.members\u002F1.index",[242,244,248,252,256,260,264,268],{"title":243,"path":239,"stem":240,"icon":173},"Using the member app",{"title":245,"path":246,"stem":247,"icon":16},"Booking a court","\u002Fen\u002Fmembers\u002Fbooking","en\u002F3.members\u002F2.booking",{"title":249,"path":250,"stem":251,"icon":104},"Memberships and payments","\u002Fen\u002Fmembers\u002Fpayments","en\u002F3.members\u002F3.payments",{"title":253,"path":254,"stem":255,"icon":85},"How competitions work","\u002Fen\u002Fmembers\u002Fhow-competitions-work","en\u002F3.members\u002F4.how-competitions-work",{"title":257,"path":258,"stem":259,"icon":96},"Leagues, tournaments and results","\u002Fen\u002Fmembers\u002Fcompetitions","en\u002F3.members\u002F5.competitions",{"title":261,"path":262,"stem":263,"icon":71},"Family and children","\u002Fen\u002Fmembers\u002Ffamily","en\u002F3.members\u002F6.family",{"title":265,"path":266,"stem":267,"icon":78},"Your account","\u002Fen\u002Fmembers\u002Faccount","en\u002F3.members\u002F7.account",{"title":269,"path":270,"stem":271,"icon":236},"Getting help","\u002Fen\u002Fmembers\u002Fhelp","en\u002F3.members\u002F8.help",{"title":273,"path":274,"stem":275,"children":276,"icon":278},"OAuth & Sign in with Sporty","\u002Fen\u002Foauth","en\u002F4.oauth\u002F1.index",[277,279,283,287,291,295,299,303,307],{"title":273,"path":274,"stem":275,"icon":278},"sporty-brackets-curly",{"title":280,"path":281,"stem":282,"icon":278},"Registering an application","\u002Fen\u002Foauth\u002Fclients","en\u002F4.oauth\u002F2.clients",{"title":284,"path":285,"stem":286,"icon":278},"The authorization code flow","\u002Fen\u002Foauth\u002Fauthorization-code","en\u002F4.oauth\u002F3.authorization-code",{"title":288,"path":289,"stem":290,"icon":278},"Scopes","\u002Fen\u002Foauth\u002Fscopes","en\u002F4.oauth\u002F4.scopes",{"title":292,"path":293,"stem":294,"icon":278},"Sign in with Sporty","\u002Fen\u002Foauth\u002Fsign-in-with-sporty","en\u002F4.oauth\u002F5.sign-in-with-sporty",{"title":296,"path":297,"stem":298,"icon":278},"The partner API","\u002Fen\u002Foauth\u002Fpartner-api","en\u002F4.oauth\u002F6.partner-api",{"title":300,"path":301,"stem":302,"icon":278},"Syncing bookings","\u002Fen\u002Foauth\u002Fbooking-sync","en\u002F4.oauth\u002F7.booking-sync",{"title":304,"path":305,"stem":306,"icon":278},"MCP and AI clients","\u002Fen\u002Foauth\u002Fmcp-and-ai-clients","en\u002F4.oauth\u002F8.mcp-and-ai-clients",{"title":308,"path":309,"stem":310,"icon":311},"Agent checkout","\u002Fen\u002Foauth\u002Fagent-checkout","en\u002F4.oauth\u002F9.agent-checkout","sporty-cart-shopping",{"id":313,"title":296,"body":314,"description":3059,"extension":3060,"links":3061,"meta":3062,"navigation":3063,"path":297,"seo":3064,"stem":298,"__hash__":3067},"docs_en\u002Fen\u002F4.oauth\u002F6.partner-api.md",{"type":315,"value":316,"toc":3039},"minimark",[317,324,327,372,377,686,693,725,740,746,764,977,980,986,993,1009,1092,1119,1125,1343,1372,1375,1382,1508,1522,1528,1546,1552,1563,1902,1957,1963,1966,2154,2167,2173,2176,2182,2213,2286,2289,2294,2311,2534,2585,2591,2604,2615,2618,2733,2737,2751,2757,2766,2772,2882,2889,2901,2905,2911,2915,3021,3025,3035],[318,319,320],"p",{},[321,322,323],"code",{},"https:\u002F\u002Fapi.sporty.plus\u002Fapi\u002Fpartner\u002Fv1",[318,325,326],{},"This is the only place an OAuth access token works. Plain JSON — not JSON:API — with a\ndeliberately small surface: every field is one somebody chose to expose.",[328,329,334],"pre",{"className":330,"code":331,"language":332,"meta":333,"style":333},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl https:\u002F\u002Fapi.sporty.plus\u002Fapi\u002Fpartner\u002Fv1\u002Fcourts \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","bash","",[321,335,336,353],{"__ignoreMap":333},[337,338,341,345,349],"span",{"class":339,"line":340},"line",1,[337,342,344],{"class":343},"sBMFI","curl",[337,346,348],{"class":347},"sfazB"," https:\u002F\u002Fapi.sporty.plus\u002Fapi\u002Fpartner\u002Fv1\u002Fcourts",[337,350,352],{"class":351},"sTEyZ"," \\\n",[337,354,356,359,363,366,369],{"class":339,"line":355},2,[337,357,358],{"class":347},"  -H",[337,360,362],{"class":361},"sMK4o"," \"",[337,364,365],{"class":347},"Authorization: Bearer ",[337,367,368],{"class":351},"$ACCESS_TOKEN",[337,370,371],{"class":361},"\"\n",[373,374,376],"h2",{"id":375},"endpoints","Endpoints",[378,379,380,396],"table",{},[381,382,383],"thead",{},[384,385,386,390,393],"tr",{},[387,388,389],"th",{},"Method",[387,391,392],{},"Path",[387,394,395],{},"Scope",[397,398,399,417,433,449,465,481,497,513,529,544,560,575,590,605,620,634,655,671],"tbody",{},[384,400,401,407,412],{},[402,403,404],"td",{},[321,405,406],{},"GET",[402,408,409],{},[321,410,411],{},"\u002Fme",[402,413,414],{},[321,415,416],{},"me.read",[384,418,419,423,428],{},[402,420,421],{},[321,422,406],{},[402,424,425],{},[321,426,427],{},"\u002Fme\u002Freservations",[402,429,430],{},[321,431,432],{},"me.reservations.read",[384,434,435,440,444],{},[402,436,437],{},[321,438,439],{},"POST",[402,441,442],{},[321,443,427],{},[402,445,446],{},[321,447,448],{},"me.reservations.write",[384,450,451,456,461],{},[402,452,453],{},[321,454,455],{},"DELETE",[402,457,458],{},[321,459,460],{},"\u002Fme\u002Freservations\u002F{id}",[402,462,463],{},[321,464,448],{},[384,466,467,471,476],{},[402,468,469],{},[321,470,406],{},[402,472,473],{},[321,474,475],{},"\u002Fme\u002Fresults",[402,477,478],{},[321,479,480],{},"me.results.read",[384,482,483,487,492],{},[402,484,485],{},[321,486,406],{},[402,488,489],{},[321,490,491],{},"\u002Fme\u002Fmemberships",[402,493,494],{},[321,495,496],{},"me.memberships.read",[384,498,499,503,508],{},[402,500,501],{},[321,502,406],{},[402,504,505],{},[321,506,507],{},"\u002Fclubs\u002Fme",[402,509,510],{},[321,511,512],{},"club.read",[384,514,515,519,524],{},[402,516,517],{},[321,518,406],{},[402,520,521],{},[321,522,523],{},"\u002Fcourts",[402,525,526],{},[321,527,528],{},"club.courts.read",[384,530,531,535,540],{},[402,532,533],{},[321,534,406],{},[402,536,537],{},[321,538,539],{},"\u002Favailability",[402,541,542],{},[321,543,528],{},[384,545,546,550,555],{},[402,547,548],{},[321,549,406],{},[402,551,552],{},[321,553,554],{},"\u002Freservations",[402,556,557],{},[321,558,559],{},"club.reservations.read",[384,561,562,566,571],{},[402,563,564],{},[321,565,406],{},[402,567,568],{},[321,569,570],{},"\u002Freservations\u002F{id}",[402,572,573],{},[321,574,559],{},[384,576,577,581,586],{},[402,578,579],{},[321,580,406],{},[402,582,583],{},[321,584,585],{},"\u002Freservation-categories",[402,587,588],{},[321,589,559],{},[384,591,592,596,600],{},[402,593,594],{},[321,595,439],{},[402,597,598],{},[321,599,554],{},[402,601,602],{},[321,603,604],{},"club.reservations.write",[384,606,607,612,616],{},[402,608,609],{},[321,610,611],{},"PATCH",[402,613,614],{},[321,615,570],{},[402,617,618],{},[321,619,604],{},[384,621,622,626,630],{},[402,623,624],{},[321,625,455],{},[402,627,628],{},[321,629,570],{},[402,631,632],{},[321,633,604],{},[384,635,636,646,651],{},[402,637,638,640,641,640,644],{},[321,639,406],{}," ",[321,642,643],{},"PUT",[321,645,455],{},[402,647,648],{},[321,649,650],{},"\u002Fwebhook",[402,652,653],{},[321,654,559],{},[384,656,657,661,666],{},[402,658,659],{},[321,660,406],{},[402,662,663],{},[321,664,665],{},"\u002Fmembers",[402,667,668],{},[321,669,670],{},"club.members.read",[384,672,673,677,681],{},[402,674,675],{},[321,676,439],{},[402,678,679],{},[321,680,665],{},[402,682,683],{},[321,684,685],{},"club.members.write",[687,688,690],"h3",{"id":689},"get-me",[321,691,692],{},"GET \u002Fme",[318,694,695,696,699,700,699,703,699,706,699,709,712,713,716,717,720,721,724],{},"The member the token was issued for: ",[321,697,698],{},"id",", ",[321,701,702],{},"first_name",[321,704,705],{},"last_name",[321,707,708],{},"name",[321,710,711],{},"picture"," and\n",[321,714,715],{},"locale",". Their email address is not part of it; ask for the ",[321,718,719],{},"email"," scope and read it from\n",[321,722,723],{},"\u002Foauth2\u002Fuserinfo",".",[318,726,727,728,730,731,735,736,739],{},"This and ",[321,729,427],{}," need a token issued ",[732,733,734],"strong",{},"for a member"," (authorization code), and they\nare the member's own data rather than a club's, so no club has to grant your application\nanything. A client-credentials token gets ",[321,737,738],{},"401",". If the member authorised your application for\none club only, you see that club's part of their data.",[687,741,743],{"id":742},"get-mereservations",[321,744,745],{},"GET \u002Fme\u002Freservations",[318,747,748,749,752,753,712,756,759,760,763],{},"The bookings the member plays or coaches in, ",[732,750,751],{},"upcoming unless you say otherwise",". ",[321,754,755],{},"from",[321,757,758],{},"to"," (ISO 8601) set the window; ",[321,761,762],{},"per_page"," goes up to 100.",[328,765,769],{"className":766,"code":767,"language":768,"meta":333,"style":333},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"data\": [\n    {\n      \"id\": 918301,\n      \"club\": { \"id\": 57, \"name\": \"TK Test\" },\n      \"court_id\": 412,\n      \"court_name\": \"Teren 3\",\n      \"from\": \"2026-10-07T16:00:00+00:00\",\n      \"to\": \"2026-10-07T17:00:00+00:00\",\n      \"approved\": true\n    }\n  ]\n}\n","json",[321,770,771,776,794,800,819,866,883,904,924,944,959,965,971],{"__ignoreMap":333},[337,772,773],{"class":339,"line":340},[337,774,775],{"class":361},"{\n",[337,777,778,781,785,788,791],{"class":339,"line":355},[337,779,780],{"class":361},"  \"",[337,782,784],{"class":783},"spNyl","data",[337,786,787],{"class":361},"\"",[337,789,790],{"class":361},":",[337,792,793],{"class":361}," [\n",[337,795,797],{"class":339,"line":796},3,[337,798,799],{"class":361},"    {\n",[337,801,803,806,808,810,812,816],{"class":339,"line":802},4,[337,804,805],{"class":361},"      \"",[337,807,698],{"class":343},[337,809,787],{"class":361},[337,811,790],{"class":361},[337,813,815],{"class":814},"sbssI"," 918301",[337,817,818],{"class":361},",\n",[337,820,822,824,827,829,831,834,836,838,840,842,845,848,850,852,854,856,858,861,863],{"class":339,"line":821},5,[337,823,805],{"class":361},[337,825,826],{"class":343},"club",[337,828,787],{"class":361},[337,830,790],{"class":361},[337,832,833],{"class":361}," {",[337,835,362],{"class":361},[337,837,698],{"class":814},[337,839,787],{"class":361},[337,841,790],{"class":361},[337,843,844],{"class":814}," 57",[337,846,847],{"class":361},",",[337,849,362],{"class":361},[337,851,708],{"class":814},[337,853,787],{"class":361},[337,855,790],{"class":361},[337,857,362],{"class":361},[337,859,860],{"class":347},"TK Test",[337,862,787],{"class":361},[337,864,865],{"class":361}," },\n",[337,867,869,871,874,876,878,881],{"class":339,"line":868},6,[337,870,805],{"class":361},[337,872,873],{"class":343},"court_id",[337,875,787],{"class":361},[337,877,790],{"class":361},[337,879,880],{"class":814}," 412",[337,882,818],{"class":361},[337,884,886,888,891,893,895,897,900,902],{"class":339,"line":885},7,[337,887,805],{"class":361},[337,889,890],{"class":343},"court_name",[337,892,787],{"class":361},[337,894,790],{"class":361},[337,896,362],{"class":361},[337,898,899],{"class":347},"Teren 3",[337,901,787],{"class":361},[337,903,818],{"class":361},[337,905,907,909,911,913,915,917,920,922],{"class":339,"line":906},8,[337,908,805],{"class":361},[337,910,755],{"class":343},[337,912,787],{"class":361},[337,914,790],{"class":361},[337,916,362],{"class":361},[337,918,919],{"class":347},"2026-10-07T16:00:00+00:00",[337,921,787],{"class":361},[337,923,818],{"class":361},[337,925,927,929,931,933,935,937,940,942],{"class":339,"line":926},9,[337,928,805],{"class":361},[337,930,758],{"class":343},[337,932,787],{"class":361},[337,934,790],{"class":361},[337,936,362],{"class":361},[337,938,939],{"class":347},"2026-10-07T17:00:00+00:00",[337,941,787],{"class":361},[337,943,818],{"class":361},[337,945,947,949,952,954,956],{"class":339,"line":946},10,[337,948,805],{"class":361},[337,950,951],{"class":343},"approved",[337,953,787],{"class":361},[337,955,790],{"class":361},[337,957,958],{"class":361}," true\n",[337,960,962],{"class":339,"line":961},11,[337,963,964],{"class":361},"    }\n",[337,966,968],{"class":339,"line":967},12,[337,969,970],{"class":361},"  ]\n",[337,972,974],{"class":339,"line":973},13,[337,975,976],{"class":361},"}\n",[318,978,979],{},"The other players are not included: whom a member plays with is the other players' to share.",[687,981,983],{"id":982},"post-mereservations",[321,984,985],{},"POST \u002Fme\u002Freservations",[318,987,988,989,992],{},"Books a court ",[732,990,991],{},"as the member",". Every rule the club applies to them in the Sporty app applies\nhere too:",[994,995,996,1000,1003,1006],"ul",{},[997,998,999],"li",{},"their membership's opening hours and price;",[997,1001,1002],{},"how far ahead they may book, and how close to the start;",[997,1004,1005],{},"how many bookings they may hold;",[997,1007,1008],{},"whether they must pay first.",[328,1010,1012],{"className":766,"code":1011,"language":768,"meta":333,"style":333},"{\n  \"court_id\": 412,\n  \"from\": \"2026-10-07T18:00:00+02:00\",\n  \"to\": \"2026-10-07T19:30:00+02:00\",\n  \"external_id\": \"agent-7f3a\"\n}\n",[321,1013,1014,1018,1032,1051,1070,1088],{"__ignoreMap":333},[337,1015,1016],{"class":339,"line":340},[337,1017,775],{"class":361},[337,1019,1020,1022,1024,1026,1028,1030],{"class":339,"line":355},[337,1021,780],{"class":361},[337,1023,873],{"class":783},[337,1025,787],{"class":361},[337,1027,790],{"class":361},[337,1029,880],{"class":814},[337,1031,818],{"class":361},[337,1033,1034,1036,1038,1040,1042,1044,1047,1049],{"class":339,"line":796},[337,1035,780],{"class":361},[337,1037,755],{"class":783},[337,1039,787],{"class":361},[337,1041,790],{"class":361},[337,1043,362],{"class":361},[337,1045,1046],{"class":347},"2026-10-07T18:00:00+02:00",[337,1048,787],{"class":361},[337,1050,818],{"class":361},[337,1052,1053,1055,1057,1059,1061,1063,1066,1068],{"class":339,"line":802},[337,1054,780],{"class":361},[337,1056,758],{"class":783},[337,1058,787],{"class":361},[337,1060,790],{"class":361},[337,1062,362],{"class":361},[337,1064,1065],{"class":347},"2026-10-07T19:30:00+02:00",[337,1067,787],{"class":361},[337,1069,818],{"class":361},[337,1071,1072,1074,1077,1079,1081,1083,1086],{"class":339,"line":821},[337,1073,780],{"class":361},[337,1075,1076],{"class":783},"external_id",[337,1078,787],{"class":361},[337,1080,790],{"class":361},[337,1082,362],{"class":361},[337,1084,1085],{"class":347},"agent-7f3a",[337,1087,371],{"class":361},[337,1089,1090],{"class":339,"line":868},[337,1091,976],{"class":361},[994,1093,1094,1110],{},[997,1095,1096,1098,1099,1101,1102,1105,1106,1109],{},[321,1097,755],{}," and ",[321,1100,758],{}," must fall on the court's slots, as ",[321,1103,1104],{},"GET \u002Favailability"," lists them. The\nbooking must be a whole number of ",[321,1107,1108],{},"reservation_duration"," slots, and every one of them must be\nopen to this member.",[997,1111,1112,1114,1115,1118],{},[321,1113,1076],{}," is optional: your id for the request, up to 191 characters. Sending it again\nanswers ",[321,1116,1117],{},"200"," with the booking already made, so a retry never books twice.",[318,1120,1121,1122,790],{},"The answer is ",[321,1123,1124],{},"201",[328,1126,1128],{"className":766,"code":1127,"language":768,"meta":333,"style":333},"{\n  \"data\": {\n    \"id\": 918402,\n    \"club\": { \"id\": 57, \"name\": \"TK Test\" },\n    \"court_id\": 412,\n    \"court_name\": \"Teren 3\",\n    \"from\": \"2026-10-07T16:00:00+00:00\",\n    \"to\": \"2026-10-07T17:30:00+00:00\",\n    \"approved\": false,\n    \"price\": 20,\n    \"needs_payment\": true,\n    \"pay_by\": \"2026-10-01T10:20:00+00:00\"\n  }\n}\n",[321,1129,1130,1134,1147,1163,1203,1217,1235,1253,1272,1285,1301,1315,1333,1338],{"__ignoreMap":333},[337,1131,1132],{"class":339,"line":340},[337,1133,775],{"class":361},[337,1135,1136,1138,1140,1142,1144],{"class":339,"line":355},[337,1137,780],{"class":361},[337,1139,784],{"class":783},[337,1141,787],{"class":361},[337,1143,790],{"class":361},[337,1145,1146],{"class":361}," {\n",[337,1148,1149,1152,1154,1156,1158,1161],{"class":339,"line":796},[337,1150,1151],{"class":361},"    \"",[337,1153,698],{"class":343},[337,1155,787],{"class":361},[337,1157,790],{"class":361},[337,1159,1160],{"class":814}," 918402",[337,1162,818],{"class":361},[337,1164,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201],{"class":339,"line":802},[337,1166,1151],{"class":361},[337,1168,826],{"class":343},[337,1170,787],{"class":361},[337,1172,790],{"class":361},[337,1174,833],{"class":361},[337,1176,362],{"class":361},[337,1178,698],{"class":814},[337,1180,787],{"class":361},[337,1182,790],{"class":361},[337,1184,844],{"class":814},[337,1186,847],{"class":361},[337,1188,362],{"class":361},[337,1190,708],{"class":814},[337,1192,787],{"class":361},[337,1194,790],{"class":361},[337,1196,362],{"class":361},[337,1198,860],{"class":347},[337,1200,787],{"class":361},[337,1202,865],{"class":361},[337,1204,1205,1207,1209,1211,1213,1215],{"class":339,"line":821},[337,1206,1151],{"class":361},[337,1208,873],{"class":343},[337,1210,787],{"class":361},[337,1212,790],{"class":361},[337,1214,880],{"class":814},[337,1216,818],{"class":361},[337,1218,1219,1221,1223,1225,1227,1229,1231,1233],{"class":339,"line":868},[337,1220,1151],{"class":361},[337,1222,890],{"class":343},[337,1224,787],{"class":361},[337,1226,790],{"class":361},[337,1228,362],{"class":361},[337,1230,899],{"class":347},[337,1232,787],{"class":361},[337,1234,818],{"class":361},[337,1236,1237,1239,1241,1243,1245,1247,1249,1251],{"class":339,"line":885},[337,1238,1151],{"class":361},[337,1240,755],{"class":343},[337,1242,787],{"class":361},[337,1244,790],{"class":361},[337,1246,362],{"class":361},[337,1248,919],{"class":347},[337,1250,787],{"class":361},[337,1252,818],{"class":361},[337,1254,1255,1257,1259,1261,1263,1265,1268,1270],{"class":339,"line":906},[337,1256,1151],{"class":361},[337,1258,758],{"class":343},[337,1260,787],{"class":361},[337,1262,790],{"class":361},[337,1264,362],{"class":361},[337,1266,1267],{"class":347},"2026-10-07T17:30:00+00:00",[337,1269,787],{"class":361},[337,1271,818],{"class":361},[337,1273,1274,1276,1278,1280,1282],{"class":339,"line":926},[337,1275,1151],{"class":361},[337,1277,951],{"class":343},[337,1279,787],{"class":361},[337,1281,790],{"class":361},[337,1283,1284],{"class":361}," false,\n",[337,1286,1287,1289,1292,1294,1296,1299],{"class":339,"line":946},[337,1288,1151],{"class":361},[337,1290,1291],{"class":343},"price",[337,1293,787],{"class":361},[337,1295,790],{"class":361},[337,1297,1298],{"class":814}," 20",[337,1300,818],{"class":361},[337,1302,1303,1305,1308,1310,1312],{"class":339,"line":961},[337,1304,1151],{"class":361},[337,1306,1307],{"class":343},"needs_payment",[337,1309,787],{"class":361},[337,1311,790],{"class":361},[337,1313,1314],{"class":361}," true,\n",[337,1316,1317,1319,1322,1324,1326,1328,1331],{"class":339,"line":967},[337,1318,1151],{"class":361},[337,1320,1321],{"class":343},"pay_by",[337,1323,787],{"class":361},[337,1325,790],{"class":361},[337,1327,362],{"class":361},[337,1329,1330],{"class":347},"2026-10-01T10:20:00+00:00",[337,1332,371],{"class":361},[337,1334,1335],{"class":339,"line":973},[337,1336,1337],{"class":361},"  }\n",[337,1339,1341],{"class":339,"line":1340},14,[337,1342,976],{"class":361},[318,1344,1345,1348,1349,1351,1352,1355,1356,1358,1359,1098,1362,752,1365,1367,1368,1371],{},[732,1346,1347],{},"Payment is never taken through the API."," When ",[321,1350,1307],{}," is ",[321,1353,1354],{},"true",", the member must pay\nin the Sporty app before ",[321,1357,1321],{},", or the club takes the slot back. Tell them so. A club that\ndoes not require payment up front answers ",[321,1360,1361],{},"needs_payment: false",[321,1363,1364],{},"pay_by: null",[321,1366,1321],{}," is\ngiven only on the answer that made the booking, and is ",[321,1369,1370],{},"null"," on a repeat.",[318,1373,1374],{},"The member is notified as for any booking they make themselves, and the club sees it in its\ndiary as theirs.",[318,1376,1377,1378,1381],{},"When the member cannot book, the answer is ",[321,1379,1380],{},"409"," with a code, plus the rule's own message,\ntranslated for the member and meant to be shown to them:",[378,1383,1384,1396],{},[381,1385,1386],{},[384,1387,1388,1393],{},[387,1389,1390],{},[321,1391,1392],{},"error",[387,1394,1395],{},"Meaning",[397,1397,1398,1408,1418,1428,1438,1448,1458,1468,1478,1488,1498],{},[384,1399,1400,1405],{},[402,1401,1402],{},[321,1403,1404],{},"slot_taken",[402,1406,1407],{},"Someone else has part of that time.",[384,1409,1410,1415],{},[402,1411,1412],{},[321,1413,1414],{},"outside_opening_hours",[402,1416,1417],{},"The court is not open to this member for all of it.",[384,1419,1420,1425],{},[402,1421,1422],{},[321,1423,1424],{},"court_closed",[402,1426,1427],{},"The court is closed that day.",[384,1429,1430,1435],{},[402,1431,1432],{},[321,1433,1434],{},"in_past",[402,1436,1437],{},"That time has passed.",[384,1439,1440,1445],{},[402,1441,1442],{},[321,1443,1444],{},"too_soon",[402,1446,1447],{},"Too close to the start for their membership.",[384,1449,1450,1455],{},[402,1451,1452],{},[321,1453,1454],{},"too_far_ahead",[402,1456,1457],{},"Further ahead than their membership allows.",[384,1459,1460,1465],{},[402,1461,1462],{},[321,1463,1464],{},"leaves_a_gap",[402,1466,1467],{},"It would leave a half-hour gap the club does not allow.",[384,1469,1470,1475],{},[402,1471,1472],{},[321,1473,1474],{},"duration_not_offered",[402,1476,1477],{},"The club does not sell that length at that time.",[384,1479,1480,1485],{},[402,1481,1482],{},[321,1483,1484],{},"limit_reached",[402,1486,1487],{},"They already hold as many bookings as their membership allows.",[384,1489,1490,1495],{},[402,1491,1492],{},[321,1493,1494],{},"not_a_member",[402,1496,1497],{},"The club has not accepted them yet.",[384,1499,1500,1505],{},[402,1501,1502],{},[321,1503,1504],{},"not_bookable",[402,1506,1507],{},"Any other rule; the message says which.",[318,1509,1510,1513,1514,1517,1518,1521],{},[321,1511,1512],{},"invalid_times"," (",[321,1515,1516],{},"422",") means the times are not whole slots, or run past midnight. ",[321,1519,1520],{},"403 access_denied"," means the member authorised your application for a different club.",[687,1523,1525],{"id":1524},"delete-mereservationsid",[321,1526,1527],{},"DELETE \u002Fme\u002Freservations\u002F{id}",[318,1529,1530,1531,1533,1534,1537,1538,1541,1542,1545],{},"Cancels one of the member's own bookings ",[732,1532,991],{},", so their cancellation deadline\napplies. Anything they paid goes back to their club wallet, and the other players are told.\nThe answer is ",[321,1535,1536],{},"204",". It is ",[321,1539,1540],{},"409 not_cancelable",", with the reason, when it is too late or the\nbooking is not theirs to cancel (someone else booked them in). It is ",[321,1543,1544],{},"404"," for a booking they\nare not in.",[687,1547,1549],{"id":1548},"get-meresults",[321,1550,1551],{},"GET \u002Fme\u002Fresults",[318,1553,1554,1555,1098,1557,1559,1560,1562],{},"The member's match results, newest first. ",[321,1556,755],{},[321,1558,758],{}," (ISO 8601) narrow it; ",[321,1561,762],{},"\ngoes up to 100.",[328,1564,1566],{"className":766,"code":1565,"language":768,"meta":333,"style":333},"{\n  \"data\": [\n    {\n      \"id\": 22875,\n      \"club\": { \"id\": 57, \"name\": \"TK Test\" },\n      \"played_at\": \"2026-09-27T18:00:00+00:00\",\n      \"sport\": \"tennis\",\n      \"kind\": \"league\",\n      \"sets\": [\n        { \"games\": [2, 6], \"tie_break\": null },\n        { \"games\": [6, 3], \"tie_break\": null },\n        { \"games\": [7, 6], \"tie_break\": [10, 8] }\n      ],\n      \"won\": true,\n      \"official\": true,\n      \"verified\": true\n    }\n  ]\n}\n",[321,1567,1568,1572,1584,1588,1603,1643,1663,1683,1703,1716,1758,1794,1841,1846,1859,1873,1887,1892,1897],{"__ignoreMap":333},[337,1569,1570],{"class":339,"line":340},[337,1571,775],{"class":361},[337,1573,1574,1576,1578,1580,1582],{"class":339,"line":355},[337,1575,780],{"class":361},[337,1577,784],{"class":783},[337,1579,787],{"class":361},[337,1581,790],{"class":361},[337,1583,793],{"class":361},[337,1585,1586],{"class":339,"line":796},[337,1587,799],{"class":361},[337,1589,1590,1592,1594,1596,1598,1601],{"class":339,"line":802},[337,1591,805],{"class":361},[337,1593,698],{"class":343},[337,1595,787],{"class":361},[337,1597,790],{"class":361},[337,1599,1600],{"class":814}," 22875",[337,1602,818],{"class":361},[337,1604,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641],{"class":339,"line":821},[337,1606,805],{"class":361},[337,1608,826],{"class":343},[337,1610,787],{"class":361},[337,1612,790],{"class":361},[337,1614,833],{"class":361},[337,1616,362],{"class":361},[337,1618,698],{"class":814},[337,1620,787],{"class":361},[337,1622,790],{"class":361},[337,1624,844],{"class":814},[337,1626,847],{"class":361},[337,1628,362],{"class":361},[337,1630,708],{"class":814},[337,1632,787],{"class":361},[337,1634,790],{"class":361},[337,1636,362],{"class":361},[337,1638,860],{"class":347},[337,1640,787],{"class":361},[337,1642,865],{"class":361},[337,1644,1645,1647,1650,1652,1654,1656,1659,1661],{"class":339,"line":868},[337,1646,805],{"class":361},[337,1648,1649],{"class":343},"played_at",[337,1651,787],{"class":361},[337,1653,790],{"class":361},[337,1655,362],{"class":361},[337,1657,1658],{"class":347},"2026-09-27T18:00:00+00:00",[337,1660,787],{"class":361},[337,1662,818],{"class":361},[337,1664,1665,1667,1670,1672,1674,1676,1679,1681],{"class":339,"line":885},[337,1666,805],{"class":361},[337,1668,1669],{"class":343},"sport",[337,1671,787],{"class":361},[337,1673,790],{"class":361},[337,1675,362],{"class":361},[337,1677,1678],{"class":347},"tennis",[337,1680,787],{"class":361},[337,1682,818],{"class":361},[337,1684,1685,1687,1690,1692,1694,1696,1699,1701],{"class":339,"line":906},[337,1686,805],{"class":361},[337,1688,1689],{"class":343},"kind",[337,1691,787],{"class":361},[337,1693,790],{"class":361},[337,1695,362],{"class":361},[337,1697,1698],{"class":347},"league",[337,1700,787],{"class":361},[337,1702,818],{"class":361},[337,1704,1705,1707,1710,1712,1714],{"class":339,"line":926},[337,1706,805],{"class":361},[337,1708,1709],{"class":343},"sets",[337,1711,787],{"class":361},[337,1713,790],{"class":361},[337,1715,793],{"class":361},[337,1717,1718,1721,1723,1726,1728,1730,1733,1736,1738,1741,1744,1746,1749,1751,1753,1756],{"class":339,"line":946},[337,1719,1720],{"class":361},"        {",[337,1722,362],{"class":361},[337,1724,1725],{"class":814},"games",[337,1727,787],{"class":361},[337,1729,790],{"class":361},[337,1731,1732],{"class":361}," [",[337,1734,1735],{"class":814},"2",[337,1737,847],{"class":361},[337,1739,1740],{"class":814}," 6",[337,1742,1743],{"class":361},"],",[337,1745,362],{"class":361},[337,1747,1748],{"class":814},"tie_break",[337,1750,787],{"class":361},[337,1752,790],{"class":361},[337,1754,1755],{"class":361}," null",[337,1757,865],{"class":361},[337,1759,1760,1762,1764,1766,1768,1770,1772,1775,1777,1780,1782,1784,1786,1788,1790,1792],{"class":339,"line":961},[337,1761,1720],{"class":361},[337,1763,362],{"class":361},[337,1765,1725],{"class":814},[337,1767,787],{"class":361},[337,1769,790],{"class":361},[337,1771,1732],{"class":361},[337,1773,1774],{"class":814},"6",[337,1776,847],{"class":361},[337,1778,1779],{"class":814}," 3",[337,1781,1743],{"class":361},[337,1783,362],{"class":361},[337,1785,1748],{"class":814},[337,1787,787],{"class":361},[337,1789,790],{"class":361},[337,1791,1755],{"class":361},[337,1793,865],{"class":361},[337,1795,1796,1798,1800,1802,1804,1806,1808,1811,1813,1815,1817,1819,1821,1823,1825,1827,1830,1832,1835,1838],{"class":339,"line":967},[337,1797,1720],{"class":361},[337,1799,362],{"class":361},[337,1801,1725],{"class":814},[337,1803,787],{"class":361},[337,1805,790],{"class":361},[337,1807,1732],{"class":361},[337,1809,1810],{"class":814},"7",[337,1812,847],{"class":361},[337,1814,1740],{"class":814},[337,1816,1743],{"class":361},[337,1818,362],{"class":361},[337,1820,1748],{"class":814},[337,1822,787],{"class":361},[337,1824,790],{"class":361},[337,1826,1732],{"class":361},[337,1828,1829],{"class":814},"10",[337,1831,847],{"class":361},[337,1833,1834],{"class":814}," 8",[337,1836,1837],{"class":361},"]",[337,1839,1840],{"class":361}," }\n",[337,1842,1843],{"class":339,"line":973},[337,1844,1845],{"class":361},"      ],\n",[337,1847,1848,1850,1853,1855,1857],{"class":339,"line":1340},[337,1849,805],{"class":361},[337,1851,1852],{"class":343},"won",[337,1854,787],{"class":361},[337,1856,790],{"class":361},[337,1858,1314],{"class":361},[337,1860,1862,1864,1867,1869,1871],{"class":339,"line":1861},15,[337,1863,805],{"class":361},[337,1865,1866],{"class":343},"official",[337,1868,787],{"class":361},[337,1870,790],{"class":361},[337,1872,1314],{"class":361},[337,1874,1876,1878,1881,1883,1885],{"class":339,"line":1875},16,[337,1877,805],{"class":361},[337,1879,1880],{"class":343},"verified",[337,1882,787],{"class":361},[337,1884,790],{"class":361},[337,1886,958],{"class":361},[337,1888,1890],{"class":339,"line":1889},17,[337,1891,964],{"class":361},[337,1893,1895],{"class":339,"line":1894},18,[337,1896,970],{"class":361},[337,1898,1900],{"class":339,"line":1899},19,[337,1901,976],{"class":361},[994,1903,1904,1914,1920,1929,1944,1951],{},[997,1905,1906,1909,1910,1913],{},[732,1907,1908],{},"Scores are from the member's side."," Every pair is ",[321,1911,1912],{},"[the member's, the opponents']",", so\nyou never need to know which side of the match they were on.",[997,1915,1916,1919],{},[732,1917,1918],{},"Sets:"," only sets that were played are listed.",[997,1921,1922,640,1926,1928],{},[732,1923,1924,790],{},[321,1925,1852],{},[321,1927,1370],{}," when there was no winner.",[997,1930,1931,640,1935,699,1937,1940,1941,724],{},[732,1932,1933,790],{},[321,1934,1689],{},[321,1936,1698],{},[321,1938,1939],{},"tournament"," or ",[321,1942,1943],{},"match",[997,1945,1946,1950],{},[732,1947,1948,790],{},[321,1949,1880],{}," the opponents confirmed the score.",[997,1952,1953,1956],{},[732,1954,1955],{},"Opponents are not included:"," whom a member played is the opponents' to share.",[687,1958,1960],{"id":1959},"get-mememberships",[321,1961,1962],{},"GET \u002Fme\u002Fmemberships",[318,1964,1965],{},"The clubs the member belongs to, and on which plan: every membership that has not ended.",[328,1967,1969],{"className":766,"code":1968,"language":768,"meta":333,"style":333},"{\n  \"data\": [\n    {\n      \"club\": { \"id\": 57, \"name\": \"TK Test\" },\n      \"membership\": { \"id\": 12, \"name\": \"Seniori\", \"basic\": false },\n      \"start\": \"2026-01-01T00:00:00+00:00\",\n      \"end\": \"2026-12-31T00:00:00+00:00\",\n      \"renews\": false\n    }\n  ]\n}\n",[321,1970,1971,1975,1987,1991,2031,2088,2108,2128,2142,2146,2150],{"__ignoreMap":333},[337,1972,1973],{"class":339,"line":340},[337,1974,775],{"class":361},[337,1976,1977,1979,1981,1983,1985],{"class":339,"line":355},[337,1978,780],{"class":361},[337,1980,784],{"class":783},[337,1982,787],{"class":361},[337,1984,790],{"class":361},[337,1986,793],{"class":361},[337,1988,1989],{"class":339,"line":796},[337,1990,799],{"class":361},[337,1992,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029],{"class":339,"line":802},[337,1994,805],{"class":361},[337,1996,826],{"class":343},[337,1998,787],{"class":361},[337,2000,790],{"class":361},[337,2002,833],{"class":361},[337,2004,362],{"class":361},[337,2006,698],{"class":814},[337,2008,787],{"class":361},[337,2010,790],{"class":361},[337,2012,844],{"class":814},[337,2014,847],{"class":361},[337,2016,362],{"class":361},[337,2018,708],{"class":814},[337,2020,787],{"class":361},[337,2022,790],{"class":361},[337,2024,362],{"class":361},[337,2026,860],{"class":347},[337,2028,787],{"class":361},[337,2030,865],{"class":361},[337,2032,2033,2035,2038,2040,2042,2044,2046,2048,2050,2052,2055,2057,2059,2061,2063,2065,2067,2070,2072,2074,2076,2079,2081,2083,2086],{"class":339,"line":821},[337,2034,805],{"class":361},[337,2036,2037],{"class":343},"membership",[337,2039,787],{"class":361},[337,2041,790],{"class":361},[337,2043,833],{"class":361},[337,2045,362],{"class":361},[337,2047,698],{"class":814},[337,2049,787],{"class":361},[337,2051,790],{"class":361},[337,2053,2054],{"class":814}," 12",[337,2056,847],{"class":361},[337,2058,362],{"class":361},[337,2060,708],{"class":814},[337,2062,787],{"class":361},[337,2064,790],{"class":361},[337,2066,362],{"class":361},[337,2068,2069],{"class":347},"Seniori",[337,2071,787],{"class":361},[337,2073,847],{"class":361},[337,2075,362],{"class":361},[337,2077,2078],{"class":814},"basic",[337,2080,787],{"class":361},[337,2082,790],{"class":361},[337,2084,2085],{"class":361}," false",[337,2087,865],{"class":361},[337,2089,2090,2092,2095,2097,2099,2101,2104,2106],{"class":339,"line":868},[337,2091,805],{"class":361},[337,2093,2094],{"class":343},"start",[337,2096,787],{"class":361},[337,2098,790],{"class":361},[337,2100,362],{"class":361},[337,2102,2103],{"class":347},"2026-01-01T00:00:00+00:00",[337,2105,787],{"class":361},[337,2107,818],{"class":361},[337,2109,2110,2112,2115,2117,2119,2121,2124,2126],{"class":339,"line":885},[337,2111,805],{"class":361},[337,2113,2114],{"class":343},"end",[337,2116,787],{"class":361},[337,2118,790],{"class":361},[337,2120,362],{"class":361},[337,2122,2123],{"class":347},"2026-12-31T00:00:00+00:00",[337,2125,787],{"class":361},[337,2127,818],{"class":361},[337,2129,2130,2132,2135,2137,2139],{"class":339,"line":906},[337,2131,805],{"class":361},[337,2133,2134],{"class":343},"renews",[337,2136,787],{"class":361},[337,2138,790],{"class":361},[337,2140,2141],{"class":361}," false\n",[337,2143,2144],{"class":339,"line":926},[337,2145,964],{"class":361},[337,2147,2148],{"class":339,"line":946},[337,2149,970],{"class":361},[337,2151,2152],{"class":339,"line":961},[337,2153,976],{"class":361},[318,2155,2156,1351,2158,2160,2161,2163,2164,2166],{},[321,2157,2114],{},[321,2159,1370],{}," for a membership with no end date. ",[321,2162,2134],{}," says whether it renews on its own.\n",[321,2165,2078],{}," marks the plan every member of the club has before they buy another.",[687,2168,2170],{"id":2169},"get-clubsme",[321,2171,2172],{},"GET \u002Fclubs\u002Fme",[318,2174,2175],{},"Which club your token acts for. Worth calling first, especially if you hold grants for\nseveral clubs.",[687,2177,2179],{"id":2178},"get-courts",[321,2180,2181],{},"GET \u002Fcourts",[318,2183,2184,2186,2187,699,2189,699,2191,699,2194,699,2197,818,2200,699,2203,699,2206,2208,2209,2212],{},[321,2185,762],{}," up to 100. Each court has ",[321,2188,698],{},[321,2190,708],{},[321,2192,2193],{},"active",[321,2195,2196],{},"indoor",[321,2198,2199],{},"lights",[321,2201,2202],{},"working_from",[321,2204,2205],{},"working_to",[321,2207,1108],{}," (minutes per slot) and ",[321,2210,2211],{},"sports",", what is\nplayed on it:",[328,2214,2216],{"className":766,"code":2215,"language":768,"meta":333,"style":333},"\"sports\": [ { \"id\": 2, \"slug\": \"padel\", \"name\": \"Padel\" } ]\n",[321,2217,2218],{"__ignoreMap":333},[337,2219,2220,2222,2224,2226,2229,2232,2234,2236,2238,2240,2242,2245,2247,2249,2252,2254,2256,2258,2261,2263,2265,2267,2269,2271,2273,2275,2278,2280,2283],{"class":339,"line":340},[337,2221,787],{"class":361},[337,2223,2211],{"class":347},[337,2225,787],{"class":361},[337,2227,2228],{"class":351},": ",[337,2230,2231],{"class":361},"[",[337,2233,833],{"class":361},[337,2235,362],{"class":361},[337,2237,698],{"class":783},[337,2239,787],{"class":361},[337,2241,790],{"class":361},[337,2243,2244],{"class":814}," 2",[337,2246,847],{"class":361},[337,2248,362],{"class":361},[337,2250,2251],{"class":783},"slug",[337,2253,787],{"class":361},[337,2255,790],{"class":361},[337,2257,362],{"class":361},[337,2259,2260],{"class":347},"padel",[337,2262,787],{"class":361},[337,2264,847],{"class":361},[337,2266,362],{"class":361},[337,2268,708],{"class":783},[337,2270,787],{"class":361},[337,2272,790],{"class":361},[337,2274,362],{"class":361},[337,2276,2277],{"class":347},"Padel",[337,2279,787],{"class":361},[337,2281,2282],{"class":361}," }",[337,2284,2285],{"class":361}," ]\n",[318,2287,2288],{},"Most courts have one sport; a few have two, and a court nobody has set one for has none.",[687,2290,2292],{"id":2291},"get-availability",[321,2293,1104],{},[318,2295,2296,2297,1513,2300,2303,2304,2307,2308,2310],{},"Which slots are free. ",[321,2298,2299],{},"date",[321,2301,2302],{},"YYYY-MM-DD",", the club's local day) is required; ",[321,2305,2306],{},"days"," covers up\nto 7 days from it; ",[321,2309,873],{}," narrows it to one court.",[328,2312,2314],{"className":766,"code":2313,"language":768,"meta":333,"style":333},"{\n  \"data\": [\n    {\n      \"court_id\": 412,\n      \"date\": \"2026-10-07\",\n      \"timezone\": \"Europe\u002FZagreb\",\n      \"closed\": null,\n      \"slots\": [\n        { \"from\": \"2026-10-07T06:00:00+00:00\", \"to\": \"2026-10-07T07:00:00+00:00\", \"available\": false },\n        { \"from\": \"2026-10-07T07:00:00+00:00\", \"to\": \"2026-10-07T08:00:00+00:00\", \"available\": true }\n      ]\n    }\n  ]\n}\n",[321,2315,2316,2320,2332,2336,2350,2369,2389,2403,2416,2467,2517,2522,2526,2530],{"__ignoreMap":333},[337,2317,2318],{"class":339,"line":340},[337,2319,775],{"class":361},[337,2321,2322,2324,2326,2328,2330],{"class":339,"line":355},[337,2323,780],{"class":361},[337,2325,784],{"class":783},[337,2327,787],{"class":361},[337,2329,790],{"class":361},[337,2331,793],{"class":361},[337,2333,2334],{"class":339,"line":796},[337,2335,799],{"class":361},[337,2337,2338,2340,2342,2344,2346,2348],{"class":339,"line":802},[337,2339,805],{"class":361},[337,2341,873],{"class":343},[337,2343,787],{"class":361},[337,2345,790],{"class":361},[337,2347,880],{"class":814},[337,2349,818],{"class":361},[337,2351,2352,2354,2356,2358,2360,2362,2365,2367],{"class":339,"line":821},[337,2353,805],{"class":361},[337,2355,2299],{"class":343},[337,2357,787],{"class":361},[337,2359,790],{"class":361},[337,2361,362],{"class":361},[337,2363,2364],{"class":347},"2026-10-07",[337,2366,787],{"class":361},[337,2368,818],{"class":361},[337,2370,2371,2373,2376,2378,2380,2382,2385,2387],{"class":339,"line":868},[337,2372,805],{"class":361},[337,2374,2375],{"class":343},"timezone",[337,2377,787],{"class":361},[337,2379,790],{"class":361},[337,2381,362],{"class":361},[337,2383,2384],{"class":347},"Europe\u002FZagreb",[337,2386,787],{"class":361},[337,2388,818],{"class":361},[337,2390,2391,2393,2396,2398,2400],{"class":339,"line":885},[337,2392,805],{"class":361},[337,2394,2395],{"class":343},"closed",[337,2397,787],{"class":361},[337,2399,790],{"class":361},[337,2401,2402],{"class":361}," null,\n",[337,2404,2405,2407,2410,2412,2414],{"class":339,"line":906},[337,2406,805],{"class":361},[337,2408,2409],{"class":343},"slots",[337,2411,787],{"class":361},[337,2413,790],{"class":361},[337,2415,793],{"class":361},[337,2417,2418,2420,2422,2424,2426,2428,2430,2433,2435,2437,2439,2441,2443,2445,2447,2450,2452,2454,2456,2459,2461,2463,2465],{"class":339,"line":926},[337,2419,1720],{"class":361},[337,2421,362],{"class":361},[337,2423,755],{"class":814},[337,2425,787],{"class":361},[337,2427,790],{"class":361},[337,2429,362],{"class":361},[337,2431,2432],{"class":347},"2026-10-07T06:00:00+00:00",[337,2434,787],{"class":361},[337,2436,847],{"class":361},[337,2438,362],{"class":361},[337,2440,758],{"class":814},[337,2442,787],{"class":361},[337,2444,790],{"class":361},[337,2446,362],{"class":361},[337,2448,2449],{"class":347},"2026-10-07T07:00:00+00:00",[337,2451,787],{"class":361},[337,2453,847],{"class":361},[337,2455,362],{"class":361},[337,2457,2458],{"class":814},"available",[337,2460,787],{"class":361},[337,2462,790],{"class":361},[337,2464,2085],{"class":361},[337,2466,865],{"class":361},[337,2468,2469,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2500,2502,2504,2506,2508,2510,2512,2515],{"class":339,"line":946},[337,2470,1720],{"class":361},[337,2472,362],{"class":361},[337,2474,755],{"class":814},[337,2476,787],{"class":361},[337,2478,790],{"class":361},[337,2480,362],{"class":361},[337,2482,2449],{"class":347},[337,2484,787],{"class":361},[337,2486,847],{"class":361},[337,2488,362],{"class":361},[337,2490,758],{"class":814},[337,2492,787],{"class":361},[337,2494,790],{"class":361},[337,2496,362],{"class":361},[337,2498,2499],{"class":347},"2026-10-07T08:00:00+00:00",[337,2501,787],{"class":361},[337,2503,847],{"class":361},[337,2505,362],{"class":361},[337,2507,2458],{"class":814},[337,2509,787],{"class":361},[337,2511,790],{"class":361},[337,2513,2514],{"class":361}," true",[337,2516,1840],{"class":361},[337,2518,2519],{"class":339,"line":961},[337,2520,2521],{"class":361},"      ]\n",[337,2523,2524],{"class":339,"line":967},[337,2525,964],{"class":361},[337,2527,2528],{"class":339,"line":973},[337,2529,970],{"class":361},[337,2531,2532],{"class":339,"line":1340},[337,2533,976],{"class":361},[994,2535,2536,2548,2558,2575],{},[997,2537,2538,2541,2542,2544,2545,2547],{},[732,2539,2540],{},"One entry per court per day."," The slots follow the club's timetable for that day, each\n",[321,2543,1108],{}," long. Times are in UTC; ",[321,2546,2375],{}," is the club's.",[997,2549,2550,2553,2554,2557],{},[732,2551,2552],{},"Taken or free."," A slot is taken (",[321,2555,2556],{},"\"available\": false",") when any booking overlaps it, even\npartly.",[997,2559,2560,640,2563,1351,2565,1940,2568,2571,2572,2574],{},[732,2561,2562],{},"Closed courts.",[321,2564,2395],{},[321,2566,2567],{},"inactive",[321,2569,2570],{},"court_break"," when the court cannot be booked\nat all that day, and its ",[321,2573,2409],{}," are then empty.",[997,2576,2577,2580,2581,2584],{},[732,2578,2579],{},"Whose timetable."," This is the club's ",[732,2582,2583],{},"standard"," timetable, the one a visitor who is not\nsigned in sees. A member's own membership can open or close some hours, and set the price.\nNeither is shown here.",[687,2586,2588],{"id":2587},"get-reservations",[321,2589,2590],{},"GET \u002Freservations",[318,2592,2593,1098,2595,2597,2598,2600,2601,2603],{},[321,2594,755],{},[321,2596,758],{}," (ISO 8601, UTC) narrow the window; ",[321,2599,762],{}," up to 100. Bookings are\nreturned without the people in them. Reading those needs ",[321,2602,670],{}," and the members\nendpoint, so the club makes the two decisions separately.",[318,2605,2606,2609,2610,724],{},[321,2607,2608],{},"updated_since"," returns every booking changed at or after that instant instead, oldest change\nfirst, cancellations included. It is for ",[2611,2612,2614],"a",{"href":2613},"\u002Fen\u002Foauth\u002Fbooking-sync#catching-up","keeping a copy in sync",[318,2616,2617],{},"Each booking has:",[378,2619,2620,2629],{},[381,2621,2622],{},[384,2623,2624,2627],{},[387,2625,2626],{},"Field",[387,2628],{},[397,2630,2631,2643,2654,2664,2673,2692,2709,2723],{},[384,2632,2633,2641],{},[402,2634,2635,699,2637,699,2639],{},[321,2636,698],{},[321,2638,873],{},[321,2640,890],{},[402,2642],{},[384,2644,2645,2651],{},[402,2646,2647,699,2649],{},[321,2648,755],{},[321,2650,758],{},[402,2652,2653],{},"UTC",[384,2655,2656,2661],{},[402,2657,2658],{},[321,2659,2660],{},"category_id",[402,2662,2663],{},"The club's reservation category, if any",[384,2665,2666,2670],{},[402,2667,2668],{},[321,2669,951],{},[402,2671,2672],{},"Whether the booking is confirmed",[384,2674,2675,2680],{},[402,2676,2677],{},[321,2678,2679],{},"cancelled",[402,2681,2682,2683,2685,2686,2688,2689],{},"Only ever ",[321,2684,1354],{}," with ",[321,2687,2608],{}," or on ",[321,2690,2691],{},"GET \u002Freservations\u002F{id}",[384,2693,2694,2699],{},[402,2695,2696],{},[321,2697,2698],{},"source",[402,2700,2701,2704,2705,2708],{},[321,2702,2703],{},"partner"," for a booking your application pushed, ",[321,2706,2707],{},"sporty"," for any other",[384,2710,2711,2717],{},[402,2712,2713,699,2715],{},[321,2714,1076],{},[321,2716,708],{},[402,2718,2719,2720,2722],{},"Your id and name for a booking you pushed; ",[321,2721,1370],{}," on every other",[384,2724,2725,2730],{},[402,2726,2727],{},[321,2728,2729],{},"updated_at",[402,2731,2732],{},"When the booking last changed",[687,2734,2736],{"id":2735},"writing-bookings-and-webhooks","Writing bookings and webhooks",[318,2738,2739,699,2741,1098,2743,1098,2746,2748,2749,724],{},[321,2740,439],{},[321,2742,611],{},[321,2744,2745],{},"DELETE \u002Freservations",[321,2747,650],{}," are for a system that keeps its own\ndiary in step with the club's. They are described, with examples, in\n",[2611,2750,300],{"href":301},[687,2752,2754],{"id":2753},"get-members",[321,2755,2756],{},"GET \u002Fmembers",[318,2758,2759,2762,2763,2765],{},[321,2760,2761],{},"search"," matches name or email. ",[321,2764,762],{}," up to 100.",[687,2767,2769],{"id":2768},"post-members",[321,2770,2771],{},"POST \u002Fmembers",[328,2773,2775],{"className":766,"code":2774,"language":768,"meta":333,"style":333},"{\n  \"email\": \"new@example.com\",\n  \"firstName\": \"New\",\n  \"lastName\": \"Member\",\n  \"language\": \"hr\",\n  \"countryCode\": \"HR\"\n}\n",[321,2776,2777,2781,2800,2820,2840,2860,2878],{"__ignoreMap":333},[337,2778,2779],{"class":339,"line":340},[337,2780,775],{"class":361},[337,2782,2783,2785,2787,2789,2791,2793,2796,2798],{"class":339,"line":355},[337,2784,780],{"class":361},[337,2786,719],{"class":783},[337,2788,787],{"class":361},[337,2790,790],{"class":361},[337,2792,362],{"class":361},[337,2794,2795],{"class":347},"new@example.com",[337,2797,787],{"class":361},[337,2799,818],{"class":361},[337,2801,2802,2804,2807,2809,2811,2813,2816,2818],{"class":339,"line":796},[337,2803,780],{"class":361},[337,2805,2806],{"class":783},"firstName",[337,2808,787],{"class":361},[337,2810,790],{"class":361},[337,2812,362],{"class":361},[337,2814,2815],{"class":347},"New",[337,2817,787],{"class":361},[337,2819,818],{"class":361},[337,2821,2822,2824,2827,2829,2831,2833,2836,2838],{"class":339,"line":802},[337,2823,780],{"class":361},[337,2825,2826],{"class":783},"lastName",[337,2828,787],{"class":361},[337,2830,790],{"class":361},[337,2832,362],{"class":361},[337,2834,2835],{"class":347},"Member",[337,2837,787],{"class":361},[337,2839,818],{"class":361},[337,2841,2842,2844,2847,2849,2851,2853,2856,2858],{"class":339,"line":821},[337,2843,780],{"class":361},[337,2845,2846],{"class":783},"language",[337,2848,787],{"class":361},[337,2850,790],{"class":361},[337,2852,362],{"class":361},[337,2854,2855],{"class":347},"hr",[337,2857,787],{"class":361},[337,2859,818],{"class":361},[337,2861,2862,2864,2867,2869,2871,2873,2876],{"class":339,"line":868},[337,2863,780],{"class":361},[337,2865,2866],{"class":783},"countryCode",[337,2868,787],{"class":361},[337,2870,790],{"class":361},[337,2872,362],{"class":361},[337,2874,2875],{"class":347},"HR",[337,2877,371],{"class":361},[337,2879,2880],{"class":339,"line":885},[337,2881,976],{"class":361},[318,2883,2884,1098,2886,2888],{},[321,2885,2846],{},[321,2887,2866],{}," are optional and default to the club's.",[318,2890,2891,2894,2895,2897,2898,2900],{},[732,2892,2893],{},"Idempotent on the email address."," A member we already know is joined to the club and\nreturned with ",[321,2896,1117],{},"; a new one is created and returned with ",[321,2899,1124],{},". Re-sending the same person\nis safe, which matters when two systems are syncing people.",[373,2902,2904],{"id":2903},"what-is-not-here","What is not here",[318,2906,2907,2910],{},[732,2908,2909],{},"Taking payment."," A member booking made through the API is paid for in the Sporty app, never\nthrough the API.",[373,2912,2914],{"id":2913},"errors","Errors",[378,2916,2917,2929],{},[381,2918,2919],{},[384,2920,2921,2924,2927],{},[387,2922,2923],{},"Status",[387,2925,2926],{},"Body",[387,2928,1395],{},[397,2930,2931,2945,2964,2978,2996,3008],{},[384,2932,2933,2937,2942],{},[402,2934,2935],{},[321,2936,738],{},[402,2938,2939],{},[321,2940,2941],{},"invalid_token",[402,2943,2944],{},"Missing, expired, revoked, or not ours.",[384,2946,2947,2952,2957],{},[402,2948,2949],{},[321,2950,2951],{},"403",[402,2953,2954],{},[321,2955,2956],{},"insufficient_scope",[402,2958,2959,2960,2963],{},"Valid token, scope not granted. ",[321,2961,2962],{},"WWW-Authenticate"," names what is needed.",[384,2965,2966,2970,2975],{},[402,2967,2968],{},[321,2969,2951],{},[402,2971,2972],{},[321,2973,2974],{},"access_denied",[402,2976,2977],{},"No club has granted your application, or not the club you named.",[384,2979,2980,2985,2990],{},[402,2981,2982],{},[321,2983,2984],{},"400",[402,2986,2987],{},[321,2988,2989],{},"club_required",[402,2991,2992,2993,724],{},"You act for several clubs; name one with ",[321,2994,2995],{},"X-Club",[384,2997,2998,3002,3005],{},[402,2999,3000],{},[321,3001,1516],{},[402,3003,3004],{},"Laravel validation errors",[402,3006,3007],{},"A malformed request body.",[384,3009,3010,3015,3018],{},[402,3011,3012],{},[321,3013,3014],{},"429",[402,3016,3017],{},"—",[402,3019,3020],{},"120 requests per minute, per client.",[373,3022,3024],{"id":3023},"versioning","Versioning",[318,3026,3027,3030,3031,3034],{},[321,3028,3029],{},"v1"," is in the path and will not change shape under you. New fields and new endpoints may be\nadded; existing fields will not be removed or change meaning. A breaking change means ",[321,3032,3033],{},"v2",",\nand we will tell you before it arrives.",[3036,3037,3038],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":333,"searchDepth":355,"depth":355,"links":3040},[3041,3056,3057,3058],{"id":375,"depth":355,"text":376,"children":3042},[3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055],{"id":689,"depth":796,"text":692},{"id":742,"depth":796,"text":745},{"id":982,"depth":796,"text":985},{"id":1524,"depth":796,"text":1527},{"id":1548,"depth":796,"text":1551},{"id":1959,"depth":796,"text":1962},{"id":2169,"depth":796,"text":2172},{"id":2178,"depth":796,"text":2181},{"id":2291,"depth":796,"text":1104},{"id":2587,"depth":796,"text":2590},{"id":2735,"depth":796,"text":2736},{"id":2753,"depth":796,"text":2756},{"id":2768,"depth":796,"text":2771},{"id":2903,"depth":355,"text":2904},{"id":2913,"depth":355,"text":2914},{"id":3023,"depth":355,"text":3024},"What an access token can actually read and write, and what it deliberately cannot.","md",null,{},{"icon":278},{"title":3065,"description":3066},"Sporty partner API v1","The endpoints an OAuth token may call, their scopes, and the API's versioning promise.","1MHOpeIEYHbXfkqAR35hb9CYCfBAhuUu2txpby4XqjE",[3069,3071],{"title":292,"path":293,"stem":294,"description":3070,"icon":278,"children":-1},"OpenID Connect — the id_token, its claims, \u002Fuserinfo and verifying a signature.",{"title":300,"path":301,"stem":302,"description":3072,"icon":278,"children":-1},"Keep your booking system and a club's Sporty diary in agreement, in both directions.",1792420865948]