Platform & Agentic Integration
Advising intelligence infrastructure.
REST API and MCP server.
Two integration surfaces. A REST API for platforms that already serve students — Academic Intent Graph, Major Ontology, live course catalogs, faculty research, degree requirements, career outcomes, academic fit scoring, AP/IB credit articulation, and multi-term planning across 120+ active institutions. A hosted remote MCP server for agentic AI workflows in Claude.ai, Claude Desktop, and Claude Code — 20 tools, session-scoped student context, OAuth profile auto-load, no installation required.
Your platform sends a messy student goal. OCA returns a bounded, explainable academic pathway grounded in real institutional data.
OCA is the advising intelligence layer. Your platform owns the student relationship, the product surface, and the admissions data. We own what happens academically — goal interpretation, curriculum, faculty, requirements, and planning.
Building and maintaining live academic data infrastructure across hundreds of institutions — sourcing from registration systems, parsing catalog formats, managing source reliability and refresh pipelines, keeping degree requirements current — is an 18-month engineering investment before you ship a single feature. We have already built it. Integration is a contract and an API key.
Three questions your platform can now answer
The new REST endpoints unlock the academic intelligence layer that complements your admissions and counseling data — without overlap.
“Which schools are academically strong fits for this student?”
POST /api/v1/fit
Academic fit, not admissions likelihood. Scores curriculum overlap, major alignment, learning environment, and research opportunity match.
“How much AP/IB credit head start does this student have?”
POST /api/v1/credit-articulation
Exact credits granted per school, requirements satisfied, and semesters potentially saved. 30 covered schools including Yale, MIT, Columbia, Brown, Stanford, Cornell, Penn, Dartmouth, Notre Dame, Swarthmore, and Oberlin.
“What should this student take over the next few terms?”
POST /api/v1/plan
Graph-backed multi-term course sequence from declared major and completed coursework. Not a degree audit — a smart planning recommendation.
Academic Intent Graph & Major Ontology
OCA interprets student goal language, not just search queries. This is API-level advisor behavior — not a GPT prompt hack.
61 curated academic intents
Academic goals categorized across 12 intent clusters — from pre-professional tracks (pre-med, pre-law) to research disciplines (computational biology, AI policy) to interdisciplinary paths (environmental justice, global health).
67 major family groups
Intents map to major families (Biology, Computer Science, Public Policy, etc.), which resolve to hundreds of school-specific programs across 120+ active institutions.
Bounded school scope by default
Recognized goals use curated anchor schools for that intent cluster. Unknown goals fall back to a bounded discovery set. Full all-school fanout requires schools=all — it is explicit, not default.
Explainable API metadata
Every path response includes _scope, _matched_intent_ids, _anchor_schools, and confidence scores — so your platform can render the reasoning, not just the result.
Data coverage
Structured data layers sourced from institutional catalogs, federal grant databases, and Bureau of Labor Statistics data.
Academic Intent Graph
61 curated academic intents across 12 categories — from pre-professional tracks (pre-med, pre-law) to research disciplines (computational biology, AI policy) to interdisciplinary paths (environmental justice, global health). Recognized goals resolve to curated anchor school sets; unknown goals fall back to a bounded discovery set.
Major Ontology & Program Resolution
67 major family groups mapping student goals to hundreds of school-specific programs across 28 disciplines. OCA resolves 'pre-med' to biology, chemistry, neuroscience, and public health pathways — then finds matching courses, faculty, and careers at each school.
Live course catalogs
Sections, instructors, enrollment status, and prerequisites — sourced directly from institutional registration systems. Add include_meta=true to GET /courses for opt-in freshness metadata: source (snapshot | live), last-refreshed timestamp, and fresh/stale status per school.
Faculty research profiles
Research areas, structured publications with citation counts and open-access links (OpenAlex), and active NIH grant data by investigator
Degree requirements
Hundreds of curated major programs across 28 disciplines — Computer Science, Economics, Biology, Political Science, Engineering, and more — maintained against official institutional catalogs
Career outcome data
65 career pathways across 11 tracks with BLS salary ranges, 10-year outlook projections, skill requirements, RIASEC interest mapping, named internship programs, and live NSF REU summer research opportunities
Cross-institutional comparison
Rank institutions by academic strength in any subject area — courses, faculty concentration, and research activity
Personalized student enrichment
Filter completed coursework, rank results by stated goals, surface constraint risks, and generate individualized next-semester recommendations
Academic fit scoring
Score a student's academic profile against any school — course overlap, major alignment, learning environment fit, and research opportunity match. Academic fit, not admissions likelihood.
AP/IB credit articulation
Which AP and IB exam scores earn credit at specific schools, which requirements they satisfy, and how much of a head start a student has before day one. 30 schools covered including Yale, MIT, Columbia, Brown, Stanford, Cornell, Penn, Dartmouth, Notre Dame, Swarthmore, and Oberlin — expanding.
Multi-term academic planning
Graph-backed course sequence recommendation from a declared major and completed coursework — covering 2–4 terms. Not a registrar-grade degree audit; a smart planning layer grounded in real major requirements.
Integration patterns
Three deployment models. Each maps to a distinct use case. Most institutional integrations use all three in combination.
Individual student path query
A counselor opens a student record. Your platform calls /api/v1/path with the student's academic context. The response — institutions ranked by fit, matched coursework, relevant faculty — surfaces directly within your existing UI alongside the student's record.
POST /api/v1/path
x-institution-id: your-platform
{
"goal": "climate policy analyst",
"schools": "yale,columbia,mit",
"student_context": {
"year": "junior",
"completed_courses": ["ENV200"],
"constraints": ["NYC-based jobs only"]
}
}Cohort enrichment
A scheduled job processes your full active student cohort in a single pass. Up to 20 queries execute in parallel with a 15-second per-item timeout. Results are returned to your data layer — counselors see enriched profiles the following morning without any manual intervention.
POST /api/v1/batch/path
x-institution-id: your-platform
{
"requests": [
{ "goal": "ML engineer", "schools": "mit,stanford" },
{ "goal": "climate researcher", "schools": "yale,brown" },
...up to 20
]
}AI advisor grounding
Your platform has an existing AI layer. Compress the student's academic context into a compact string and inject it into your system prompt alongside live institutional data. Your AI advisor responds with verified, source-attributed information rather than general knowledge.
// Step 1: compress context for prompt injection
POST /api/v1/profile/compress
{ "student_context": { ... }, "school": "yale" }
// → "Junior at Yale, Env Studies, goal: climate policy..."
// Step 2: retrieve live institutional data
POST /api/v1/path
{ "goal": "...", "student_context": { ... } }
// → ranked institutions, verified courses, active facultyAcademic fit scoring
A student is evaluating schools. Your platform calls /api/v1/fit with the student's academic profile and a list of target schools. The response scores each school across course overlap, major alignment, learning environment, and research opportunity — giving counselors an academic-fit signal that complements admissions data without conflating the two.
POST /api/v1/fit
x-institution-id: your-platform
{
"schools": "yale,mit,stanford,brown",
"student_context": {
"major": "Computer Science",
"completed_courses": ["CS101", "MATH201"],
"career_targets": ["machine learning engineer"],
"interests": ["AI", "systems"]
}
}
// → per-school fit scores + dimension breakdown
// academic fit ≠ admissions likelihoodAP/IB credit head start
Before a student commits to a school, your platform surfaces their credit picture. Call /api/v1/credit-articulation with the student's standardized test scores. The response shows exactly which credits each school grants, which requirements are satisfied, and how many required courses they can skip — a concrete head start signal that drives real enrollment decisions.
POST /api/v1/credit-articulation
x-institution-id: your-platform
{
"school": "mit",
"student_context": {
"standardized_credits": [
{ "exam_type": "AP", "subject": "Calculus BC", "score": 5 },
{ "exam_type": "AP", "subject": "Chemistry", "score": 4 },
{ "exam_type": "IB", "subject": "Physics HL", "score": 6 }
]
}
}
// → credits granted, requirements satisfied, semesters saved
// 30 covered schools: yale · mit · columbia · brown · stanford
// cornell · penn · dartmouth · notredame · swarthmore · oberlin · +19 moreMulti-term academic planning
A student has declared a major and completed several courses. Your platform calls /api/v1/plan to generate a recommended course sequence for the next 2–4 semesters — grounded in graph_major_course edges, prerequisite chains, and career target alignment. Not a registrar-grade degree audit; a smart recommendation layer that gives counselors a structured starting point.
POST /api/v1/plan
x-institution-id: your-platform
{
"school": "brown",
"major": "computer-science",
"terms": 3,
"student_context": {
"year": "sophomore",
"completed_courses": ["CSCI0150", "CSCI0200", "MATH0100"],
"career_targets": ["software engineer"]
}
}
// → term-by-term recommended course sequences
// respects prerequisites · removes completed courses
// NOT a degree audit — a planning recommendationAgentic integration
Remote MCP server — Claude.ai, Desktop & Code
For AI-native workflows, Open Campus Advisor runs as a hosted remote Model Context Protocol (MCP) server. No installation required. Claude agents get 20 purpose-built tools, session-scoped student context, and full observability — connect with a single URL.
20 structured tools
Course search, faculty research, OpenAlex publications, NSF REU programs, degree requirements, career outcomes, cross-school comparison, and gap reporting — all discrete MCP tools with typed schemas across 120+ active schools.
No installation required
Connect via a single URL. No npm install, no local process, no SCHOOL env var. Works in Claude.ai web, Claude Desktop, and Claude Code out of the box.
Session-scoped student context
set_student_context merges the student's profile progressively across turns. Course results are filtered and ranked automatically. RIASEC codes auto-derive career targets.
OAuth profile auto-load
When a student signs in with Google through Claude.ai, their stored StudentContext loads automatically at session start — no manual set_student_context call needed.
Personalized path planning
When student context is set, explore_academic_path switches to POST with full context in body, returning personalized next-semester recommendations and constraint warnings.
Full PostHog observability
Every tool call tracked with school, tool name, response_time_ms, and whether student context is active. Remote sessions fully instrumented alongside REST usage.
Connect in Claude.ai, Claude Desktop, or Claude Code:
# Claude.ai — Settings → Integrations → Add MCP Server
URL: https://api.opencampusadvisor.org/mcp
# Sign in with Google when prompted — student profile loads automatically
# Claude Code — add to .claude/settings.json
{
"mcpServers": {
"open-campus-advisor": {
"url": "https://api.opencampusadvisor.org/mcp"
}
}
}
# Claude Desktop — add to claude_desktop_config.json
{
"mcpServers": {
"open-campus-advisor": {
"url": "https://api.opencampusadvisor.org/mcp"
}
}
}Agentic workflow example:
// Agent learns about the student across turns:
set_student_context({ year: "junior", major: "Environmental Studies",
completed_courses: ["ENV200", "PLSC301"], career_targets: ["climate policy analyst"] })
// All per-school tools take a school slug:
search_courses({ school: "yale", query: "climate", department: "EVST" })
// → completed courses removed, results ranked by career target
// With student context set, path uses POST with full context:
explore_academic_path({ goal: "climate policy analyst", schools: "yale,columbia" })
// → personalized_next_semester + constraint warnings per school
// Agent confirms what it knows:
get_student_context()
// → { year: "junior", major: "Environmental Studies", ... }Usage analytics and reporting
Every request carrying your x-institution-idheader is attributed to your account in our analytics layer. Your data is scoped to your institution — you see your students' usage patterns, not the aggregate.
- ›Goal distribution — what academic and career paths your students are exploring
- ›Institutional demand — which colleges and universities your cohort is actively researching
- ›Coverage signals — queries your students ask that fall outside current data coverage, reported as structured gap events
- ›Endpoint utilization — which API surfaces your integration depends on most
Coverage gap signals from your institution feed directly into our data expansion roadmap. Schools your students query most — and that we don't yet cover — move to the top of the build queue.
Scope of service
Provided by Open Campus Advisor
- ›Live course catalog data across 120+ active institutions
- ›Faculty research profiles, OpenAlex publications, and NIH grant records
- ›Curated degree requirements and career outcome data
- ›Academic fit scoring — curriculum and major alignment signals
- ›AP/IB credit articulation — 30 covered schools (Yale, MIT, Columbia, Brown, Stanford, Cornell, Penn, Dartmouth, Notre Dame, Swarthmore, Oberlin, and more — expanding)
- ›Multi-term planning grounded in real major requirements
- ›Data sourcing, parsing, maintenance, and uptime
- ›Ongoing institutional coverage expansion toward 400 schools
Retained by your platform
- ›Student identity, authentication, and account management
- ›Session state and data persistence
- ›Product interface and user experience
- ›AI system prompt, persona, and response presentation
- ›Per-student rate limiting and access controls
- ›Compliance obligations to your end users
API reference
Stability guarantees, rate limits, authentication, and error handling for production integrations.
Versioning
Stable — 90-day deprecation notice
The /api/v1/ prefix is frozen. New endpoints are additive and never break existing integrations. Breaking changes — if ever required — receive a 90-day notice and a new version prefix before the old one is retired.
Rate limits
300 requests / minute per API key
Cross-school endpoints (/search, /path, /fit) count as one request regardless of how many schools are queried. /batch/path processes up to 20 queries per request. /credit-articulation and /plan count as single requests. Sustained higher limits available for enterprise contracts.
Uptime & freshness
99.5% monthly uptime · 60-minute cache
The API is hosted on Railway with a persistent process — TTL cache survives between requests, so every call after the first in each 60-minute window is fast. Data reflects institutional registration systems as of the last cache refresh. Add include_meta=true to GET /courses to receive per-school freshness metadata (source, last refreshed, fresh/stale). Historical uptime available on request.
Authentication
API key (B2B) or Bearer JWT (student)
Send x-api-key: oca_live_... on all requests. Course data is publicly readable — the key is required for usage attribution, per-institution analytics, and access to Mode 2 personalization endpoints. Keys are issued per integration and rotatable on request.
Error responses
| Status | Meaning | What to do |
|---|---|---|
| 400 | Bad request | Missing or invalid parameter — check query string and request body against the spec |
| 401 | Unauthorized | Bearer JWT required — student must authenticate via /api/v1/auth/login |
| 403 | Forbidden | API key present but not recognized — verify x-api-key matches the issued value |
| 404 | Not found | School slug, course ID, or resource does not exist — verify against /api/v1/schools |
| 429 | Rate limited | Exceeded 300 req/min — implement exponential backoff; contact us for higher limits |
| 500 | Server error | Transient scraping or provider failure — retry after 10 seconds |
Begin a technical evaluation
We work with a select number of platform partners through a structured evaluation process. If your platform serves students and you are assessing the build vs. partner decision on academic data infrastructure, we are available for a technical conversation.
