Back to Scout
API Reference

Public endpoints

Every endpoint Scout calls is public, read-only, no auth, edge- cached (5 minutes for ecosystem data, 24 hours for the SDF skill proxy). Hit them from your agent, your dashboard, your Dune query, or anywhere else.

GET/api/hackathons

Merged feed of curated Stellar hackathons (from the Payload directory) and live DoraHacks events (SDF + Tellus orgs). Each row tagged with `source: 'curated' | 'dorahacks'`.

Query params
NameTypeDescription
statusstringupcoming | active | completed
organizerstringSlug of organizer entity
sourcestringcurated | dorahacks (restrict to one feed)
limitnumberMax rows (default 100, max 300)
Returns
  • ·.hackathons[*] — id, name, slug, dates, status, externalUrl, organizer, source, prizePoolUSD (DoraHacks only), hackersCount (DoraHacks only), url
  • ·.meta.counts.{curated, dorahacks, returned} — coverage stats
GET/api/hackathons/{slug}

Single curated hackathon detail — submissions, winners, prize-track aggregation, post-hack outcome funnel.

Returns
  • ·.hackathon.stats — totalSubmissions, totalPrizeUSD, winners count, outcome funnel (built / inProgress / abandoned / unknown)
  • ·.hackathon.tracks[*] — prize tracks derived from past submissions: { name, winnerCount, submissionCount, totalPrizeUSD }
  • ·.winners[*] — projects that placed
  • ·.submissions[*] — every submission with placement, prize, track

Only works for slugs in the curated Payload Hackathons collection. DoraHacks-sourced slugs return 404 — for those, see the externalUrl in the list endpoint.

GET/api/builders

Stellar builder directory (synced from Stellar Passport). Small + growing dataset — opt-in profiles only.

Query params
NameTypeDescription
qstringFree-text match across bio + role + project names
locationstringSubstring match against location field
scfTierstringFilter by SCF tier
featured1Featured profiles only
limitnumberMax rows (default 50, max 200)
Returns
  • ·.builders[*] — githubUsername, displayName, bio, roleTitle, location, scfTier, projects[], url

When fewer than 3 builders match, the SKILL.md instructs the agent to surface that explicitly and recommend Stellar Discord #builders + the Stellar GitHub org as fallback channels.

GET/api/projects/search

Search existing Stellar projects. Keyword-scored matches across name + short description + category. The workhorse for Deep Dive step 2 ("has anyone built this?").

Query params
NameTypeDescription
qstringKeywords to score against
categorystringFilter by project category
hackathonstringFilter to one hackathon by slug
scfAwarded1Only SCF-funded projects
limitnumberMax rows (default 20, max 100)
Returns
  • ·.projects[*] — scored by keyword overlap, sorted by relevance; includes scfAwarded flag, scfTotalAwardedUSD, hackathon (if any), hackathonPlacement, hackathonPrize, hackathonPrizeTrack
GET/api/rfps

Confirmed Stellar RFPs / sponsor briefs — problem statements that get funded by the Stellar Community Fund when winners are picked. Native source for "is there an open RFP matching my idea?" Backed by src/data/ideas.ts (curated). Mirrors what's on /ideas.

Query params
NameTypeDescription
qstringFree-text match across title + description + technical requirements + category
categorystringai | consumer-dapps | defi | developer-tooling | gaming | infrastructure | nfts | payments | scf | web3-social
quarterstringq1-2026 | q2-2026 (more added as new rounds open)
limitnumberMax rows (default 100, max 200)
Returns
  • ·.rfps[*] — id, title, description, technicalRequirements, category, categoryLabel, authorName, quarter, quarterLabel, url
  • ·.meta.categories, .meta.quarters — full enums for client-side filtering
  • ·.funding — clarifies that winners are SCF-funded
GET/api/skills

Catalog of the 7 official Stellar Foundation skills from skills.stellar.org (soroban, dapp, assets, data, agentic-payments, zk-proofs, standards).

Returns
  • ·.skills[*] — name, description, userInvocable, argumentHint, url, rawUrl

Server-cached for 24h via the upstream Next.js revalidate hint.

GET/api/skills/{name}

Full content of one SDF skill. Use in Deep Dive step 5 (SDK recommendation) to quote/summarize inline before pointing the user at the upstream install URL.

Returns
  • ·.skill.content — full SKILL.md markdown (frontmatter included)
  • ·.skill.{name, description, userInvocable, argumentHint, url, wordCount}
GET/api/leaderboard

Stellar ecosystem developer-activity stats and ranked project leaderboard. Backed by the daily Electric Capital snapshot + GitHub Signals.

Query params
NameTypeDescription
sortstringactivity | stars | issues
rangestring7d | 30d | 90d | 1y | all
categorystringFilter by project category
limitnumberMax rows (default 50)
formatstringjson (default) | csv
Returns
  • ·.ecosystem.{activeDevs28d, commits28d, fullTimeDevs, ...}
  • ·.projects[*] — ranked
GET/api/status

Self-check + data freshness. Call this on first invocation so you can surface dataset age in answers.

Returns
  • ·.ok, .service, .version, .generatedAt
  • ·.sources[*] — per-source { name, count, lastUpdatedAt, notes? }
  • ·.endpoints[*] — full catalog
  • ·.docs, .skill — canonical URLs

Source

All endpoints live in alexanderkoh/stellarlight. The skill manifest that documents them is in Stellar-Light/stellar-scout.