API reference

Put your chapter's data on your own website.

Every chapter on the ALL Applied AI Network has a live, public API: events, members, leaderboard, badges, merch, research projects, and learning-tree content. Officers edit it in their dashboard; your site reflects the change on the next page load, with no redeploy.

You almost certainly don't need an API key

Every per-chapter module below is readable through one public, CORS-open endpoint. If your site is static — a plain HTML site, a Vite or React SPA, anything served from GitHub Pages, S3, Netlify or Vercel without a server — that endpoint is the only correct option.

Bundlers inline environment variables (VITE_*, NEXT_PUBLIC_*, REACT_APP_*) into the JavaScript they ship to visitors. There is no such thing as a “server-side fetch” in a static build — the browser is doing the fetching whatever the code looks like, so a key placed there is a published key. The authenticated /api/v1/* endpoints exist for sites that genuinely run code on a server.

Quickstart

One request returns everything. Replace msoe-ai-club with your chapter's slug.

curl "https://dashboard.all-ai-network.org/api/public/chapter/msoe-ai-club/bundle"
// No API key. Safe to call from the browser.
const res = await fetch(
  "https://dashboard.all-ai-network.org/api/public/chapter/msoe-ai-club/bundle?events=all"
);
const { chapter, events, projects, leaderboard } = await res.json();

console.log(chapter.name, "—", chapter.member_count, "members");
for (const p of projects) {
  console.log(p.year, p.title, "by", p.members.map((m) => m.name).join(", "));
}

Responses are edge-cached about 30 seconds, so calling this on every page load is fine — don't build a client-side cache on top.

Endpoints

Five public endpoints. The chapter bundle covers most integrations on its own.

Chapter bundle

No key

Everything a chapter website needs in one round-trip: identity and counts, presentation config, events, leaderboard, badges, merch, projects, and social feeds. This is the endpoint most integrations should use.

GET/api/public/chapter/msoe-ai-club/bundle
Path parameters
slugstringThe chapter's slug, e.g. msoe-ai-club.
Query parameters
eventsupcoming | past | allWhich slice of the calendar to return. Defaults to upcoming — a chapter whose events are all in the past gets an empty array unless you ask for past or all.
events_limitintegerCap on events returned. Defaults to 12 for upcoming, 100 otherwise; max 200.
  • CORS-open and edge-cached ~30 seconds, so calling it on every page load is fine.
  • Read events_scope to tell 'nothing upcoming' apart from 'no events at all'.
  • config carries the chapter's dashboard theme and section toggles. A site with its own design should ignore both — they exist for template sites that opted into remote control.
Example response
{
  "chapter": {
    "slug": "msoe-ai-club",
    "name": "MSOE AI Club",
    "university": "Milwaukee School of Engineering",
    "member_count": 515,
    "event_count": 56
  },
  "config": { "theme": { "primary": "#4f8fea", "accent": "#a855f7" }, "logo_url": "…", "sections": { … } },
  "events": [ … ],
  "events_scope": "upcoming",
  "leaderboard": [ { "rank": 1, "name": "…", "points": 88, "badges": [ … ] } ],
  "badges": [ … ],
  "merch": [ … ],
  "projects": [
    {
      "title": "NourishNet",
      "year": "2023-2024",
      "members": [ { "name": "Sydney Balboni", "role": "author" } ],
      "files":   [ { "kind": "paper", "url": "https://arxiv.org/pdf/2407.00698" } ]
    }
  ],
  "social_feeds": { }
}

Learning tree

No key

The network's shared curriculum graph merged with the chapter's own nodes, as nodes and edges.

GET/api/public/learning-tree/msoe-ai-club
Path parameters
slugstringThe chapter's slug.
  • source distinguishes shared network nodes from chapter-authored ones.
  • Honour pos_x/pos_y where present — an officer arranged those by hand. Only auto-layout nodes that have none.
  • prereqs can list more than one parent. This is a graph, not a strict tree; a renderer assuming a single parent silently drops edges.
Example response
{
  "chapter": { "slug": "msoe-ai-club", "name": "MSOE AI Club" },
  "nodes": [
    {
      "id": "foundations/what-is-ai",
      "title": "What Is AI? The Real Story",
      "summary": "…",
      "body": null,
      "prereqs": [],
      "tags": ["foundations"],
      "thumbnail": "https://…",
      "difficulty": "beginner",
      "pos_x": -1240, "pos_y": 0,
      "source": "base"
    }
  ],
  "edges": [ { "from": "…", "to": "…" } ]
}

Chapter site config

No key

Just the presentation config — theme, logo, section toggles, officers — without the rest of the bundle.

GET/api/public/config/msoe-ai-club
Path parameters
slugstringThe chapter's slug.
  • Use the bundle instead if you also need data; it includes this.

Chapter directory

No key

Every chapter that has opted into network discovery, with its university and hub site.

GET/api/public/network/chapters

Network statistics

No key

Aggregate, no-PII snapshot of the network: chapter count, member totals, and partner activity.

GET/api/public/network-stats

What's in the bundle

Each module below is a field on the bundle response. The same catalog drives the integration prompt in the chapter dashboard, so this list is always what the API actually returns.

Hub-site configuration

config

Fetch your chapter's theme colors, logo URL, and section toggles from the dashboard. Drives the site's CSS variables, header logo, and which components render.

No key /api/public/chapter/msoe-ai-club/bundle
API key /api/v1/config
Response shape
{
  "config": {
    "theme": { "primary": "#4f8fea", "accent": "#a855f7" },
    "logo_url": "https://gdxifnnfirnzljtxnhch.supabase.co/storage/v1/object/public/chapter-logos/<chapter>/logo.png",
    "sections": {
      "hero": true,
      "about": true,
      "events": true,
      "leaderboard": true,
      "badges": true,
      "merch": true,
      "officers": true,
      "learning_tree": true,
      "playbooks": true,
      "workshops": true
    },
    "updated_at": "2026-04-19T19:14:02.000Z"
  }
}

Upcoming events

events

Render your chapter's next events on your homepage. Auto-updates as you add events in the dashboard.

No key /api/public/chapter/msoe-ai-club/bundle
API key /api/v1/events
Response shape
{
  "events": [
    {
      "id": "evt_abc123",
      "title": "Intro to Applied AI",
      "description": "Kick-off session for the semester.",
      "type": "workshop",
      "date": "2026-09-12T23:30:00.000Z",
      "points_attend": 10,
      "points_win": 0,
      "checkin_count": 42
    }
  ]
}

Leaderboard

leaderboard

Show the top members by XP. Great for a homepage widget or a dedicated members page.

No key /api/public/chapter/msoe-ai-club/bundle
API key /api/v1/leaderboard
Response shape
{
  "leaderboard": [
    { "name": "Jane Doe",   "points": 1250, "events_attended": 18, "rank": 1 },
    { "name": "John Smith", "points": 1100, "events_attended": 16, "rank": 2 },
    { "name": "Aisha Khan", "points":  980, "events_attended": 14, "rank": 3 }
  ]
}

Chapter stats

chapter

Pull your chapter's name, university, member count, and event count — perfect for a hero banner or footer.

No key /api/public/chapter/msoe-ai-club/bundle
API key /api/v1/chapter
Response shape
{
  "chapter": {
    "name": "MSOE AI Club",
    "university": "Milwaukee School of Engineering",
    "slug": "msoe",
    "member_count": 500,
    "event_count": 142
  }
}

Chapter badges

badges

Render the full catalog of recognition badges your chapter awards — with their name, description, icon, and how many members have earned each one.

No key /api/public/chapter/msoe-ai-club/bundle
API key /api/v1/badges
Response shape
{
  "badges": [
    {
      "id": "bdg_nvidia_dli",
      "name": "NVIDIA DLI",
      "description": "Completed an NVIDIA Deep Learning Institute certification.",
      "icon": "https://gdxifnnfirnzljtxnhch.supabase.co/storage/v1/object/public/badge-icons/<chapter>/nvidia-dli.png",
      "award_count": 23
    },
    {
      "id": "bdg_rosie_finalist",
      "name": "ROSIE Competition Finalist",
      "description": "Top 8 finish in the annual MAIC ROSIE hackathon.",
      "icon": "award",
      "award_count": 16
    }
  ]
}

Merch catalog

merch

Display the rewards your chapter offers in exchange for earned points — T-shirts, stickers, workshop vouchers — so members know what they're working toward.

No key /api/public/chapter/msoe-ai-club/bundle
API key /api/v1/merch
Response shape
{
  "merch": [
    {
      "id": "mrch_tshirt",
      "name": "MAIC T-Shirt",
      "description": "Classic black tee with the MAIC logo.",
      "cost_points": 75,
      "image_url": "https://gdxifnnfirnzljtxnhch.supabase.co/storage/v1/object/public/merch-images/<chapter>/tshirt.jpg",
      "stock": 12,
      "is_active": true,
      "created_at": "2026-04-19T14:02:31.000Z"
    },
    {
      "id": "mrch_stickers",
      "name": "Sticker pack",
      "description": "Three vinyl stickers — MAIC logo, ROSIE, NVIDIA-Olympus.",
      "cost_points": 15,
      "image_url": null,
      "stock": null,
      "is_active": true,
      "created_at": "2026-04-19T14:03:11.000Z"
    }
  ]
}

Club social feed

social_feeds

Latest public posts from the club's linked LinkedIn and Instagram accounts, synced on demand from the dashboard. Renders as a card grid; hides itself until the eboard has synced a feed.

No key /api/public/chapter/msoe-ai-club/bundle
Response shape
{
  "social_feeds": {
    "linkedin": {
      "source_url": "https://www.linkedin.com/company/msoe-ai-club",
      "synced_at": "2026-07-16T14:03:22.000Z",
      "posts": [
        {
          "id": "7351234567890",
          "url": "https://www.linkedin.com/posts/...",
          "posted_at": "2026-07-12T18:30:00.000Z",
          "content": "Our Spring Innovation Lab teams just demoed...",
          "image_url": "https://media.licdn.com/dms/image/...",
          "likes": 42,
          "comments": 7
        }
      ]
    },
    "instagram": {
      "source_url": "https://www.instagram.com/msoe.aiclub/",
      "synced_at": "2026-07-16T14:05:10.000Z",
      "posts": [
        {
          "id": "3391234567890",
          "url": "https://www.instagram.com/p/ABC123/",
          "posted_at": "2026-07-10T21:00:00.000Z",
          "content": "Workshop night recap!",
          "image_url": "https://scontent.cdninstagram.com/...",
          "likes": 88,
          "comments": 12
        }
      ]
    }
  }
}

Projects & research

projects

The chapter's project and research history — each with its team, papers, slides, and recordings.

No key /api/public/chapter/msoe-ai-club/bundle
Response shape
{
  "projects": [
    {
      "id": "\u2026",
      "title": "NourishNet",
      "description": "Forecasting food commodity price spikes\u2026",
      "image_url": "https://\u2026/team-logo.png",
      "link_url": null,
      "year": "2023-2024",
      "members": [
        {
          "name": "Sydney Balboni",
          "role": "author"
        },
        {
          "name": "John Cisler",
          "role": "author"
        }
      ],
      "files": [
        {
          "id": "\u2026",
          "kind": "paper",
          "title": "NourishNet \u2014 paper",
          "url": "https://arxiv.org/pdf/2407.00698"
        }
      ]
    }
  ]
}

Learning tree

The network's shared AI curriculum graph merged with this chapter's own nodes.

No key /api/public/learning-tree/msoe-ai-club
Response shape
{
  "chapter": {
    "slug": "\u2026",
    "name": "\u2026"
  },
  "nodes": [
    {
      "id": "foundations/what-is-ai",
      "title": "What Is AI? The Real Story",
      "summary": "\u2026",
      "body": null,
      "parent_ref": null,
      "prereqs": [],
      "tags": [
        "foundations"
      ],
      "thumbnail": "https://\u2026",
      "difficulty": "beginner",
      "pos_x": -1240,
      "pos_y": 0,
      "source": "base"
    }
  ],
  "edges": [
    {
      "from": "\u2026",
      "to": "\u2026"
    }
  ]
}

Wiring this up with a coding agent

Most chapters point an AI coding agent at their existing website repo rather than writing the integration by hand. Two machine- readable entry points exist for that:

  • /llms.txt — a short summary written for agents, including the mistakes that cost people the most time.
  • /openapi.json — OpenAPI 3.1, for tooling that speaks it.

Chapter officers can also copy a ready-made integration prompt from the dashboard's Website tab. It carries your slug, surveys your site before changing anything, and rewires the sections you already have instead of bolting on new ones.

Authenticated API

For sites that run code on a server, per-module /api/v1/* endpoints accept a chapter API key as a bearer token:

curl "https://dashboard.all-ai-network.org/api/v1/events?upcoming=true" \
  -H "Authorization: Bearer $AAIN_API_KEY"

Officers request a key from the dashboard's Website tab. Keys are scoped to one chapter. Keep them in server-only environment variables — never in a variable your bundler will inline.