sec-edgar-toolkit
Version:
Open source toolkit to facilitate working with the SEC EDGAR database
38 lines • 1.46 kB
JavaScript
;
/**
* 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