Skip to content
1,322,867 nurse-staffing records · CMS PBJ
fonteum
Research
PricingDocs
Request a pilot →
Researcher API · Reference

Free for academic research. Bearer-auth across every endpoint.

Fonteum grants free .edu/.gov API access in exchange for the standard academic citation. Same auth pattern as paid tiers (Authorization: Bearer); rate limits scale with your tier. This page covers signup, key usage, rate limits, and code samples for the four most common languages in research.

Sign up → Citation format → Researchers using Fonteum →

1. Sign up

.edu / .gov email + citation TOS.

  1. Visit /signup/researcher and submit your institutional email + citation TOS acceptance.
  2. Copy the API key shown ONCE on the success page (we don’t store the plaintext).
  3. Click the activation link in your email (24h expiry).
  4. Start using your key on any /api/v1/* endpoint.

Allowlisted domains: .edu, .gov, .ac.uk, .ac.jp, .ac.kr, .ac.za, .edu.au, .edu.cn, .edu.sg, .edu.hk, .edu.tw, .edu.in. For non-academic-domain institutional access, contact our team via /contact.

2. Authenticate

Authorization: Bearer header.

Every request to https://fonteum.com/api/v1/* requires the Bearer header:

Authorization: Bearer fnt_<your-key>

Same header pattern across all tiers (researcher / standard / institutional). The key’s tier is server-side metadata; consumers don’t need to pick a header per tier.

3. Rate limits

Tier scales the per-minute + per-day window.

  • Anonymous (no Authorization header): 60 req/min, 1,000 req/day per IP.
  • Researcher (Bearer key tier=researcher, email_verified): 300 req/min, 10,000 req/day per key.
  • Standard (paid Bearer key): negotiated per agreement.
  • Institutional (reserved for future enterprise tier).

Rate-limit headers on every response surface the current usage:

X-RateLimit-Limit-Minute: 300
X-RateLimit-Remaining-Minute: 287
X-RateLimit-Limit-Day: 10000
X-RateLimit-Remaining-Day: 9942
X-RateLimit-Reset-At: 2026-05-10T17:42:31.000Z

On 429 (rate-limit exceeded), responses include Retry-After in seconds. Back off + retry per the standard HTTP pattern.

4. Citation requirement

Cite Fonteum in any publication that uses the API.

Researcher signups accept the citation TOS at signup time (an explicit checkbox; the version is recorded on the api_keys row). The model relies on academic norms — no bot-driven enforcement, no retroactive takedowns. Three citation formats (APA, AMA, BibTeX) at /cite.

For papers that need version-specific reproducibility, cite the specific methodology version your data came from. Every version bump is dated and logged on /methodology/changelog, and each snapshot is SHA-256 attested in the public chain at /chain.

5. Code samples — curl

For shell scripting + ad-hoc lookups.

# Resolve an NPI to its canonical PECOS-ID
curl -H "Authorization: Bearer fnt_..." \
  https://fonteum.com/api/v1/identity/nppes/1245319599

# Aggregate identity stats
curl -H "Authorization: Bearer fnt_..." \
  https://fonteum.com/api/v1/identity/stats

# Snapshot integrity check
curl -H "Authorization: Bearer fnt_..." \
  https://fonteum.com/verify/123
6. Code samples — Node 18+

stdlib fetch.

// Node 18+ (built-in fetch)
const KEY = process.env.FONTEUM_API_KEY; // fnt_...

const res = await fetch("https://fonteum.com/api/v1/identity/nppes/1245319599", {
  headers: { Authorization: `Bearer ${KEY}` },
});
if (!res.ok) {
  console.error("API error:", res.status, await res.text());
  process.exit(1);
}
const data = await res.json();
console.log(data);
7. Code samples — Python 3.10+

stdlib + requests.

# Python 3.10+ (stdlib + requests)
import os
import requests

KEY = os.environ["FONTEUM_API_KEY"]  # fnt_...

res = requests.get(
    "https://fonteum.com/api/v1/identity/nppes/1245319599",
    headers={"Authorization": f"Bearer {KEY}"},
)
res.raise_for_status()
print(res.json())
8. Code samples — R 4.0+

httr + jsonlite.

# R 4.0+ (httr + jsonlite)
library(httr)
library(jsonlite)

key <- Sys.getenv("FONTEUM_API_KEY")  # fnt_...

res <- GET(
  "https://fonteum.com/api/v1/identity/nppes/1245319599",
  add_headers(Authorization = paste("Bearer", key))
)
stop_for_status(res)
data <- fromJSON(content(res, "text", encoding = "UTF-8"))
print(data)

For analyst stacks: pull any dataset as CSV/JSON from Fonteum's /data-catalog or query the FHIR R4 API directly from R / Python / SQL over plain HTTP — no SDK or package install required.

Phase roadmap

Phase 1 ships the tier. Phases 2-3 add discovery + lifecycle.

  • Phase 1 (this wave): signup flow + activation email + Bearer auth + 300/10000 rate limits + /cite + /researchers + this page.
  • §sprint3-citation-discovery-pipeline (queued): automated detection of papers citing Fonteum via OpenAlex API. Auto-populates /researchers featured-citations list.
  • §sprint3-orcid-integration (queued): attested researcher identity via ORCID OAuth.
  • §sprint3-researcher-key-rotation (queued): per-researcher key rotation UI (current: lost keys → operator re-issues).
  • §sprint3-tier-expansion (queued): additional tiers (institutional / press).

Compliance posture

Methodology · Corrections log · Editorial policy

fonteum

Healthcare provider data, traced to source.


PLATFORM

  • Data platform
  • Pricing
  • FHIR API docs
  • For health-tech

RESEARCH

  • Research hub
  • Nursing homes
  • Methodology
  • Methodology changelog

COMPANY

  • About
  • Press
  • Contact
  • Trust & integrity

LEGAL

  • Privacy policy
  • Editorial policy
  • Corrections log

© 2026 FONTEUM RESEARCH · DATA SNAPSHOT MAY 8, 2026 · BUILT WITH CARE

  • X
  • LINKEDIN
  • PRESS