Authentication
OAuth 2.0 client credentials, and why the SDKs make this a non-issue.
Precision Normalize uses the OAuth 2.0 client credentials flow. You exchange a client ID and secret for a short-lived JWT, then send that JWT as a bearer token on every request.
Get your credentials
Request a client ID and secret through the IMO Health Developer Portal. You’ll receive:
Never ship client_secret in client-side code. Exchange credentials on your
backend and pass only the resulting short-lived token to any edge service.
With an SDK (recommended)
The generated SDKs implement the token exchange and refresh internally. You
provide credentials once; the client fetches a token on first use and renews it
before expires_in elapses.
The SDKs read these environment variables by default, so you can also construct a client with no arguments:
Manually, over HTTP
Then send it on each call:
Scopes
Normalization endpoints require the normalize scope, which is granted
automatically to Precision Normalize credentials. The granted scopes come back in
the token response’s scope field.
Token errors
POST /oauth/token returns an OAuth-shaped error rather than the standard API
error envelope:
See Errors and rate limits for the error shape used by the normalization endpoints.