Spreadsheets & exports
Install spreadsheet tools or download CSV and analyst workbooks.
CSV without code
Non-developers can sign in, open Coverage and changes, and choose Export CSV. That button requests up to 100 event rows for the account; it does not export the entire catalog or automatically follow further pages. Developers can select a ticker and other supported filters with GET /events.csv and a filings:read key, then inspect X-Export-Truncated. This CSV endpoint has no continuation cursor: narrow the filters or use paginated GET /events JSON for additional rows:
curl --fail --show-error \
-H "Authorization: Bearer $FILINGSIFT_API_KEY" \
-H "Accept: text/csv" \
-o filingsift-events.csv \
"https://api.filingsift.com/api/v1/events.csv?ticker=AAPL"import os
from urllib.request import Request, urlopen
request = Request(
"https://api.filingsift.com/api/v1/events.csv?ticker=AAPL",
headers={"Authorization": f"Bearer {os.environ['FILINGSIFT_API_KEY']}", "Accept": "text/csv"},
)
with urlopen(request, timeout=15) as response:
csv_text = response.read().decode("utf-8")
print(csv_text)const response = await fetch("https://api.filingsift.com/api/v1/events.csv?ticker=AAPL", {
headers: { Authorization: "Bearer " + process.env.FILINGSIFT_API_KEY, Accept: "text/csv" },
signal: AbortSignal.timeout(15_000),
});
if (!response.ok) throw new Error("CSV export failed: " + response.status);
console.log(await response.text());Spreadsheet tools and installation
Use source-linked financial data in supported spreadsheet workflows. The directly distributed Excel add-in and Google Sheets modeling package include installation instructions. Configure your account connection and verify the required issuer and period before building a model. These packages are separate from the Google Sheets append connector, which requires destination authorization and provider configuration in Integrations.
Download Excel 2.1.0 or Google Sheets 1.0.0. Direct distribution does not imply a marketplace listing or completed provider setup.
Analyst Excel exports
Use an API key with exports:read (or the signed-in Analyst workspace) to build a bounded source-linked workbook for up to 20 entitled issuers and 20 periods. Filing-derived cells link to SEC Archives documents, unavailable values stay explicit, and checksum headers can be reproduced through the manifest endpoint with identical inputs and unchanged source data. A later source or parser change can change the checksum. Download the complete Node.js example or Python example.
curl --fail --show-error -X POST \
-H "Authorization: Bearer $FILINGSIFT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \
-d '{"tickers":["AAPL"],"periods":8,"metrics":["total_debt","cash","revolver_availability"]}' \
-D filingsift-analysis.headers \
-o filingsift-financing-analysis.xlsx \
https://api.filingsift.com/api/v1/analyst/exports/xlsximport json, os
from urllib.request import Request, urlopen
payload = json.dumps({"tickers": ["AAPL"], "periods": 8, "metrics": ["total_debt", "cash", "revolver_availability"]}).encode()
request = Request(
"https://api.filingsift.com/api/v1/analyst/exports/xlsx",
data=payload,
headers={"Authorization": "Bearer " + os.environ["FILINGSIFT_API_KEY"], "Content-Type": "application/json", "Accept": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
method="POST",
)
with urlopen(request, timeout=30) as response:
workbook = response.read()
print(response.headers["X-Export-Sha256"], len(workbook))
open("filingsift-financing-analysis.xlsx", "xb").write(workbook)import {writeFile} from "node:fs/promises";
const body = {tickers: ["AAPL"], periods: 8, metrics: ["total_debt", "cash", "revolver_availability"]};
const response = await fetch("https://api.filingsift.com/api/v1/analyst/exports/xlsx", {
method: "POST",
headers: {Authorization: "Bearer " + process.env.FILINGSIFT_API_KEY, "Content-Type": "application/json", Accept: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
body: JSON.stringify(body),
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error("Excel export failed: " + response.status);
const workbook = new Uint8Array(await response.arrayBuffer());
console.log(response.headers.get("x-export-sha256"), workbook.byteLength);
await writeFile("filingsift-financing-analysis.xlsx", workbook, {flag: "wx"});