# CurseForge API Integration

**Created:** April 2, 2026  
**Purpose:** Modpack version checker and dependency management  
**Status:** Documentation captured, ready for testing

---

## 🔑 API Credentials

**Primary API Key (General Use):**
```
f865f951-b937-482d-860b-e950bd02bbd2
```
- Application: Firefrost Gaming CurseForge Integration
- Status: Approved

**Modpack Version Checker API Key:**
```
$2a$10$OVK9ml7bEJdcfTJhBSuK1O5AFz2qq3mwpb35RTTwVfmdvzQFOA7M
```
- Application: Firefrost Modpack Version Checker (3rd Party API)
- Status: Approved April 2, 2026
- Email confirmation: Received 8:22 AM
- Use case: Automated modpack version checking for server updates

**Authentication Methods:**
1. Header: `X-Api-Token: [API_KEY]`
2. Query param: `?token=[API_KEY]`

**Recommendation:** Use the Modpack Version Checker key for automated version checking scripts to keep usage separated by purpose.

**Base URL:** `https://minecraft.curseforge.com/api`

---

## 📚 Official Documentation

**Primary Resource:** https://support.curseforge.com/support/solutions/articles/9000197321-curseforge-api

**Key Endpoints:**
- `/api/game/versions` - Get list of Minecraft versions
- `/api/game/dependencies` - Get mod dependencies
- `/api/projects/{projectId}/upload-file` - Upload new file
- `/api/projects/{projectId}/update-file` - Update existing file

---

## 🎯 Use Case: Modpack Version Checker

**Goal:** Automatically check if modpack versions are up to date

**Workflow:**
1. Query CurseForge for latest game versions
2. Compare against installed modpack versions
3. Alert if updates available
4. Optionally auto-update (future feature)

---

## 📋 Game Versions API

**Endpoint:** `GET /api/game/versions`

**Example Response:**
```json
[
  {
    "id": 158,
    "gameVersionTypeID": 42,
    "name": "1.8.4",
    "slug": "1-8-4"
  }
]
```

**Use Case:**
- Get list of all Minecraft versions
- Filter for specific version ranges
- Check compatibility

---

## 🔧 Game Dependencies API

**Endpoint:** `GET /api/game/dependencies`

**Example Response:**
```json
[
  {
    "id": 42,
    "name": "Bukkit",
    "slug": "bukkit"
  }
]
```

**Use Case:**
- Identify mod loader requirements (Forge, Fabric, Bukkit)
- Verify dependency compatibility

---

## 📦 Project File Management

### Upload New File

**Endpoint:** `POST /api/projects/{projectId}/upload-file`

**Content-Type:** `multipart/form-data`

**Fields:**
- `metadata` (JSON)
- `file` (actual file)

**Metadata Schema:**
```json
{
  "changelog": "Version updates and bug fixes",
  "changelogType": "markdown",
  "displayName": "My Modpack v1.2.3",
  "gameVersions": [157, 158],
  "releaseType": "release",
  "relations": {
    "projects": [
      {
        "slug": "jei",
        "type": "requiredDependency"
      }
    ]
  }
}
```

**Response:**
```json
{
  "id": 20402
}
```

---

## 💡 Implementation Ideas

### Version Checker Script

```bash
#!/bin/bash
# Check CurseForge for latest Minecraft versions

API_KEY="f865f951-b937-482d-860b-e950bd02bbd2"
ENDPOINT="https://minecraft.curseforge.com/api/game/versions"

curl -H "X-Api-Token: $API_KEY" "$ENDPOINT"
```

### Python Version Checker

```python
import requests

API_KEY = "f865f951-b937-482d-860b-e950bd02bbd2"
BASE_URL = "https://minecraft.curseforge.com/api"

def get_game_versions():
    headers = {"X-Api-Token": API_KEY}
    response = requests.get(f"{BASE_URL}/game/versions", headers=headers)
    return response.json()

def check_modpack_version(target_version):
    versions = get_game_versions()
    # Filter and compare logic here
    pass
```

---

## 🚀 Next Steps (POST-LAUNCH)

**Phase 1: Manual Testing**
- [ ] Test API authentication
- [ ] Retrieve game versions list
- [ ] Identify our modpack version IDs
- [ ] Document version mapping

**Phase 2: Version Checker**
- [ ] Build script to query latest versions
- [ ] Compare against installed versions
- [ ] Generate update report
- [ ] Alert Trinity via Discord webhook

**Phase 3: Automation**
- [ ] Schedule periodic checks (daily/weekly)
- [ ] Store version history in PostgreSQL
- [ ] Build Trinity Console module
- [ ] Add update notifications to dashboard

**Phase 4: Advanced Features**
- [ ] Auto-update workflow (with approval)
- [ ] Dependency conflict detection
- [ ] Rollback capability
- [ ] Version change tracking in audit log

---

## 📝 Notes

- **Security:** API key has full project access - protect it
- **Rate Limits:** Unknown - test conservatively
- **Maven Support:** Available for dependency management
- **Project ID:** Found in CurseForge project URL

---

## 🔗 Related Resources

- CurseForge Project: (TBD - add modpack project URL)
- Maven Endpoint: `https://minecraft.curseforge.com/api/maven/`
- API Token Management: https://authors-old.curseforge.com/account/api-tokens

---

**Status:** Ready for testing after soft launch (April 16+)  
**Priority:** Medium (operational improvement, not launch blocker)  
**Owner:** The Wizard

**Fire + Frost + Foundation = Where Love Builds Legacy** 🔥❄️
