{"info":{"name":"cluuub Platform API — Postman","description":"Whitelabel multi-tenant club & sports organization API. Authenticated endpoints use token bucket rate limiting (60 req bucket, 1 req/s refill, 10,000 req/day UTC). Sensitive member data requires authorized scopes.","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"item":[{"name":"List active training groups","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/groups?limit={{limit}}&offset={{offset}}","host":["{{baseUrl}}"],"path":["groups"],"query":[{"key":"limit","value":"{{limit}}","description":"Maximum number of records to return.","disabled":true},{"key":"offset","value":"{{offset}}","description":"Number of records to skip for pagination.","disabled":true}]},"description":"Required scope: read:groups. Returns data exclusively for the authenticated club tenant. Active training groups and sections.\n\nResponses:\n200: Successful response\n400: Invalid query parameters\n401: Unauthorized or invalid API key\n403: Forbidden - missing required scope\n429: Rate limit exceeded (token bucket or daily quota exhausted)\n503: Service temporarily unavailable"}},{"name":"List public events and bookings","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/events?limit={{limit}}&offset={{offset}}","host":["{{baseUrl}}"],"path":["events"],"query":[{"key":"limit","value":"{{limit}}","description":"Maximum number of records to return.","disabled":true},{"key":"offset","value":"{{offset}}","description":"Number of records to skip for pagination.","disabled":true}]},"description":"Required scope: read:events. Returns data exclusively for the authenticated club tenant. Open events not restricted to closed training groups.\n\nResponses:\n200: Successful response\n400: Invalid query parameters\n401: Unauthorized or invalid API key\n403: Forbidden - missing required scope\n429: Rate limit exceeded (token bucket or daily quota exhausted)\n503: Service temporarily unavailable"}},{"name":"List published club news and announcements","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/news?limit={{limit}}&offset={{offset}}","host":["{{baseUrl}}"],"path":["news"],"query":[{"key":"limit","value":"{{limit}}","description":"Maximum number of records to return.","disabled":true},{"key":"offset","value":"{{offset}}","description":"Number of records to skip for pagination.","disabled":true}]},"description":"Required scope: read:news. Returns data exclusively for the authenticated club tenant. Published team and club bulletins.\n\nResponses:\n200: Successful response\n400: Invalid query parameters\n401: Unauthorized or invalid API key\n403: Forbidden - missing required scope\n429: Rate limit exceeded (token bucket or daily quota exhausted)\n503: Service temporarily unavailable"}},{"name":"List competition results","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/competition-results?limit={{limit}}&offset={{offset}}","host":["{{baseUrl}}"],"path":["competition-results"],"query":[{"key":"limit","value":"{{limit}}","description":"Maximum number of records to return.","disabled":true},{"key":"offset","value":"{{offset}}","description":"Number of records to skip for pagination.","disabled":true}]},"description":"Required scope: read:competition_results. Returns data exclusively for the authenticated club tenant. Official club tournament and contest outcomes.\n\nResponses:\n200: Successful response\n400: Invalid query parameters\n401: Unauthorized or invalid API key\n403: Forbidden - missing required scope\n429: Rate limit exceeded (token bucket or daily quota exhausted)\n503: Service temporarily unavailable"}},{"name":"List public court availability","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/public/{clubSlug}/courts?date={{date}}","host":["{{baseUrl}}"],"path":["public","{clubSlug}","courts"],"query":[{"key":"date","value":"{{date}}","description":"Date to inspect (YYYY-MM-DD).","disabled":true}]},"description":"Public endpoint listing court slots and occupancy for a club.\n\nResponses:\n200: Court availability retrieved successfully\n404: Club not found"}},{"name":"Book court slot (Public/Guest)","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{baseUrl}}/public/{clubSlug}/courts/book","host":["{{baseUrl}}"],"path":["public","{clubSlug}","courts","book"]},"description":"Initiates a court booking for a guest or club member.\n\nResponses:\n201: Booking confirmed successfully\n400: Slot conflict or invalid booking request"}}],"variable":[{"key":"baseUrl","value":"https://localhost:3000/api/v1"},{"key":"apiToken","value":"","type":"string"},{"key":"limit","value":"50","type":"string"},{"key":"offset","value":"0","type":"string"},{"key":"date","value":"","type":"string"}],"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{apiToken}}","type":"string"}]}}