← Back to Platform

API Documentation

Programmatic access to school profiles, funding data, AI tools, and bulk export. Authenticate with X-API-Key header.

Authentication

All API requests require an API key passed in the X-API-Key header. Keys are tied to a tier that determines your rate limits and available endpoints.

curl -H "X-API-Key: tk_your_key_here" \ https://api.thinkkits.com/schools/search?q=Lincoln

API keys are available to Professional and Business platform subscribers. You can also purchase standalone API access through the Developer Portal.

Base URL

Production: https://api.thinkkits.com — Interactive docs: https://api.thinkkits.com/docs (Swagger UI)

API Tiers & Rate Limits

Free

$0
  • 10 requests/day
  • 100/month
  • School search only
  • No bulk export

Standard

$49/mo
  • 500 requests/day
  • 10,000/month
  • All GET endpoints
  • CSV export (1K rows)

Premium

$199/mo
  • 5,000 requests/day
  • 100,000/month
  • All endpoints + AI
  • Bulk export (10K rows)

Enterprise

Custom
  • Unlimited requests
  • Dedicated support
  • Custom integrations
  • SLA guarantee

Error Handling

The API returns standard HTTP status codes. Error responses include a detail field with a human-readable message.

CodeMeaning
200Success
400Bad request — invalid parameters
401Unauthorized — missing or invalid API key
403Forbidden — endpoint not available on your tier
404Not found — school or resource doesn't exist
422Validation error — missing required data on the school
429Rate limit exceeded — wait and retry
500Server error — contact support
// Error response format { "detail": "School not found" }
GET /schools/{nces_id} Free Full school profile with intelligence scores

Returns a complete school profile including demographics, funding scores, bright spot status, and lead tier.

Path Parameters

ParamTypeDescription
nces_idstring12-digit NCES school ID

Response Fields

FieldTypeDescription
nces_idstringNCES school identifier
namestringSchool name
city, statestringLocation
school_levelstringElementary, Middle, High
enrollmentintTotal student count
frl_pctfloatFree/reduced lunch percentage
math_proficiencyfloatState math assessment proficiency %
bright_spot_tierstringBRIGHT_SPOT or null
lead_tierstringHOT, WARM, NURTURE, MONITOR
funding_program_countintNumber of eligible funding programs
funding_scorefloatComposite funding eligibility score (0-100)
GET /schools/{nces_id}/peers Standard Find demographically similar schools

Returns schools with similar enrollment, FRL rate, and school level, ranked by math proficiency. Useful for benchmarking and identifying high-performing peers.

Query Parameters

ParamTypeDefaultDescription
frl_bandint10FRL percentage band width (1-30)
limitint15Max peer results (1-50)

Response

Returns target (the school), peers (list of similar schools), best_peer_math, and gap_to_best.

GET /schools/{nces_id}/health Premium Composite 0-100 health score

Computes a composite health score from funding adequacy (40%), academic performance (30%), and equity indicators (30%). See our Methodology page for the full formula.

Response includes

FieldDescription
health_scoreComposite 0-100 score
health_tierTHRIVING, STABLE, AT_RISK, CRITICAL
funding_subFunding dimension score (0-100)
academic_subAcademic dimension score (0-100)
equity_subEquity dimension score (0-100)
risk_factorsArray of identified risk areas
strengthsArray of identified strengths
GET /schools/{nces_id}/needs Premium AI needs assessment combining all data

Comprehensive needs assessment combining demographics, funding, equity, staffing, and achievement data. Returns risk factors, strengths, recommended interventions, and matching funding programs.

GET /schools/{nces_id}/equity Premium Equity profile — discipline, access, staffing

Returns school-level equity indicators from CRDC data: suspension rates, AP course access, counselor availability, pupil-teacher ratio, and equity score — plus state averages for comparison.

GET /bright-spots Standard Schools outperforming demographics

Returns schools flagged as bright spots — outperforming expectations given their demographics and funding level.

Query Parameters

ParamTypeDescription
statestringFilter by 2-letter state code
min_frlfloatMinimum FRL percentage (0-100)
levelstringElementary, Middle, High
limitintMax results (default: 25, max: 100)

Funding & Grants

GET /schools/{nces_id}/funding Free Funding eligibility for a school

Returns all federal funding programs a school is eligible for, with program name, annual pool size, strength of eligibility, and funding type.

// Response { "nces_id": "170993000917", "eligible_programs": [ { "program_id": "TITLE_I_A", "name": "Title I Part A", "pool": 18400000000, "strength": "DIRECT", "funding_type": "FORMULA" } ], "count": 5 }
POST /purchase/qualify Standard Check if a purchase qualifies for funding

Describe a purchase in plain English and get back matching funding categories, eligible programs, legal citations, and confidence scores.

Request Body

{ "description": "Math manipulative kits with base-ten blocks and fraction tiles for grades 3-5" }

Response

Returns matches array with category, confidence (HIGH/MEDIUM/LOW), matched keywords, and funding_programs with program ID, name, strength, justification, and annual pool.

GET /grants/programs Free List available grant programs

Returns all federal funding programs available for AI grant writing, with program ID, name, and CFDA number.

Valid program IDs: TITLE_I_A, TITLE_II_A, TITLE_III_A, TITLE_IV_A, IDEA_B, 21ST_CCLC, PERKINS_V

POST /grants/write Premium AI-generated grant narrative (.docx)

Generates a complete grant application narrative with 7 sections: Executive Summary, Statement of Need, Goals, Project Design, Evaluation Plan, Budget Justification, and Sustainability Plan. Returns a downloadable .docx file.

Request Body

{ "nces_id": "480003012035", "program_id": "TITLE_I_A", "project_description": "Math manipulative kits for grades K-5 aligned to CCSS" }

Response: Binary .docx file download.

POST /reports/justification Premium Audit-ready justification report (.docx)

Generates a funding justification document with school demographics, eligible programs, standards alignment, per-pupil cost analysis, and compliance citations. Returns a downloadable .docx file.

Request Body

{ "nces_id": "010000500871", "purchase_description": "STEM math manipulative kits for grades 3-5" }

Data & Analytics

GET /query/ask Premium Natural language data query

Ask questions in plain English and get structured results. The AI translates your question into a graph query, executes it, and returns data.

Query Parameters

ParamTypeDescription
qstringNatural language question (e.g., "Title I schools in Texas with declining enrollment")
GET /export/schools Enterprise Bulk export filtered school data

Export up to 25,000 school records as JSON or CSV. Filter by state, level, FRL range, enrollment, lead tier, bright spots, and alerts.

Query Parameters

ParamTypeDescription
statestring2-letter state code
levelstringElementary, Middle, High
min_frl, max_frlfloatFRL percentage range (0-100)
min_enrollmentintMinimum enrollment
lead_tierstringHOT, WARM, NURTURE, MONITOR
bright_spot_onlyboolOnly bright spot schools
limitintMax rows (default: 5000, max: 25000)
fmtstringjson or csv
GET /districts/{leaid}/spending Standard District spending breakdown

Returns F-33 finance data for a district: total expenditure, instructional/admin/capital splits, per-pupil spending, revenue sources (federal/state/local), and state averages for comparison.

GET /spending/compare Standard Compare spending across districts

Rank districts by per-pupil spending, instruction percentage, admin percentage, or total expenditure. Filter by state or run nationally.

Query Parameters

ParamTypeDescription
statestringFilter to a single state
sort_bystringperPupil, instructionPct, adminPct, totalExp
limitintMax results (default: 25, max: 100)
GET /equity/gaps Premium Find largest equity gaps by state

Identifies schools with the most significant equity gaps in a state, measured by equity score, suspension rate, AP course access, or pupil-teacher ratio.

Query Parameters

ParamTypeDescription
statestringRequired — 2-letter code
metricstringequityScore, suspensionRate, apCourseCount, pupilTeacherRatio
limitintMax results (default: 25)

Vendor & Sales Intelligence

POST /leads/from-purchase Standard Build targeted school lead lists

Given target funding programs, returns schools eligible for those programs, ranked by lead score. Perfect for vendor territory planning and prospect list building.

Request Body

{ "program_ids": ["TITLE_I_A", "TITLE_IV_A"], "product_description": "STEM manipulative kits", "state": "TX", "level": "Elementary", "min_enrollment": 300, "lead_tier": "HOT", "limit": 100 }

Response includes contact info (principal, phone, address), lead scores, and funding program matches for each school.

GET /market/summary Premium TAM, lead tiers, funding coverage

Market intelligence summary showing lead tier distribution, total student counts, average FRL rates, and bright spot distribution. Filter by state or run nationally.

Query Parameters

ParamTypeDescription
statestringOptional 2-letter state code
GET /vendors/erate Premium Top E-Rate vendors by commitment volume

E-Rate vendor rankings by total commitment amount. Filter by state and funding year. Shows vendor name, commitment count, total amount, top states, and service types.

Query Parameters

ParamTypeDescription
statestringFilter by state
funding_yearintFilter by E-Rate funding year
limitintMax results (default: 25)
GET /vendors/erate/{vendor_name} Premium Detailed vendor commitment data

Full E-Rate commitment history for a vendor: recipient schools, amounts, service types, discount rates, and years active. Includes summary statistics.

GET /shortages Standard Teacher shortage areas by state

Returns DOE-designated teacher shortage areas. Without a state filter, returns all states with their shortage subjects. With a state filter, returns subjects and count of schools with math teacher shortages.

Geography

GET /states/{abbr}/profile Standard Comprehensive state profile

Returns state-level aggregates: total schools, districts, enrollment, average FRL, math proficiency, school level distribution, funding programs, top 5 bright spots, largest schools, and top districts.

POST /reports/district Premium AI District Intelligence Report (.docx)

Generates a comprehensive district intelligence report as a downloadable .docx. Includes all schools, aggregate stats, funding analysis, and AI-generated insights.

Request Body

{ "district_nces_id": "4807020" }

AI Tools

POST /agent/chat Premium Chat with the ThinkKits AI agent

Full conversational AI agent with access to all platform tools. Supports multi-turn conversation with history. The agent can search schools, analyze funding, generate reports, and answer complex questions.

Request Body

{ "message": "Find Title I elementary schools in Georgia with 500+ enrollment", "history": [] }

Returns response (text) and tool_calls (count of tools the agent used).

POST /extract/document Premium AI document extraction (image/text)

Upload an invoice, quote, email, or product document (image or text). AI extracts the purchase description, vendor, amount, quantity, and unit price. Use as input for /purchase/qualify.

Request

Multipart form upload with a file field. Supports images (JPEG, PNG) and text documents.

Account & Marketplace

GET /marketplace/tiers Public List API tiers and pricing

Returns all available API tiers with daily/monthly limits, pricing, and descriptions. No authentication required.

GET /marketplace/usage Any Key View your API usage statistics

Returns your usage statistics including daily and monthly request counts, remaining quota, and historical usage over the specified time period.

Query Parameters

ParamTypeDescription
daysintLookback period (default: 30, max: 365)
GET /standards/certify Standard Standards coverage certification

Returns curriculum standards data for a state and subject, including total standards, framework names, grade distribution, and ThinkKits product alignment percentage.

Query Parameters

ParamTypeDescription
statestringRequired — 2-letter state code
subjectstringSubject name (default: Mathematics)

Was this article helpful?

← Back to Help Center