Skip to main content
There is no query API. The entire published dataset is one ~140 KB static JSON file; every “query” is a fetch plus a local filter. Fetch once, then slice locally — these recipes use jq, with Python and JavaScript equivalents for the first. All recipes assume:
DATA=https://palatineai.site/projects.json

Top N by total score

curl -fsSL $DATA | jq '.projects[:10] | map({rank, project, category, total})'
projects is pre-sorted by rank, so slicing the front is already the leaderboard.

Token watch — strong projects with no token yet

High noToken (10 = no token exists) plus social/brand/idea momentum. This is the canonical PalatineAI screen:
Token-watch shortlist
curl -fsSL $DATA | jq '[.projects[] | select(.scores.noToken >= 8) | {project, momentum: (.scores.socialActivity + .scores.branding + .scores.ideaQuality), x}] | sort_by(-.momentum)[:10]'
117 of the 120 published projects currently pass noToken >= 8 — the momentum sort is what differentiates.

Possible token/funding signals

The 3 projects (currently) where research found token or funding hints:
Token signals
curl -fsSL $DATA | jq '[.projects[] | select(.tokenStatus != "No token signal") | {rank, project, tokenStatus, x}]'

Filter by category

One category, ranked
curl -fsSL $DATA | jq '[.projects[] | select(.category == "AI Platforms / Agents") | {rank, project, total}]'
Exact category strings present in the published feed (22 of the database’s 33):
AI / ML Models · AI Platforms / Agents · Consumer Apps · Data & Analytics · DeFi ·
DePIN · Developer Infrastructure · FinTech · Gaming · Governance & DAOs ·
Hardware & Devices · Identity & Privacy · Interoperability & Bridges ·
Marketplace Platforms · Markets & Exchanges · Payments & Remittance ·
Real World Assets (RWA) · Security Tools · Social / SocialFi ·
Token Launch / Tokenomics · Wallet Infrastructure · ZK / Crypto Research
Match exactly (case, spacing, slashes). For resilience, compare lowercased substrings.

Single-signal leaderboards

Branding leaders
curl -fsSL $DATA | jq '[.projects[] | {project, branding: .scores.branding, total}] | sort_by(-.branding)[:10]'
Strongest teams
curl -fsSL $DATA | jq '[.projects[] | {project, team: .scores.teamExperience, total}] | sort_by(-.team)[:10]'
Most original ideas
curl -fsSL $DATA | jq '[.projects[] | {project, ideas: (.scores.ideaUniqueness + .scores.ideaQuality), total}] | sort_by(-.ideas)[:10]'

Category league table

Average total per category — where the strength clusters:
League table
curl -fsSL $DATA | jq '[.projects[] | {category, total}] | group_by(.category) | map({category: .[0].category, n: length, avg: (map(.total) | add / length * 10 | round / 10)}) | sort_by(-.avg)'

Look up one project

Case-insensitive name lookup
curl -fsSL $DATA | jq '[.projects[] | select(.project | ascii_downcase | contains("encrypt"))]'

Database stats only

Stats and freshness
curl -fsSL $DATA | jq '.stats'
Returns counts plus updated (YYYY-MM-DD) — check it before relying on cached conclusions.
Scores are documented in The 12 signals; every field in projects.json reference. For turning shortlists into decisions, see the evaluation workflow.