UBIN Public Registry API Free · Open
Machine-readable access to the verified UBIN registry. Ideal for fintech, delivery apps, and marketplaces that want to confirm a student-led business is real before letting money move. No API key required today.
Getting Started
The API is a set of read-only GET endpoints that return application/json. Every response has an ok boolean, an api endpoint name, a version, and a data payload.
Base URL: https://ubin.thestackcompany.com
Try the live index for a machine-readable overview: https://ubin.thestackcompany.com/api
Format, CORS & Rate Limits
- Content-Type:
application/json; charset=utf-8on all responses. - CORS: responses include
Access-Control-Allow-Origin: *, so browsers can call the API from any origin. - Rate limit: a fair-use limit of 120 requests per minute per IP. Exceeding it returns
429 rate_limited. - Auth: open by default. If a key is ever configured, pass it as
?apikey=YOUR_KEY. - Attribution: when you display a business on your site, link back to the canonical profile (the
profile_urlin the response).
Verify a UBIN (exact code lookup)
Looks up a single UBIN code. Returns 404 not_verified if the code is expired, revoked, or does not exist.
| Param | Type | Required | Description |
|---|---|---|---|
ubin | string | required* | The full UBIN code to verify, e.g. UBIN-AKUM-2026-H2I3-H. Case-insensitive. |
q | string | alternative | Search query for name/partial code (see next endpoint). Either ubin or q must be supplied. |
Search the Verified Registry
Searches businesses by business name or partial UBIN code. Returns only currently verified, non-expired UBINs ordered newest first.
| Param | Type | Required | Description |
|---|---|---|---|
q | string | required | Search term. Truncated to 120 characters. |
limit | int | optional | Max results (1–20). Default 20. |
List Partner Institutions
Lists active partner institutions, optionally filtered by name/code/state/city or institution type. Useful for building enrolment-picker UI.
| Param | Type | Required | Description |
|---|---|---|---|
q | string | optional | Matches name, code, state, or city (substring). |
type | string | optional | Filter by type: federal, state, or private. |
limit | int | optional | Page size (1–200). Default 50. |
offset | int | optional | Pagination offset. Default 0. |
Registry Status
Returns a quick summary of the registry — great for dashboards and "live" footers.
Error Codes
| HTTP | error.code | Meaning |
|---|---|---|
| 400 | missing_parameter | Required parameters were not supplied. |
| 401 | invalid_api_key | An API key is configured and the supplied key is missing or wrong. |
| 404 | not_verified | The UBIN exists but is not currently verified (pending, rejected, revoked, or expired). |
| 429 | rate_limited | Too many requests — slow down and retry shortly. |
Using from a Website
Because responses include Access-Control-Allow-Origin: *, you can call the API directly from the browser:
Always re-check data.verified and data.expires_on — a UBIN is only trustworthy while it is current and verified.