API Overview
API Overview
Section titled “API Overview”CoogCasa provides REST APIs for accessing sports data, scholarship information, and more.
Base URLs
Section titled “Base URLs”| Service | URL |
|---|---|
| Unified API | https://api.coogcasa.com |
| Sports Backend | https://coog-sports-backend.coog-planner.workers.dev |
| Scholarships Backend | https://coog-scholarships-backend.coog-planner.workers.dev |
The unified API router (api.coogcasa.com) is recommended as it provides a single entry point with path-based routing.
Available APIs
Section titled “Available APIs”Sports API
Section titled “Sports API”Access UH athletics data including schedules, rosters, standings, and game details.
Prefix: /sports
GET /sports/api/schedulesGET /sports/api/roster?sport=mens-basketballGET /sports/api/standings?sport=mens-basketballGET /sports/api/game?id=401827646View Sports API Documentation →
Scholarships API
Section titled “Scholarships API”Search and browse UH scholarship opportunities.
Prefix: /scholarships
GET /scholarships/api/scholarshipsGET /scholarships/api/scholarships?source=bauerGET /scholarships/api/scholarship?id=123View Scholarships API Documentation →
Health Check
Section titled “Health Check”Combined health check for all services:
GET /healthResponse:
{ "status": "ok", "service": "coog-api-router", "timestamp": "2026-01-24T12:00:00.000Z", "backends": { "sports": { "status": "ok", "service": "coog-sports-backend" }, "scholarships": { "status": "ok", "version": "1.0.1" } }}Authentication
Section titled “Authentication”Most read endpoints are public and don’t require authentication.
Protected endpoints (triggers, admin) require an API key:
X-API-Key: your-api-keyRate Limiting
Section titled “Rate Limiting”Rate limiting is handled by Cloudflare WAF:
- Default: 60 requests per minute per IP
- Bulk operations: May have lower limits
When rate limited, you’ll receive a 429 Too Many Requests response.
The API supports CORS for the following origins:
https://coogcasa.comhttps://www.coogcasa.comhttps://coogcasa.pages.devhttp://localhost:4321-4325(development)
Response Format
Section titled “Response Format”All responses are JSON with the following structure:
Success Response
Section titled “Success Response”{ "data": { ... }, "meta": { "timestamp": "2026-01-24T12:00:00.000Z", "cached": true }}Error Response
Section titled “Error Response”{ "error": "Error message", "code": "ERROR_CODE", "details": { ... }}Common HTTP Status Codes
Section titled “Common HTTP Status Codes”| Code | Description |
|---|---|
200 | Success |
400 | Bad Request - Invalid parameters |
404 | Not Found - Resource doesn’t exist |
429 | Too Many Requests - Rate limited |
500 | Internal Server Error |
503 | Service Unavailable |
Caching
Section titled “Caching”Responses are cached at the edge:
| Endpoint | Cache Duration |
|---|---|
| Schedules | 24 hours |
| Rosters | 24 hours |
| Standings | 1 hour |
| Game details | 5 minutes |
| Scholarships | 24 hours |
Use the ?nocache=1 parameter to bypass cache (if supported).
SDKs & Libraries
Section titled “SDKs & Libraries”Currently, there are no official SDKs. Use any HTTP client:
// JavaScript/TypeScriptconst response = await fetch('https://api.coogcasa.com/sports/api/schedules');const data = await response.json();# Pythonimport requestsresponse = requests.get('https://api.coogcasa.com/sports/api/schedules')data = response.json()# cURLcurl https://api.coogcasa.com/sports/api/schedules