API reference

Every endpoint is public, read-only and needs no key. Most are plain GETs you can open in a browser or pipe through curl. Figures come from the State of Texas — see where each number comes from.

OpenAPI schema (JSON) Service health MCP endpoint · discovery Back to the report

Anomalies

MethodPathWhat it returns
GET/anomalies
year?, district_number?, flag_type?, limit?
Get Anomalies

Get districts with anomaly flags

Benchmarks

MethodPathWhat it returns
GET/benchmarksGet Benchmarks

Statewide per-year medians — the 'what's normal?' context that district numbers are meaningless without.

Districts

MethodPathWhat it returns
GET/district-geoDistrict Geo

Simplified Texas school-district boundaries (Census TIGER/Line 2025, public domain) joined to TEA district numbers, with the headline measures merged in. Charter districts are absent — they have no geographic boundary.

GET/district/{district_number}/bonds
district_number
Get District Bonds

Every bond this district ever put on a ballot, and how the vote went.

GET/district/{district_number}/breakdown
district_number
Get District Breakdown

Function-level spending breakdown (MECE categories from TEA function codes) for every year — where the money actually goes.

GET/district/{district_number}/campus-performance
district_number
Get District Campus Performance

Every campus in one district with its own STAAR scores, by subject.

GET/district/{district_number}/campuses
district_number
Get District Campuses

Every rated campus in one district, worst first, against the district's own rating.

GET/district/{district_number}/debt
district_number
Get District Debt

What one district still owes, and the year it clears.

GET/district/{district_number}/dollar
district_number
Get District Dollar

Where one dollar goes, as 100 pennies — for this district, for its structural peers, and for Texas as a whole, with the dollar amount at stake in each category if the district spent at the peer rate.

GET/district/{district_number}/economics
district_number
Get District Economics

What you pay, where it goes, what it buys, and who does better.

GET/district/{district_number}/equity
district_number
Get District Equity

How this district does for the students it actually serves.

GET/district/{district_number}/erate
district_number
Get District Erate

One district's E-Rate history as its own applicant.

GET/district/{district_number}/forensics
district_number
Get District Forensics

The four money questions Texas reports in four incompatible places.

GET/district/{district_number}/insights
district_number
Get District Insights

Actionable intelligence: where this district materially differs from its similarity-graph peers, each finding quantified in dollars and ranked by magnitude. Peers come from the exogenous k-NN graph so the comparison is apples-to-apples.

GET/district/{district_number}/lineage/{metric}
district_number, metric
Get Metric Lineage

Why is this number this number?

GET/district/{district_number}/national
district_number
Get District National

One district against every other district in the country.

GET/district/{district_number}/outcomes
district_number
Get District Outcomes

What the money buys: student population, teaching workforce, and results, each against this district's structural peers and the state.

GET/district/{district_number}/peers
district_number
Get District Peers

Peer comparison, plus this district's statewide percentile. The #1 demand in admin usage simulation (docs/UX_RESEARCH.md).

GET/district/{district_number}/performance
district_number
Get District Performance

One district's STAAR results by student group and by subject.

GET/district/{district_number}/spending
district_number
Get District Spending Breakdown

One district's operating dollar, split sixteen ways, against the state.

GET/district/{district_number}/spending-detail
district_number
Get District Spending Detail

Two more spending dimensions the summarized data already carries: OBJECT (what was bought — payroll/contracted/supplies/other, sums to operating) and PROGRAM (who it served — regular/special-ed/bilingual/ career-tech/gifted/compensatory/athletics), every year.

GET/district/{district_number}/summary
district_number, start_year?, end_year?
Get District Summary

Get financial summary for a specific district

GET/district/{district_number}/tax-history
district_number
Get District Tax History

One district's rate since 2009, and why a bill moved.

GET/district/{district_number}/trends
district_number
Get District Trends

Seventeen fiscal years of this district, against the state's own line.

GET/district/{district_number}/turnarounds
district_number
Get District Turnarounds

Walk the similarity graph and find structural peers that reversed a sustained deficit (>=2 deficit years then >=2 surplus years) or a sustained enrollment decline (>=3 down years then >=2 up years). See docs/GRAPH_INSIGHTS.md.

GET/districts
search?, limit?
List Districts

List all districts with optional search

GET/map-dataSimilarity Map Data

Precomputed 2D similarity-map coordinates (PCA of the exogenous feature space; see scripts/graph_insights.py).

General

MethodPathWhat it returns
GET/apiApi Info

API information and endpoint directory

GET/dollar/texasGet Texas Dollar

The whole state's dollar, pooled: every category summed across every district and divided by total spending. Unlike the per-district peer bars this needs no rescaling — it is one real dollar made of real dollars.

GET/fallback-indexFallback Index

The district picker and statewide figures, with no database involved.

GET/healthHealth Check

Health check endpoint.

GET/provenanceGet Provenance

Where every number came from, and how to check it yourself.

GET/statsGet Stats

Get database statistics

Intelligence

MethodPathWhat it returns
GET/api/cron/runs
job?, limit?
Get Cron Runs

Has the scheduled work actually been running?

GET/briefingGet Briefing

The most recent daily ISD intelligence briefing.

NLP

MethodPathWhat it returns
POST/queryNlp Query

Process natural language query about Texas school finances

GET/sample-queriesGet Sample Queries

Get sample natural language queries

Statewide

MethodPathWhat it returns
GET/bonds/texasGet Texas Bonds

66 years of Texas school bond elections, without the per-district detail.

GET/campuses/texasGet Texas Campuses

What the district rating hides.

GET/debt/texasGet Texas Debt

What Texas school districts still OWE — the stock, not the yearly payment.

GET/economics/texasGet Texas Economics

The statewide series behind every district page.

GET/equity/texasGet Texas Equity

Statewide results by student group, and who does best for poor students.

GET/erate/texasGet Texas Erate

Federal E-Rate money for school connectivity — the dollars TEA's books never see.

GET/forensics/qualityGet Forensic Quality

Forensic-accounting tests on the filings themselves.

GET/forensics/texasGet Texas Forensics

Statewide totals, the ranked tables, and one compact row per district.

GET/lineage/texas/{metric}
metric
Get Statewide Lineage

The working behind the statewide headline itself.

GET/national/texasGet Texas National

Texas against the other 49 states, on the federal government's ruler.

GET/performance/texasGet Texas Performance

STAAR by student group, statewide, at the Meets bar.

GET/spending/texasGet Texas Spending Detail

Where the operating dollar actually goes — all sixteen PEIMS functions.

GET/takeover/houstonGet Houston Takeover

Did the June 2023 state takeover of Houston ISD change results?

GET/tax/texasGet Texas Tax History

What school tax rates have actually done since 2009.

GET/trends/texasGet Texas Trends

The seventeen-year statewide series and the six findings in it.