SJSU APItransfer.sjsu.edu ↗
Retrieve SJSU transfer credit and articulation data: course equivalencies, GE requirements, and college articulation agreements via 5 structured endpoints.
What is the SJSU API?
The SJSU Transfer Articulation API provides structured access to transfer credit data across 5 endpoints covering community college articulation agreements with San Jose State University. The lookup_sjsu_course_equivalents endpoint lets you query any SJSU course code — such as 'CS 46A' or 'MATH 30' — and receive matching equivalent courses from every participating college. Data includes GE breadth requirements, department-level articulations, and full college and category listings.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/403b570c-0995-4987-9059-fccb515c4d7e/list_colleges' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace transfer-sjsu-edu-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.sjsu_articulation_api import SJSUArticulation, College, Category, CourseEquivalent, Articulation, GEArea
client = SJSUArticulation()
# List all colleges with articulation agreements
for college in client.colleges.list():
print(college.name, college.code, college.url)
# Construct a college by code and get its course-to-course articulations
deanza = client.college(code="DEANZA")
for artic in deanza.articulations.list():
print(artic.department, artic.sjsu_course, artic.equivalents, artic.details)
# Get GE breadth articulation for the same college
for ge in deanza.ge_areas.list():
print(ge.main_area, ge.sub_area, ge.details, ge.courses)
# Search for community college equivalents of a specific SJSU course
for equiv in client.courseequivalents.search(course_code="MATH 30"):
print(equiv.sjsu_course, equiv.college, equiv.equivalents, equiv.details)
# List subject categories
for cat in client.categories.list():
print(cat.name, cat.cat_id, cat.report_url)
List all community colleges and universities with articulation agreements with SJSU. Returns college names, codes, and URLs for their articulation reports. Each college has a stable code usable in get_college_articulations and get_ge_articulation.
No input parameters required.
{
"type": "object",
"fields": {
"colleges": "array of college objects with name, code, and url"
},
"sample": {
"data": {
"colleges": [
{
"url": "https://info.sjsu.edu/web-dbgen/artic/HANCOCK/course-to-course.html",
"code": "HANCOCK",
"name": "Allan Hancock Community College"
},
{
"url": "https://info.sjsu.edu/web-dbgen/artic/DEANZA/course-to-course.html",
"code": "DEANZA",
"name": "De Anza College"
}
]
},
"status": "success"
}
}About the SJSU API
What the API Covers
The API surfaces articulation data from transfer.sjsu.edu, covering course-to-course equivalencies and General Education breadth requirements between SJSU and participating community colleges and universities. Five endpoints expose colleges, subject categories, course lookups, full college articulation tables, and GE area mappings.
Key Endpoints and Response Fields
list_colleges returns an array of college objects, each with a name, code, and url. The code value is what you pass to get_college_articulations and get_ge_articulation. list_categories returns subject category objects with name, cat_id, and report_url, which map to the subject groupings used in articulation reports.
lookup_sjsu_course_equivalents accepts a course_code string (automatically normalized), then returns an equivalents array where each object includes sjsu_course, college, equivalents (array of course codes), and details. This is useful for reverse lookups — given an SJSU course, find every community college course that satisfies it.
get_college_articulations accepts a college_code and returns all course-to-course articulations for that institution, organized as an array with department, sjsu_course, equivalents, and details fields. get_ge_articulation returns GE breadth data for a college, with each record containing main_area, sub_area, details, and courses — mapping GE requirement areas to the community college courses that fulfill them.
Coverage and Limitations
Coverage is limited to institutions that have active articulation agreements with SJSU as listed on transfer.sjsu.edu. Not all courses at every college will have an equivalent on file; when no articulation exists, the equivalents array will be empty for that pairing. Data freshness reflects the articulation reports published on the source site, which are typically updated on an annual academic cycle.
The SJSU API is a managed, monitored endpoint for transfer.sjsu.edu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when transfer.sjsu.edu changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official transfer.sjsu.edu API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a transfer planning tool that maps a student's community college courses to SJSU degree requirements using
get_college_articulations - Check which courses at De Anza or Foothill satisfy a specific SJSU requirement using
lookup_sjsu_course_equivalents - Populate a GE requirement checker by pulling
get_ge_articulationdata for a given college and matching it to SJSU breadth areas - Generate a complete list of SJSU partner institutions for a transfer advising app using
list_colleges - Cross-reference subject category articulation reports by
cat_idfromlist_categoriesfor department-level transfer analysis - Identify all community college MATH or CS equivalencies for SJSU courses to guide dual-enrollment decisions
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SJSU's transfer website have an official developer API?+
What does `get_ge_articulation` return, and how is it structured?+
get_ge_articulation takes a college_code and returns a ge_articulation array. Each element includes main_area (the top-level GE breadth area, such as Area R or Area S), sub_area for any subdivision, details with descriptive text, and courses listing the community college courses that satisfy that area at SJSU.Does the API return course descriptions, unit counts, or grade requirements alongside equivalency data?+
Can I look up which SJSU courses a specific community college course satisfies, rather than the reverse?+
lookup_sjsu_course_equivalents performs the reverse direction — given an SJSU course code, it finds matching community college equivalents. A forward lookup (given a community college course, find which SJSU courses it satisfies) is not currently covered. You can fork this API on Parse and revise it to add that lookup direction.Are all California community colleges included?+
list_colleges endpoint returns the full set of covered institutions. Colleges without a current agreement with SJSU will not appear in the results.