# Gemini Consultation: Technic API 401 Unauthorized Fix **Date:** April 6, 2026 **Chronicler:** #63 **Task:** #26 ModpackChecker Phase 5 Deployment --- ## The Problem Technic API was returning `401 Unauthorized` for all requests: ```php $response = Http::get('https://api.technicpack.net/modpack/tekkit?build=1'); // Returns: {"status":401,"error":"Unauthorized"} ``` We initially suspected authentication requirements had changed. --- ## Gemini's Diagnosis **It wasn't authentication — it was version control.** Technic actively blocks requests claiming to come from ancient or deprecated launcher builds. By hardcoding `?build=1`, we were telling the API we're using build #1 of the Technic Launcher. The API rejects this outdated build number. The current stable build number is in the high 700s/800s. --- ## The "RV-Ready" Fix Instead of hardcoding a higher number (which could eventually be deprecated too), we dynamically fetch the current build number: ```php private function checkTechnic(string $slug): array { // Step 1: Get current stable launcher build number $versionResponse = Http::get('https://api.technicpack.net/launcher/version/stable4'); $latestBuild = $versionResponse->successful() ? ($versionResponse->json('build') ?? 999) : 999; // Fallback to high number if version check fails // Step 2: Fetch modpack data with valid build number $response = Http::withHeaders([ 'User-Agent' => 'FirefrostGaming/ModpackChecker/1.0', 'Accept' => 'application/json', ])->get("https://api.technicpack.net/modpack/{$slug}?build={$latestBuild}"); if (!$response->successful()) { throw new \Exception('Technic API request failed: ' . $response->status()); } $data = $response->json(); return [ 'name' => $data['displayName'] ?? $data['name'] ?? 'Unknown', 'version' => $data['version'] ?? 'Unknown', ]; } ``` --- ## Why "RV-Ready"? This approach requires **zero ongoing maintenance**. As Technic updates their launcher versions, our extension automatically mimics the latest official launcher — no code changes needed. --- ## Key Endpoints | Endpoint | Purpose | |----------|---------| | `https://api.technicpack.net/launcher/version/stable4` | Get current launcher build number | | `https://api.technicpack.net/modpack/{slug}?build={N}` | Get modpack info with valid build | --- ## Result All 4 platforms now working: - ✅ Modrinth - ✅ FTB - ✅ CurseForge - ✅ Technic