UAPI
UAPI is the secure, read-and-update API that lets a partner institution fetch, filter, export, and update its own application data on UAPPLY.
Base URL → https://api.uapply.africa
All endpoints are versioned under /api/v1. Requests are served from the
africa-south1 region behind Cloudflare.
What you can do
| Area | Endpoint |
|---|---|
| List applications | GET /applications |
| List cycles | GET /cycles |
| Fetch by id | GET /applications/by-id |
| Search applicants | GET /applications/search |
| Document bundles | GET /applications/zip |
| Bulk-update admission state | PATCH /applications/update |
| Verify a student's record | POST /verifications |
Every endpoint is scoped to your institution — a key can only ever read or update applications that belong to it. Record verification is a paid add-on: it needs an API key and each live lookup is billed per request.
Conventions
- Format: JSON unless
format=csvis passed. - Timestamps: ISO-8601 strings in UTC.
- IDs: opaque Firestore document ids; treat as strings.
- Money:
payment.amountis a number in the program's currency.
Quick start
curl -s https://api.uapply.africa/api/v1/applications \
-H "Authorization: Bearer uap_live_your_key_here"
Open the List applications page — paste your key into the right-hand panel and the Send request button will hit the real API from your browser.
Sample response
{
"code": 200,
"has_next": true,
"cursor": "g3kQ…",
"data": [
{
"id": "9f2…",
"personal": { "first_name": "Ada", "last_name": "Obi", "email": "ada@example.com" },
"application": {
"program_name": "BSc Engineering",
"cycle_name": "2026 Intake",
"stage": "submitted",
"decision": "none",
"enrolled": false,
"submitted_at": "2026-05-20T09:12:00.000Z"
},
"payment": { "paid": true, "amount": 50 }
}
]
}
Next: Authentication →