edu.college-scorecard

Search US colleges + universities via the Department of Education College Scorecard API. Filter by free-text name (q), OPE/IPEDS school id, state, city, zip, ownership (1=Public | 2=Private nonprofit | 3=Private for-profit), predominant degree level (0=Not classified | 1=Certificate | 2=Associate | 3=Bachelor | 4=Graduate), enrollment range. Returns a curated field set per school: identity (name, alias, URL, location), classification (Carnegie, locale, religious affiliation, minority-serving designation), latest admissions (admit rate, SAT/ACT midpoints), cost (in-state + out-of-state tuition, total cost of attendance), aid (median debt, federal-loan rate, Pell rate), completion rate, 10-year median earnings, repayment rate, lat/lon. Every accredited US institution. Use perPage + page for pagination; page is 0-indexed.

price
$0.0012 USDC per call
method
GET/api/edu/college-scorecard
payment
x402 v2 · USDC on Base (EIP-3009) or Solana (SPL transfer)
auth
None. Sign the payment, retry with PAYMENT-SIGNATURE.

Overview

The college scorecard API is a pay-per-call edu endpoint built for AI agents and autonomous software. Search US colleges + universities via the Department of Education College Scorecard API.

There is no signup and no API key. An agent (or any HTTP client) hits the endpoint, receives an x402 "402 Payment Required" challenge, signs a sub-cent USDC payment on Base or Solana, and retries — the data comes back on the paid request. That makes it a drop-in college scorecard data source for an agent tool-use loop, an MCP host, or a backend that needs edu data on demand without onboarding to yet another vendor portal.

Use cases

Parameters

NameTypeDescription
qstring
min 1 chars · max 120 chars
schoolIdinteger
min 1
statestring
min 2 chars · max 2 chars · match ^[A-Za-z]{2}$
citystring
min 2 chars · max 80 chars
zipstring
match ^\d{5}$
ownershipinteger
degreePredominantinteger
minEnrollmentinteger
min 0
maxEnrollmentinteger
min 1
perPageinteger
min 1 · max 100
pageinteger
min 0
fieldsstring
max 2000 chars

Code samples

cURLbash
# 1. Probe with no auth → 402 envelope with PaymentRequirements
curl -sS 'https://2s.io/api/edu/college-scorecard?q=example&schoolId=1&state=xx&city=xx&zip=12345&ownership=1&degreePredominant=1&minEnrollment=0&maxEnrollment=1&perPage=20&page=0&fields=example'

# 2. Sign + retry with PAYMENT-SIGNATURE:
curl -sS 'https://2s.io/api/edu/college-scorecard?q=example&schoolId=1&state=xx&city=xx&zip=12345&ownership=1&degreePredominant=1&minEnrollment=0&maxEnrollment=1&perPage=20&page=0&fields=example' \
  -H 'PAYMENT-SIGNATURE: <base64-json-payload>'

# Or use the canonical runner (handles probe → sign → retry):
#   EVM_PRIVATE_KEY=0x... node --env-file=.env.local \
#     --experimental-strip-types scripts/x402-pay.ts \
#     'https://2s.io/api/edu/college-scorecard?q=example&schoolId=1&state=xx&city=xx&zip=12345&ownership=1&degreePredominant=1&minEnrollment=0&maxEnrollment=1&perPage=20&page=0&fields=example'
TypeScript / Node — @2sio/sdktypescript
import { TwoS } from '@2sio/sdk'

const client = new TwoS({
  privateKey: process.env.EVM_PRIVATE_KEY as `0x${string}`,
})

const result = await client.edu.collegeScorecard({
  "q": "example",
  "schoolId": 1,
  "state": "xx",
  "city": "xx",
  "zip": "12345",
  "ownership": 1,
  "degreePredominant": 1,
  "minEnrollment": 0,
  "maxEnrollment": 1,
  "perPage": 20,
  "page": 0,
  "fields": "example"
})

console.log('endpoint:', result.endpoint)
console.log('cost:', result.costUsd, 'USDC')
console.log('tx:', result.settlement?.txHash)
console.log('data:', result.data)
Python — 2siopython
import os
from twosio import TwoS

client = TwoS(private_key=os.environ["EVM_PRIVATE_KEY"])

result = client.edu.college_scorecard(q="example", schoolId=1, state="xx", city="xx", zip="12345", ownership=1, degreePredominant=1, minEnrollment=0, maxEnrollment=1, perPage=20, page=0, fields="example")

print("endpoint:", result.endpoint)
print("cost:", result.cost_usd, "USDC")
print("tx:", (result.settlement or {}).get("tx_hash"))
print("data:", result.data)
MCP — Claude Desktop / AgentKit / any MCP hostjson
// 1. Add @2sio/mcp to your MCP host config (Claude Desktop example below).
//    EVM_PRIVATE_KEY funds x402 payments per call.

// claude_desktop_config.json
{
  "mcpServers": {
    "2sio": {
      "command": "npx",
      "args": ["-y", "@2sio/mcp"],
      "env": { "EVM_PRIVATE_KEY": "0x..." }
    }
  }
}

// 2. Once the server is running, agents call this tool via standard MCP:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "edu.college-scorecard",
    "arguments": {
      "q": "example",
      "schoolId": 1,
      "state": "xx",
      "city": "xx",
      "zip": "12345",
      "ownership": 1,
      "degreePredominant": 1,
      "minEnrollment": 0,
      "maxEnrollment": 1,
      "perPage": 20,
      "page": 0,
      "fields": "example"
    }
  }
}

Response

FieldTypeDescription
okboolean
one of: true
itemsarray
totalintegerTotal matching rows upstream; null when unknown.
sourceobject
pageobject
Example response datajson
{
  "ok": true,
  "items": [
    {}
  ],
  "total": 1,
  "source": {
    "provider": "example",
    "url": "example",
    "license": "example"
  },
  "page": {
    "number": 1,
    "size": 1,
    "pages": 1
  }
}

FAQ

Do I need an API key to use the college scorecard API?
No. edu.college-scorecard is x402-native — there is no signup and no API key. Your client makes the call, receives a 402 with payment requirements, signs a USDC payment, and retries. Funds come from a wallet you control.
How much does the college scorecard API cost?
$0.0012 USDC per call, charged per request. There are no monthly fees, seats, or minimums — you pay only for the calls you make.
Can I try the college scorecard API for free first?
Yes. Add ?trial=1 (or the header X-2s-Trial: 1) to get a free real call per endpoint per hour, so you can verify the response shape before wiring payment.
Which networks and tokens are supported?
USDC on Base (via EIP-3009 transferWithAuthorization) or Solana (SPL transfer), using the open x402 payment protocol.
How do I call edu.college-scorecard from an AI agent or MCP host?
Use @2sio/sdk (TypeScript), 2sio (Python), or the @2sio/mcp server for any MCP host — each handles the probe → sign → retry loop for you. See the code samples on this page.

Discovery

Related: college scorecard api · edu college scorecard api · college scorecard api for ai agents · x402 edu api · college scorecard api no api key · pay per call college scorecard api · edu api