Developer API
Programmatic access to TransferU's verified course equivalency database. Read-only. Requires an API key.
Quick Start
All endpoints live under https://thetransferu.com/api/v1/. Pass your API key as a Bearer token.
curl https://thetransferu.com/api/v1/equivalency \
-H "Authorization: Bearer tu_YOUR_KEY" \
--data-urlencode "from_school=eastern-michigan-university" \
--data-urlencode "to_school=ohio-state-university" \
-GResponse is JSON with a data array and a meta pagination object.
Authentication
API keys use the tu_ prefix. Include the key in the Authorization header:
Authorization: Bearer tu_abc123...Keys are hashed (SHA-256) before storage — we never retain the plaintext. If you lose your key, contact us for a replacement.
Rate Limits
| Tier | Limit | Window |
|---|---|---|
| Standard | 1,000 requests | per hour |
| Institutional | 10,000 requests | per hour |
Exceeded limits return 429 with a Retry-After header. Higher limits available on request.
Endpoints
/api/v1/schoolsList all institutions in the TransferU database.
Query Parameters
statestringFilter by 2-letter state code (e.g. "OH")qstringCase-insensitive name substring searchlimitintegerMax results (default 200, max 500)offsetintegerPagination offset (default 0)Example Response
{
"schools": [
{
"slug": "ohio-state-university",
"name": "Ohio State University",
"state": "OH",
"courseCount": 9124,
"featured": true
}
],
"total": 544,
"hasMore": true
}/api/v1/equivalencyQuery verified course equivalencies between two schools.
Query Parameters
from_school*stringSource institution slugto_school*stringDestination institution slugsubjectstringFilter by course subject (e.g. "CS")course_numstringFilter by course number (e.g. "101")pageintegerPage number (default 1)limitintegerResults per page (default 25, max 100)Example Response
{
"data": [
{
"id": "clx...",
"from_school": "eastern-michigan-university",
"from_subject": "CS",
"from_number": "101",
"to_school": "ohio-state-university",
"to_subject": "CSE",
"to_number": "1222",
"transfer_credits": 3,
"source": "manual",
"verified_at": "2026-01-15T00:00:00.000Z"
}
],
"meta": {
"total": 47,
"page": 1,
"limit": 25,
"pages": 2
}
}/api/v1/pairsPaginated equivalency pairs with flexible filtering. Better for bulk access.
Query Parameters
fromSchoolstringFilter by source institution slugtoSchoolstringFilter by destination institution slugsourcestringFilter by source tag (e.g. "njtransfer")qstringCourse code substring searchlimitintegerResults per page (default 50, max 100)offsetintegerPagination offset (default 0)sortstring"course" | "school" | "date" | "source"Example Response
{
"pairs": [...],
"total": 12847,
"hasMore": true,
"offset": 0,
"limit": 50
}Error Codes
| Status | Meaning |
|---|---|
| 400 | Bad request — missing or invalid parameters |
| 401 | Missing or invalid API key |
| 429 | Rate limit exceeded — check Retry-After header |
| 500 | Server error — retry with exponential backoff |
All error responses include an error field with a human-readable message.
API Terms of Service
- • API keys are for read-only access only. Write operations are not available.
- • Keys may not be shared publicly or included in client-side code.
- • Data must be attributed to TransferU when displayed publicly.
- • We reserve the right to revoke keys that are misused or exceed reasonable use.
- • Data accuracy is not guaranteed. Always verify with the receiving institution before advising students.
- • Commercial resale of data is prohibited without a separate agreement.
Questions? graeme@thetransferu.com