Hint Health Authentication
Hint is a single-mechanism API: a bearer token in the Authorization header, on every operation, with no OAuth scopes and no OIDC. What varies is WHICH token, and getting that wrong is the highest-consequence mistake on this API — the partner key and the practice access token address different surfaces, and using the partner key against /api/provider/* crosses practice boundaries.
Hint Health secures its APIs with http and apiKey across 2 declared security schemes, as derived from its OpenAPI definitions.
Security Schemes
Source
Authentication Profile
generated: '2026-08-15'
method: searched
source: https://developers.hint.com/reference/making-requests
docs:
- https://developers.hint.com/reference/making-requests
- https://developers.hint.com/docs/setting-up-your-sandbox-account-api-keys
- https://developers.hint.com/docs/integration-activation
- https://developers.hint.com/docs/roles-and-access-context
name: Hint Health Authentication
description: >-
Hint is a single-mechanism API: a bearer token in the Authorization header, on
every operation, with no OAuth scopes and no OIDC. What varies is WHICH token,
and getting that wrong is the highest-consequence mistake on this API — the
partner key and the practice access token address different surfaces, and using
the partner key against /api/provider/* crosses practice boundaries.
summary:
types: [http, apiKey]
api_key_in: [header]
oauth2_flows: []
scopes_published: false
openid_connect: false
mtls: false
schemes:
- name: BearerAuth
type: http
scheme: bearer
header: 'Authorization: Bearer <token>'
standard: RFC 6750
description: >-
The form documented on "Making Requests" and applied to every operation in
the 49 refined specs in openapi/.
sources: [openapi/*.yml]
- name: hint_api_key
type: apiKey
in: header
parameter: AUTHORIZATION
description: >-
The scheme Hint's OWN published OpenAPI declares — an apiKey in the
AUTHORIZATION header whose description instructs callers to send
"Bearer {your_api_key}". Functionally identical to the above; recorded
separately because it is what the provider's document actually says.
sources: [openapi/_original/hint-health-partner-endpoints-2026-07-01-openapi.yml]
note: >-
A tooling nit with a real cost: declaring RFC 6750 bearer auth as an apiKey
scheme means generated clients and gateways will not recognise it as bearer
auth, and no `bearerFormat` is advertised.
token_types:
- name: Practice access token
surface: /api/provider/*
scope: one practice
issued_by: >-
POST /api/partner/installations/connect (or the older POST /oauth/tokens),
exchanging the authorization code Hint hands over at install time. The
credential is returned in api_keys[0].token.
lifetime: >-
No expiry is published — Hint's own connect example returns expires_in null
and refresh_token null. Treat the token as long-lived and rotate it through
the installation API keys endpoints rather than by refresh.
guidance: >-
This is the ONLY token that may touch practice data. Hint states plainly
that using the partner key here leaks across practices.
- name: Partner API key
surface: /api/partner/*
scope: the whole partner account
issued_by: The Hint Partner Portal, and manageable via /partner/api_keys.
env_var: HINT_API_KEY
guidance: >-
Marketplace, product listing, installation, backend and webhook-endpoint
administration only.
environments:
selector: key prefix, not host
detail: >-
A key prefixed `sbx-` returns sandbox data; an unprefixed key returns live
data. api.hint.com serves BOTH, so promoting an integration from sandbox to
live requires no host change. Partner identifiers carry the same prefix —
ptr-... live, sbx-ptr-... sandbox.
hosts:
- {name: production, url: 'https://api.hint.com', key_prefix: none}
- {name: sandbox, url: 'https://api.sandbox.hint.com', key_prefix: 'sbx-'}
- {name: staging, url: 'https://api.staging.hint.com', key_prefix: 'sbx-'}
authorization_model:
scopes: none
detail: >-
There is no scope parameter, no scope registry and no per-endpoint permission
grant. Authorization is entirely a function of which token family you hold and
which practice it was issued for. derive-oauth-scopes.py finds 0 oauth2
schemes and 0 scopes across all 49 specs, so no scopes/ artifact is emitted.
roles:
docs: https://developers.hint.com/docs/roles-and-access-context
detail: >-
Roles apply to USERS inside an embedded marketplace app, not to API tokens.
Hint passes a partner role and an access_context on the app handshake, and
apps are expected to handle Hint platform-support sessions differently — a
user-level authorization signal that has no API-token equivalent.
webhook_authentication:
direction: hint-to-partner
mechanism: HMAC-SHA256 signature
header: X-Hint-Signature
format: 'sha256=<hmac>'
signed: raw request body
key_source: Partner Portal → Webhooks Signature Key (HINT_WEBHOOK_SECRET on hosted deploys)
see_also: asyncapi/hint-health-webhooks.yml
embedded_app_authentication:
mechanism: signed handshake + server-minted session key
detail: >-
Marketplace apps receive a signed payload at POST /hint/handshake (same
X-Hint-Signature HMAC), verify it, mint their own session key, and use it on
subsequent surface renders. The Hint API token is never exposed to the browser.
see_also: components/hint-health-components.yml
discovery:
well_known: none
detail: >-
No /.well-known/openid-configuration, /.well-known/oauth-authorization-server
or /.well-known/oauth-protected-resource is served on any Hint host — all 404.
An agent cannot discover how to authenticate; it must read the docs.
see_also: well-known/hint-health-well-known.yml
gaps:
- No token expiry, refresh flow or rotation policy is documented.
- No scopes, so an integration that needs read-only access cannot be granted it.
- >-
Bearer auth is declared as an apiKey scheme in the provider's own OpenAPI, so
the machine-readable contract understates the auth model.
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/security/hint-health-authentication"
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.