40 Nodes / Suites API Documentation

The Convergence Protocol from They Can All Bird, Chapter 18 β€” 40 nodes organized into 5 suites.

🎯 Overview

  • 40 Nodes organized into 5 Suites
  • Each suite has 8 nodes
  • Session: 28409296
  • Source: They Can All Bird, Chapter 18

πŸ“Š The 5 Suites

SuiteNameNodesColorTheme
IRecognition1-8🟒 GreenPerception Hygiene
IIResistance9-16πŸ”΅ BlueResponse Protocols
IIIReconstruction17-24🟣 PurpleMeaning-Making
IVRelationship25-32🟠 OrangeSocial Cognition
VRenewal33-40πŸ”΄ RedMaintenance

πŸ“‘ API Endpoints

Get All Suites

GET /api/suites

Response:

{
  "suites": [
    {
      "id": "I",
      "name": "Recognition",
      "subtitle": "Perception Hygiene β€” Seeing What Is Actually There",
      "description": "The first defense is noticing...",
      "color": "#2E7D32",
      "nodeCount": 8,
      "nodes": [1, 2, 3, 4, 5, 6, 7, 8]
    }
  ],
  "totalNodes": 40,
  "source": "They Can All Bird, Chapter 18",
  "session": "28409296"
}

Get Specific Suite

GET /api/suites/:id

Where :id is I, II, III, IV, or V.

Response:

{
  "suite": {
    "id": "I",
    "name": "Recognition",
    "subtitle": "Perception Hygiene β€” Seeing What Is Actually There",
    "description": "The first defense is noticing...",
    "color": "#2E7D32",
    "nodes": [
      {
        "number": 1,
        "suite": "I",
        "name": "Pattern Recognition",
        "activation_phrase": "I am in a loop.",
        "book_lines": "43-51",
        "detailUrl": "/api/nodes/1",
        "externalUrl": "https://kbird.ai/🏨-The-Motel/Nodes/01-The-Pattern-Recognition.html"
      }
    ]
  }
}

Get Specific Node

GET /api/nodes/:number

Where :number is 1-40.

Response:

{
  "node": {
    "number": 1,
    "suite": "I",
    "name": "Pattern Recognition",
    "activation_phrase": "I am in a loop.",
    "book_lines": "43-51",
    "suiteName": "Recognition",
    "suiteColor": "#2E7D32",
    "externalUrl": "https://kbird.ai/🏨-The-Motel/Nodes/01-The-Pattern-Recognition.html",
    "relatedContent": {
      "book": "wildflower",
      "chapter": 1,
      "type": "audio",
      "available": true
    }
  }
}

Get User’s Node Progress

GET /api/nodes/progress
Headers: Authorization: Bearer TOKEN

Response (authenticated):

{
  "totalNodes": 40,
  "completedNodes": [1, 2, 3],
  "completionCount": 3,
  "percentComplete": 7,
  "currentSuite": "I",
  "nextNode": 4,
  "completions": [
    {
      "node_number": 1,
      "completion_count": 2,
      "completed_at": "2026-03-15T10:30:00Z"
    }
  ]
}

Response (not authenticated):

{
  "totalNodes": 40,
  "completedNodes": [],
  "currentSuite": "I",
  "message": "Login to track your progress through the 40 nodes"
}

πŸ”— Integration with kbird.ai

The suite cards on the landing page link to:

  • Suite detail: /api/suites/I (JSON API)
  • Full node pages: https://kbird.ai/🏨-The-Motel/Nodes/...
<a href="/api/suites/I">
  <div class="suite-card" style="border-color: #2E7D32;">
    <h3>Suite I: Recognition</h3>
    <p>Nodes 1-8</p>
  </div>
</a>

Some nodes link to related audiobook chapters:

NodeRelated Content
1WILDFLOWER Chapter 1
18WILDFLOWER Chapter 18 (FREE)
26They Can All Bird Chapter 18 (FREE)
40Podcast Ep18

🎨 Color Coding

Suite I (Recognition):   #2E7D32  /* Forest Green */
Suite II (Resistance):   #1565C0  /* Deep Blue */
Suite III (Reconstruction): #6A1B9A  /* Purple */
Suite IV (Relationship): #E65100  /* Orange */
Suite V (Renewal):       #C62828  /* Red */

πŸ”„ Integration with Convergence Protocol

Track node completion through the convergence API:

POST /api/convergence/nodes/complete
Body: { "nodeNumber": 5 }

Get progress:

GET /api/convergence/nodes

πŸ“± Flutter App Integration

Display suites as cards:

Future<void> loadSuites() async {
  final response = await http.get(Uri.parse('$apiBase/api/suites'));
  final data = jsonDecode(response.body);
  
  for (final suite in data['suites']) {
    print('${suite['name']}: ${suite['nodeCount']} nodes');
  }
}

Display specific suite:

Future<void> loadSuite(String suiteId) async {
  final response = await http.get(Uri.parse('$apiBase/api/suites/$suiteId'));
  final data = jsonDecode(response.body);
  
  for (final node in data['suite']['nodes']) {
    print('Node ${node['number']}: ${node['name']}');
  }
}

🌐 Web Navigation

The landing page at https://audio.kbird.ai displays:

  • 5 suite cards with icons and colors
  • Each card links to the suite JSON API
  • Progress tracking link
  • Connection to audiobook content

For full node detail pages, link to:

https://kbird.ai/🏨-The-Motel/Nodes/01-The-Well.html

πŸ“š Source Data

Full node data available in:

Nosos/kbird-quartz-public/πŸ”§-Projects/Chapter18_Tools/nodes_data.yaml

This includes:

  • Full node descriptions
  • Warning signs
  • Marginalia from Dr. Voss
  • Weekly email schedule
  • Color codes

Session 28409296 β€” The Convergence Protocol