The campus
events API.
Everything UniHub runs on, available to your product: events, ticketing, door check-in, registrations, communities, payments, notifications and webhooks. Sign up and every service answers on your first request.
curl https://try-unihub-server.pxxl.click/platform/v1/events \
-H "Authorization: Bearer $UNIHUB_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Hack Night",
"venue": "Innovation Hub",
"date": "28/11/2026",
"capacity": 120,
"ticketTypes": [{ "name": "Student", "price": 1500 }]
}'{
"data": {
"id": "evt_8Fq2…",
"name": "Hack Night",
"venue": "Innovation Hub",
"date": "28/11/2026",
"capacity": 120,
"ticketTypes": [
{ "name": "Student", "price": 1500, "sold": 0 }
],
"visibility": "public"
}
}From one club page to a whole campus app.
The pieces most student products end up rebuilding (ticketing, check-in, payments, communities, sign-in) already exist. Use the ones you need.
Sell tickets without building a payment stack.
Start a hosted Paystack checkout for one of your events, priced from the event itself. When the payment lands, your wallet is credited and you get a charge.succeeded webhook to issue the ticket.
Let students log in with the account they already have.
OAuth 2.0 with PKCE. They see who is asking and approve exactly what you can access.
Run the whole organizer workflow.
Events with private access codes, approval queues, waitlists and guest-list export, plus communities with roles, pinned posts and stats.
Build your own scanner, or plug into ours.
Record check-ins from any device. A ticket admits once, a repeat scan answers instead of blocking the door, and every admission can fire a webhook to your dashboard or spreadsheet.
Put campus events on any website.
Read the public calendar across UniHub, filtered by date and category, to power a listings page, a newsletter or a screen in the student centre.
React to everything as it happens.
17 webhook events cover sales, registrations, check-ins, payouts and community activity.
Every service, switched on.
Every key you create carries all 27 scopes from the moment it exists. Narrow a key to what one service needs whenever you like.
events:writeCreate and update events owned by your organizationevents:readRead events owned by your organizationinstitutions:readRead the country / university directorytickets:writeIssue tickets and record check-instickets:readRead tickets and check-in state for your eventsregistrations:writeApprove, reject and cancel registrationsregistrations:readRead registrations, pending approvals and waitlistscharges:writeStart payments for your events and verify themwallet:readRead your organization's wallet balance and transactionspayouts:writeRequest payouts of available wallet balancecommunities:writeCreate communities, manage members and post to feedscommunities:readRead communities and posts owned by your organizationsocial:readRead public profiles, search users, and read follow listssocial:writeFollow and unfollow on behalf of a userreports:writeFile abuse reports on behalf of a usernotifications:sendSend in-app and push notifications to UniHub usersnotifications:readRead and manage a user's own notification inbox and preferencesmessages:sendSend email and SMS through your own connected providerconnections:writeConnect, test and remove your own provider accountsconnections:readSee which provider accounts your organization has connectedusers:writeCreate and manage your own end users, and mint their sessionsusers:readRead the end users your organization createdoauth:manageRegister and manage your Sign in with UniHub applicationswebhooks:writeCreate, update and delete webhook endpointswebhooks:readList webhook endpoints and delivery attemptsanalytics:readRead usage and sales analytics scoped to your organizationmedia:writeUpload images and files to UniHub's CDNLive in three steps.
Sign up
Create a developer account and an organization. A test key and a live key appear on screen straight away, with every service already enabled. No application form, no per-service approval.
Build against the test key
The whole API answers from the first request against real infrastructure, so what works in test works in production. Watch every request and webhook delivery in your dashboard.
Verify and go live
Submit your organization for review from its settings. Once it is verified, the live key you already have starts working, with no re-minting and no redeploy.
The boring parts, done properly.
Real money and real door queues run on this, so it is built for retries, failures and scrutiny from the start.
Safe to retry
Writes that move money or issue tickets take an Idempotency-Key. Retry after a timeout and you get the original result, never a second ticket or charge.
Signed webhooks, delivered
17 event types, each signed with HMAC-SHA256 over the timestamp and body (X-UniHub-Signature), and retried with backoff for up to six attempts.
Predictable limits
Per key, not per address: 60 requests a minute on test keys and 600 on live keys, with RateLimit-* headers on every response.
Test and live, side by side
sk_test_ and sk_live_ keys share one API. Keys are stored only as hashes, scoped, and can be revoked from the dashboard at any time.
Consent you can show
With Sign in with UniHub, students approve exactly what you can see or do, on a consent screen in their own words. Your token is limited to that, whatever your key allows.
Everything observable
Request logs, webhook deliveries and usage live in your dashboard, and the full reference is an OpenAPI 3.1 document you can load into any tool.
Free to build on.
2% when you sell.
No plans and no per-request charges. When you sell paid tickets through the API, UniHub keeps the same 2% it keeps in the app.