ohio-state-api
Get public data from The Ohio State University Content APIs (content.osu.edu) across campus services (bus.
What to use
Option A: Direct HTTP fetch (quickest)
Use the bundled fetch helper to pull JSON from OSU Content APIs.
- Fetch by full URL:
node ohio-state-api/scripts/osu-fetch.mjs https://content.osu.edu/v2/api/v1/dining/locations
- Fetch by service + path:
node ohio-state-api/scripts/osu-fetch.mjs --service dining --path /locations
Note: --path can be passed with or without a leading / (both work).
If the response is large, add --extract <dot.path> (e.g. --extract data) to print only a subtree.
Option A2: curl (no Node required)
If you just want raw JSON and have curl available, reference ohio-state-api/references/OSU_API.md:
- Full URL:
curl -sS -H 'accept: application/json' 'https://content.osu.edu/v2/api/v1/dining/locations'
- With query params:
curl -sS -H 'accept: application/json' 'https://content.osu.edu/v2/classes/search?q=cse&p=1'
Optional: pipe to jq for readability:
curl -sS -H 'accept: application/json' 'https://content.osu.edu/v2/api/v1/dining/locations' | jq .
Option B: MCP server (best for MCP-compatible clients)
This skill bundles the original MCP server under ohio-state-api/mcp-server/.
Build it:
cd ohio-state-api/mcp-server && npm install && npm run build
Then configure your MCP client to run:
- command:
node - args:
["/ABSOLUTE/PATH/TO/ohio-state-api/mcp-server/build/index.js"]
After it’s running, use tools like:
get_bus_routes,get_bus_vehiclesget_buildings,search_buildings,get_building_detailsget_dining_locations,get_dining_menuget_campus_events,get_events_by_date_rangesearch_classesget_parking_availability
(See ohio-state-api/mcp-server/README.md and the tool definitions in ohio-state-api/mcp-server/src/ for the full list.)
Recommended workflow for “get OSU data” requests
- Identify the service area (dining, bus, buildings, events, etc.).
- Prefer a list/search endpoint first, then follow IDs into detail endpoints.
- For time-based data, always include both:
- the query window (absolute dates/times), and
- the retrieval timestamp.
- When returning data to a user, summarize key fields and attach the raw JSON as an artifact when possible.
Common base URLs (public)
These are used by the bundled MCP server and work with osu-fetch.mjs:
- Athletics:
https://content.osu.edu/v3/athletics - Bus:
https://content.osu.edu/v2/bus - Buildings:
https://content.osu.edu/v2/api - Calendar:
https://content.osu.edu/v2/calendar - Classes:
https://content.osu.edu/v2/classes - Dining:
https://content.osu.edu/v2/api/v1/dining - Directory:
https://content.osu.edu - Events:
https://content.osu.edu/v2 - Food trucks:
https://content.osu.edu/v2/foodtruck - Library:
https://content.osu.edu/v2/library - Merchants:
https://content.osu.edu/v2 - Parking:
https://content.osu.edu/v2/parking/garages - Rec sports:
https://content.osu.edu/v3 - Student orgs:
https://content.osu.edu/v2/student-org
Examples (copy/paste)
- Dining locations:
curl -sS -H 'accept: application/json' 'https://content.osu.edu/v2/api/v1/dining/locations'
- Parking availability:
curl -sS -H 'accept: application/json' 'https://content.osu.edu/v2/parking/garages/availability'
- Buildings “search” (filter client-side with
jq):curl -sS -H 'accept: application/json' 'https://content.osu.edu/v2/api/buildings' | jq -r '.data.buildings[] | select((.name // \"\") | test(\"union\";\"i\")) | \"\\(.buildingNumber)\\t\\(.name)\"'
Extra reference
- API reference:
ohio-state-api/references/OSU_API.md