Ohio State Mobile Content API v2

Public, unauthenticated, read-only JSON API operated by Ohio State's Office of Technology and Digital Innovation. Serves academic term lists, full-text class search against Student Information System data, and the public campus events feed. It is the backend behind the public class search at classes.osu.edu and it names itself "OSU Mobile API v2" at its root. Ohio State publishes no documentation and no specification for it; the OpenAPI carried here was DERIVED from the published client bundle and live probes on 2026-09-01, and verified at 1,033 courses for Autumn 2026 and 153 campus events.

Operations 5

GET / Service root #
GET /classes/searchableTermsV2 List academic terms open to class search #
GET /classes/search Search classes offered in a term #
GET /classes/availability Seat availability for classes #
GET /events List public campus events #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mobile-content-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ohio-state-university-mobile-content-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Ohio State Mobile Content API v2
  version: '2.0'
  summary: Public read-only JSON API operated by Ohio State University for class search and campus events.
  description: >-
    The Ohio State Mobile Content API is a public, unauthenticated, read-only JSON API operated by
    The Ohio State University on its own infrastructure (content.osu.edu resolves to
    WH-prdosuedu132-VIP.it.ohio-state.edu, 140.254.112.132, inside Ohio State's own netblock). It is
    the backend behind the university's public class search at classes.osu.edu and behind the
    campus events feed, and it identifies itself at the service root as "OSU Mobile API v2".

    This description was DERIVED by probing the live service on 2026-09-01. Ohio State publishes no
    OpenAPI, no developer portal and no documentation for it; the paths were read out of the
    published classes.osu.edu JavaScript bundle and every one of them was then called and its
    response shape recorded. Field coverage is therefore what the live responses returned, not a
    contract the university has committed to. Treat it as an observation, not a promise.
  contact:
    name: Ohio State University Office of Technology and Digital Innovation
    url: https://it.osu.edu/
  x-operator: institution
  x-operator-basis: >-
    content.osu.edu is a hostname on Ohio State's own registrable domain resolving via CNAME to
    WH-prdosuedu132-VIP.it.ohio-state.edu (140.254.112.132), Ohio State's own address space. No
    vendor identity appears in the service root, the response envelopes or the DNS chain.
  x-provenance:
    generated: '2026-09-01'
    method: derived
    source:
      - https://content.osu.edu/v2
      - https://content.osu.edu/v2/classes/searchableTermsV2
      - https://content.osu.edu/v2/classes/search
      - https://content.osu.edu/v2/events
      - https://classes.osu.edu/osu-mobile.js
servers:
  - url: https://content.osu.edu/v2
    description: Production. Verified live 2026-09-01, returns {"ok":true,"server":"OSU Mobile API v2"}.
tags:
  - name: classes
    description: Course and section search against the Student Information System term data.
  - name: events
    description: Public campus events feed.
paths:
  /:
    get:
      tags: [ classes ]
      operationId: getServiceRoot
      summary: Service root
      description: Returns a liveness envelope naming the service. Verified 200 on 2026-09-01.
      responses:
        '200':
          description: Service is up.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  server:
                    type: string
                    examples: [ 'OSU Mobile API v2' ]
  /classes/searchableTermsV2:
    get:
      tags: [ classes ]
      operationId: listSearchableTerms
      summary: List academic terms open to class search
      description: >-
        Returns the academic terms for which class search is enabled, each with its SIS term code
        (strm), short and long descriptions, and the window during which it is searchable.
      responses:
        '200':
          description: Term list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      _id: { type: string }
                      _rev: { type: string }
                      updated: { type: string, format: date-time }
                      data:
                        type: array
                        items: { $ref: '#/components/schemas/Term' }
  /classes/search:
    get:
      tags: [ classes ]
      operationId: searchClasses
      summary: Search classes offered in a term
      description: >-
        Full-text search across course catalog and section data for one term. Returns a paged
        envelope with sort options, refinable filters and an array of course records. Verified live
        2026-09-01 (q=english, term=1268 returned totalItems 1033).
      parameters:
        - name: q
          in: query
          required: true
          description: Free-text query across subject, catalog number, title and description.
          schema: { type: string }
        - name: term
          in: query
          required: true
          description: SIS term code as returned by /classes/searchableTermsV2 (for example 1268).
          schema: { type: string }
        - name: p
          in: query
          required: false
          description: 1-indexed page number.
          schema: { type: integer, minimum: 1, default: 1 }
        - name: sort
          in: query
          required: false
          description: Sort key from the response `sort` array; a leading hyphen reverses direction.
          schema: { type: string }
      responses:
        '200':
          description: Paged search result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data: { $ref: '#/components/schemas/ClassSearchResult' }
  /classes/availability:
    get:
      tags: [ classes ]
      operationId: getClassAvailability
      summary: Seat availability for classes
      description: >-
        Referenced by the classes.osu.edu client bundle. Probed 2026-09-01 with no parameters and
        returned 503 {"status":"error","error":{"code":503,"message":"Service Unavailable"}} —
        recorded because it is a real declared path, NOT because a working call was observed. Its
        parameters are unknown.
      responses:
        '503':
          description: Observed response to a bare call on 2026-09-01.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Error' }
  /events:
    get:
      tags: [ events ]
      operationId: listEvents
      summary: List public campus events
      description: >-
        Returns the current public campus events feed. Verified live 2026-09-01 with 153 events
        across Ohio State campuses.
      responses:
        '200':
          description: Events feed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status: { type: string, examples: [ success ] }
                  lastModified: { type: string, format: date-time }
                  data:
                    type: object
                    properties:
                      events:
                        type: array
                        items: { $ref: '#/components/schemas/Event' }
components:
  schemas:
    Term:
      type: object
      description: An academic term exposed to class search.
      properties:
        strm: { type: string, description: SIS term code., examples: [ '1268' ] }
        descr: { type: string, examples: [ 'Autumn 2026' ] }
        descrlong: { type: string, examples: [ '2026 Autmn' ] }
        classSearch: { type: string, description: 'Y when class search is enabled for the term.' }
        startDate: { type: string, format: date }
        endDate: { type: string, format: date }
    ClassSearchResult:
      type: object
      properties:
        totalItems: { type: integer }
        currentItemCount: { type: integer }
        page: { type: integer }
        totalPages: { type: integer }
        refineQueryTemplate: { type: string }
        nextPageLink: { type: [ string, 'null' ] }
        prevPageLink: { type: [ string, 'null' ] }
        activeSort: { type: string }
        sort:
          type: array
          items:
            type: object
            properties:
              key: { type: string }
              title: { type: string }
              type: { type: string }
              direction: { type: string }
              link: { type: string }
        filters: { type: array, items: { type: object } }
        activeFilters: { type: array, items: { type: object } }
        courses:
          type: array
          items:
            type: object
            properties:
              course: { $ref: '#/components/schemas/Course' }
    Course:
      type: object
      description: Catalog record for a course as offered in a term.
      properties:
        term: { type: string }
        effectiveDate: { type: string, format: date }
        effectiveStatus: { type: string }
        title: { type: string }
        shortDescription: { type: string }
        description: { type: string }
        equivalentId: { type: string }
        allowMultiEnroll: { type: string }
        maxUnits: { type: number }
        minUnits: { type: number }
        repeatUnitsLimit: { type: number }
        grading: { type: string }
        component: { type: string }
        primaryComponent: { type: string }
        offeringNumber: { type: string }
        academicGroup: { type: string }
        subject: { type: string }
    Event:
      type: object
      description: A public campus event.
      properties:
        title: { type: string }
        description: { type: string }
        content: { type: string, description: Markdown body. }
        label: { type: string, description: Sponsoring unit. }
        campus: { type: string }
        color: { type: string }
        endDate: { type: string, format: date-time }
        link: { type: string, format: uri }
        itemHash: { type: string }
    Error:
      type: object
      properties:
        status: { type: string }
        error:
          type: object
          properties:
            code: { type: integer }
            message: { type: string }