Auburn APIvetmed.auburn.edu ↗
Access public staff contacts from Auburn University College of Veterinary Medicine's Office of Academic Affairs — names, roles, and emails via one endpoint.
What is the Auburn API?
The Auburn Vet Med Academic Affairs API exposes 1 endpoint, list_academic_affairs_contacts, that returns every public staff contact listed under the Office of Academic Affairs unit of Auburn University's College of Veterinary Medicine directory. Each record includes the person's name, job title, public email address, and — where available — a faculty profile URL, giving developers a structured view of the admissions, advising, curriculum, and student services contacts for this unit.
curl -X GET 'https://api.parse.bot/scraper/622d5287-8257-47ea-bd9f-5ab56c34bcd9/list_academic_affairs_contacts?role_filter=admissions' \ -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 vetmed-auburn-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.
"""Walkthrough: Auburn Vet Med Academic Affairs contacts — bounded, re-runnable."""
from parse_apis.vetmed_auburn_edu_api import AuburnVetMed, ParseError
client = AuburnVetMed()
# List every contact in the Office of Academic Affairs.
for contact in client.contacts.list(limit=5):
profile = contact.profile_url or "(no profile)"
print(f"{contact.name} — {contact.role} — {contact.email} — {profile}")
# Narrow to admissions-related roles using a case-insensitive filter.
try:
admissions = client.contacts.list(role_filter="admissions", limit=3).first()
except ParseError as e:
print(f"Extraction failed ({e.code}): {e}")
else:
if admissions is not None:
print(f"First admissions contact: {admissions.name}, {admissions.email}")
print("exercised: contacts.list / contacts.list(role_filter=)")
Returns the public staff contacts listed under the Office of Academic Affairs unit of the Auburn College of Veterinary Medicine faculty and staff directory, one row per person with name, role title, public email address and (for faculty) a profile page URL. Only this unit is returned; other departments of the directory are never included. The whole unit is returned in one call (no pagination; around a dozen people). An optional case-insensitive role_filter keeps only people whose role title contains the given text (e.g. 'admissions' is one shape); an unmatched filter yields an empty contacts array while total_in_unit still reports the unfiltered unit size. Results follow the site's own order (unit head first, then alphabetical).
| Param | Type | Description |
|---|---|---|
| role_filter | string | Case-insensitive substring matched against each person's role title. Omitted = all contacts of the unit. |
{
"type": "object",
"fields": {
"unit": "name of the directory unit the contacts belong to (always the Office of Academic Affairs)",
"contacts": "array of people: name (last, first, credentials), role (job title), email (public address), profile_url (faculty profile page URL or null for staff without a profile)",
"role_filter": "the role_filter applied, or null when none",
"total_in_unit": "integer count of people in the unit before role_filter is applied"
},
"sample": {
"data": {
"unit": "Office of Academic Affairs",
"contacts": [
{
"name": "John Doe",
"role": "Professor & Associate Dean for Academic Affairs",
"email": "[email protected]",
"profile_url": "https://www.vetmed.auburn.edu/faculty/camus-melinda/"
},
{
"name": "Jane Doe",
"role": "Advisor I, Admissions CVM",
"email": "[email protected]",
"profile_url": null
},
{
"name": "John Doe",
"role": "Director of DVM Professional Program Admissions",
"email": "[email protected]",
"profile_url": null
}
],
"role_filter": null,
"total_in_unit": 11
},
"status": "success"
}
}About the Auburn API
What the API Returns
The single endpoint, list_academic_affairs_contacts, returns a JSON object with four top-level fields: unit (always "Office of Academic Affairs"), contacts (an array of people), role_filter (the filter applied, or null), and total_in_unit (integer count of all people in the unit before any filtering). Each element in contacts carries name (formatted as last, first, credentials), role (job title), email (public address), and profile_url (faculty profile page URL when present, null otherwise).
Filtering by Role
The optional role_filter input parameter accepts a case-insensitive substring matched against each contact's role field. For example, passing "advisor" returns only records whose job title contains that string. When omitted, the endpoint returns all contacts in the unit. The total_in_unit field always reflects the full unit count regardless of the filter applied, so you can calculate how many records were excluded.
Coverage and Scope
Data is scoped exclusively to the Office of Academic Affairs unit within the vetmed.auburn.edu faculty and staff directory. Staff in other College of Veterinary Medicine units — clinical departments, research centers, or the dean's office — are not included. Profile URLs appear only for faculty-classified contacts; administrative staff records typically return null for profile_url.
The Auburn API is a managed, monitored endpoint for vetmed.auburn.edu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vetmed.auburn.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 vetmed.auburn.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 an admissions contact lookup tool using
emailandrolefields for prospective veterinary students. - Automate routing of student inquiries by matching the
rolefield to the appropriate advisor or coordinator. - Populate a CRM with current Academic Affairs staff names and emails for outreach workflows.
- Monitor staffing changes in the Office of Academic Affairs by diffing periodic API responses.
- Generate a formatted staff directory page for a student portal using
name,role, andprofile_urlfields. - Filter contacts to advisors specifically using the
role_filterparameter to surface only advising staff.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Auburn University's College of Veterinary Medicine have an official developer API for its directory?+
What does the `role_filter` parameter actually match against?+
role field (the job title string). A value of "curriculum" would match titles like "Curriculum Coordinator" or "Associate Director, Curriculum". The total_in_unit field in the response always reflects the unfiltered count, so you can see how many contacts exist in the unit regardless of the filter.Does every contact record include a profile URL?+
profile_url field is populated only for contacts classified as faculty and who have a corresponding profile page on the site. Administrative and staff contacts typically return null for this field. The name, role, and email fields are present for all returned contacts.