UNPKG

sec-edgar-toolkit

Version:

Open source toolkit to facilitate working with the SEC EDGAR database

38 lines 1.46 kB
"use strict"; /** * XBRL endpoints for SEC EDGAR API */ Object.defineProperty(exports, "__esModule", { value: true }); exports.XbrlEndpoints = void 0; const SEC_BASE_URL = 'https://data.sec.gov'; class XbrlEndpoints { constructor(httpClient) { this.httpClient = httpClient; } async getCompanyFacts(cik) { const cikStr = typeof cik === 'number' ? cik.toString().padStart(10, '0') : cik.padStart(10, '0'); const url = `${SEC_BASE_URL}/api/xbrl/companyfacts/CIK${cikStr}.json`; return await this.httpClient.get(url); } async getCompanyConcept(cik, taxonomy, tag, unit) { const cikStr = typeof cik === 'number' ? cik.toString().padStart(10, '0') : cik.padStart(10, '0'); let url = `${SEC_BASE_URL}/api/xbrl/companyconcept/CIK${cikStr}/${taxonomy}/${tag}.json`; if (unit) { url += `?unit=${encodeURIComponent(unit)}`; } return await this.httpClient.get(url); } async getFrames(taxonomy, tag, unit, year, options = {}) { let period = year.toString(); if (options.quarter) { period += `Q${options.quarter}`; } else if (options.instantaneous) { period += 'I'; } const url = `${SEC_BASE_URL}/api/xbrl/frames/${taxonomy}/${tag}/${unit}/${period}.json`; return await this.httpClient.get(url); } } exports.XbrlEndpoints = XbrlEndpoints; //# sourceMappingURL=xbrl.js.map