Developer Reference
The Institute API.
The Institute maintains a small public JSON service for the programmatic determination of Michael status. The endpoint is offered free of charge and without registration, in keeping with the Institute's view that nomenclature ought not to be paywalled.
I Endpoints
The Institute presently exposes three stable JSON endpoints:
GET https://michaelinstitute.org/api/is-michael.json GET https://michaelinstitute.org/api/chapters.json GET https://michaelinstitute.org/api/leaders.json
Each endpoint accepts no parameters; the full corresponding roster is returned in a single response. Clients are expected to perform their own case-insensitive comparisons after Unicode normalization where the matter calls for it.
is-michael.json
The principal endpoint. Returns the standardized list of accepted variants of the canonical given name and the register of honorary forms.
chapters.json
The directory of chartered chapters, with coordinator, region, and cadence. Useful for building local listings, calendars, or chapter-finder utilities.
leaders.json
The current officers of the Institute, with role and biography. Portrait imagery is not exposed via the API; printed materials may request originals from the Recording Secretary.
II Example Request
$ curl -s https://michaelinstitute.org/api/is-michael.json | jq .
III Example Response
{
"$schema": "https://michaelinstitute.org/api/is-michael.schema.json",
"version": "1.0.0",
"institute": "The American Institute for Michaels",
"jurisdiction": "global",
"authoritative": true,
"revised": "2026-05-09",
"accepted": [
"Michael",
"Mike",
"Mikhail",
"Michał",
"Mihály",
"Mikael",
"Mícheál",
"Miguel",
"Michele",
"Michel",
...
],
"honorary": ["Mick", "Maya", ...],
"notes": { ... }
} IV Sample Implementations
JavaScript
const isMichael = async (name) => {
const r = await fetch('https://michaelinstitute.org/api/is-michael.json');
const { accepted } = await r.json();
const norm = (s) => s.normalize('NFC').toLowerCase();
return accepted.some((v) => norm(v) === norm(name));
};
await isMichael('Mihály'); // → true
await isMichael('Brad'); // → false Python
import requests, unicodedata
def is_michael(name: str) -> bool:
data = requests.get("https://michaelinstitute.org/api/is-michael.json").json()
norm = lambda s: unicodedata.normalize("NFC", s).casefold()
return any(norm(v) == norm(name) for v in data["accepted"])
is_michael("Mikhail") # → True
is_michael("Geoffrey") # → False Shell
curl -s https://michaelinstitute.org/api/is-michael.json \ | jq -r '.accepted[]' \ | grep -i -x "$1" >/dev/null && echo "Michael." || echo "Not a Michael."
V Service-Level Statement
The endpoint is statically generated and served from the Institute's primary infrastructure. It is intended to be cacheable and is served with a one-hour cache header. The Institute does not log requests to this endpoint and does not impose a rate limit; however, clients making more than one hundred thousand requests per day are respectfully asked to maintain a local cache, in keeping with good engineering practice.
The endpoint's response shape is versioned. Breaking changes will be
announced at least ninety days in advance via the quarterly
bulletin. The current version is 1.0.0.
VI Disclaimer
The endpoint is provided for reference only. The Institute reserves the sole right to grant, withhold, or revoke membership status, and the Standing Committee on Notability shall in all cases supersede any automated determination. Bearing the canonical given name is necessary but not sufficient for fellowship; see the fellowship application for further detail.