AMCAS Tracker data guide

AMCAS official status observations and voluntary student reports. Timing summaries are estimates, not individual verification predictions.

AMCAS Tracker · JSON data · JSON field definitions · Official AAMC source

Agent discovery links

Compact cycle summary

GET /amcas/data/summary?cycle=2026-27 returns read-only cycle aggregates. Omit cycle to select the configured current cycle. Average n counts official reporting dates, not applicants. Transcript totals and delivery-method means exclude opted-out reports. No row identifiers or individual reports are returned. The legacy all-cycle JSON feed remains available.

Check both freshness.status and average.end before calling an estimate current. Unsupported, duplicate or array cycle parameters return 404. A failed public loader returns 503 with Retry-After: 60, never a fabricated zero.

Calculation methods

verificationDays
(verified - submit) / 86400. Charts and summaries retain only nonnegative intervals below 50 days and verified dates inside the selected cycle and not in the future. The raw feed is not filtered by these display rules.
transcriptDays
(received - sent) / 86400. Summary rows require a supported delivery type, sent date inside the cycle transcript window and not in the future, and receipt at or after sent date, no later than now, and strictly before cycle end. There is no 50-day transcript bound. Charts use the same validity rules as summaries.
rollingAverage
Mean official verification interval over seven calendar reporting dates ending on the latest valid official as-of date in the selected cycle, rounded up to whole days. Duplicate as-of dates count once. Future and incomplete pairs and intervals outside 0 to less than 50 days are excluded. A gap in reports does not extend the seven-day window; no valid observations produces an unavailable value.
nulls
Null or missing dates mean unknown or unreported, never zero days. Exclude incomplete pairs from duration calculations.

Fields

schemaVersion
Feed contract version. Fields may be added without removing legacy fields.
applications[].id
Opaque database row identifier. Do not interpret as a person or authentication credential.
applications[].official
True for stored AMCAS official status observations identified by the legacy AMCASOFFICIAL marker. False for voluntary student reports. Official observations describe the processing queue, not individual applications.
applications[].submit
Unix seconds. Later of the reported application submission and latest received transcript for that stored user, if present. For official observations, the date AMCAS says it is processing.
applications[].verified
Unix seconds or null when not reported. For official observations, the AMCAS status as-of date; for student reports, reported verification date.
transcripts[].sent
Reported transcript sent date in Unix seconds, or null when unknown.
transcripts[].received
Reported transcript receipt date in Unix seconds, or null when unknown.
transcripts[].type
Transcript delivery type: evendor, email, fax, or mail.
appYears[].cyclename
Stable cycle label, for example 2026-27. Use this label for the cycle query parameter.
appYears[].year
Cycle starting year.
appYears[].current
True on the configured default cycle; other cycles may omit this field.
appYears[].transcript_start_date
ISO 8601 timestamp for the cycle transcript window start. Client-side Date values are converted to Unix milliseconds for display.
appYears[].start_date
ISO 8601 timestamp for the cycle submission window start. Client-side Date values are converted to Unix milliseconds for display.
appYears[].end_date
ISO 8601 timestamp for the cycle window end. Client-side Date values are converted to Unix milliseconds for display.
lastPull
Legacy Unix milliseconds for the most recent completed scrape, including status-only scrapes. Null if absent. Does not prove a usable official update.
freshness.status
unavailable if no usable official date pair exists; current only when latest official as-of and successful fetch are within 48 hours and the latest scrape outcome is done; stale otherwise. Historical cycles naturally have older observations.
freshness.sourceUrl
Official AAMC source URL.
freshness.lastCheckedAt
ISO 8601 timestamp of the latest completed scrape attempt, including status-only or failed attempts. Null until explicitly recorded; legacy lastPull is not substituted.
freshness.lastSuccessfulUpdateAt
ISO 8601 timestamp of the latest fetch with a usable official processing date and as-of date that was saved successfully. May confirm an existing observation. Null for legacy or absent metadata.
freshness.latestOfficialAsOf
ISO 8601 timestamp derived from the latest usable stored official verified date across all cycles, excluding future dates and intervals outside 0 to less than 50 days, or null if unavailable. It is not the fetch time.
freshness.lastScrapeOutcome
done, status-only, failed, or null when not recorded. A status-only response supplies no usable verification processing date.
freshness.staleAfterHours
Freshness threshold in hours: 48.

Limitations and privacy

Public rows exclude reports explicitly opted out of statistics and omit usernames and transcript names. Row identifiers remain for compatibility. Reports are voluntary and do not represent all applicants.

The JSON feed includes all configured cycles; use their date boundaries when selecting records. Charts shift previous-cycle dates for comparison. Tables retain original dates in America/New_York. Missing reporting dates are not filled in. Stale official observations must not be presented as current processing estimates.

Attribution and reuse terms