UNPKG

court-api-wrapper

Version:

CLI & wrapper for CourtListener API

41 lines (36 loc) 1.36 kB
const axios = require("axios"); const API_TOKEN = "3af12d5e5b6b8ac852d6194f52cca57324a6adb9"; // Keep this private async function searchCases({ query }) { try { const url = `https://www.courtlistener.com/api/rest/v3/search/?q=${encodeURIComponent(query)}`; const { data } = await axios.get(url, { headers: { Authorization: `Token ${API_TOKEN}`, }, }); return { results: (data?.results || []).map((item) => ({ caseName: item.caseName || "N/A", court: item.court || "N/A", dateFiled: item.dateFiled || "N/A", absolute_url: item.absolute_url ? item.absolute_url.startsWith("http") ? item.absolute_url : `https://www.courtlistener.com${item.absolute_url}` : "", })), }; } catch (err) { if (err.response?.status === 403) { console.error("🚫 Access denied. Check if your API token is valid."); } else if (err.response?.status === 429) { console.error("🚫 API rate limit reached. Please try again later."); } else if (err.code === "ENOTFOUND" || err.code === "ECONNREFUSED") { console.error("🌐 Network error. Please check your internet connection."); } else { console.error("❌ Unexpected error:", err.message); } return { results: [] }; } } module.exports = { searchCases };