In today’s data-saturated financial markets, the edge doesn’t come from access—it comes from insight. Modern investment teams need more than spreadsheets and filings; they need intelligence that moves as fast as the market. The Captide API bridges this gap, transforming vast troves of financial documents into structured, AI-powered insights. Whether you’re building internal tools, automating fundamental analysis, or enhancing equity models, Captide enables a smarter, faster approach to investment research.
Captide is an AI-powered financial modeling and company data API that allows users to query and extract intelligence from over 750,000 financial documents, including SEC filings and earnings call transcripts. By leveraging large language models (LLMs), Captide transforms unstructured data into structured insights, facilitating more efficient and accurate investment analysis.
Captide is designed for quants and developers who need to incorporate rich financial data and insights into their models and applications. Here are five major use cases where Captide’s financial disclosure intelligence API can add value:
Now, let’s dive into a tutorial on integrating the Captide API into your application. We’ll go through the basics of authentication, making your first API call, and handling the data in your code. The following steps will help you set up Captide API integration quickly:
Begin by obtaining a Captide API key by contacting the Captide team. Once you have your key, you’ll use it to authenticate all API requests. Captide uses API keys via an HTTP header for authentication. In practice, you include your key as a header (using an X-API-Key
header on each request). Here’s a quick test using cURL to verify your key and connectivity:
curl -L 'https://rest-api.captide.co/api/v1/rag/chunks' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"query": "What are the key risks mentioned in the latest 10-K of Apple?"}'
In this cURL command, we call the /rag/chunks
endpoint with a sample query. The X_API_KEY
header carries our API key (replace YOUR_API_KEY
with your actual key). If your key is valid, the API will return a JSON response (here, it would return one or more document snippets related to Apple’s risk factors).
With authentication set up, you can start querying Captide’s endpoints. Captide’s REST API offers multiple endpoints; two useful ones are:
Let’s start with a simple example using the document snippets endpoint to query filings via Python. This endpoint returns the exact source text from company disclosures that match your query—perfect for surfacing facts in their original context. In the snippet below, we send a POST
request to https://api.captide.co/v1/rag/chunks
, passing our query in the request body. You can also include optional filters to narrow your search by company, date, or document type—we’ll cover that shortly. Authentication is handled via an API key passed in the request header.
import os
import json
import requests
API_KEY = os.getenv("CAPTIDE_API_KEY") # assume your key is stored in an environment variable
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = json.dumps({"query": "What are the key risks mentioned in the latest 10-K of Apple?"})
response = requests.request("POST", "https://rest-api.captide.co/api/v1/rag/chunks", data=payload, headers=headers)
print(response.text)
The response will be a JSON object containing an array of snippet results. Each snippet includes:
Below is an example of what a typical response looks like from the request we made earlier.
{
"source_chunks": [
{
"text": "The Company is committed to protecting its team members everywhere it operates. The Company identifies potential workplace risks in order to develop measures to mitigate possible hazards. The Company supports employees with general safety, security and crisis management training, and by putting specific programs in place for those working in potentially high-hazard environments. Additionally, the Company works to protect the safety and security of its team members, visitors and customers through its global security team. Apple Inc. | 2024 Form 10-K | 4 Available Information The Company’s Annual Reports on Form 10-K, Quarterly Reports on Form 10-Q, Current Reports on Form 8-K, and amendments to reports filed pursuant to Sections 13(a) and 15(d) of the Securities Exchange Act of 1934, as amended (the “Exchange Act”), are filed with the U.S. Securities and Exchange Commission (the “SEC”). Such reports and other information filed by the Company with the SEC are available free of charge at investor.apple.com/investor-relations/sec-filings/default.aspx when such reports are available on the SEC’s website. The Company periodically provides certain information for investors on its corporate website, www.apple.com, and its investor relations website, investor.apple.com. This includes press releases and other information about financial performance, information on environmental, social and governance matters, and details related to the Company’s annual meeting of shareholders. The information contained on the websites referenced in this Form 10-K is not incorporated by reference into this filing. Further, the Company’s references to website URLs are intended to be inactive textual references only. Item 1A. Risk Factors The Company’s business, reputation, results of operations, financial condition and stock price can be affected by a number of factors, whether currently known or unknown, including those described below. When any one or more of these risks materialize from time to time, the Company’s business, reputation, results of operations, financial condition and stock price can be materially and adversely affected. Because of the following factors, as well as other factors affecting the Company’s results of operations and financial condition, past financial performance should not be considered to be a reliable indicator of future performance, and investors should not use historical trends to anticipate results or trends in future periods. This discussion of risk factors contains forward-looking statements. This section should be read in conjunction with Part II, Item 7, “Management’s Discussion and Analysis of Financial Condition and Results of Operations” and the consolidated financial statements and accompanying notes in Part II, Item 8, “Financial Statements and Supplementary Data” of this Form 10-K. Macroeconomic and Industry Risks",
"text_with_ids": "<text_content id=[#235ded76]>\nThe Company’s retail operations are subject to many factors that pose risks and uncertainties and could adversely impact the Company’s business, results of operations and financial condition, including macroeconomic factors that could have an adverse effect on general retail activity. Other factors include the Company’s ability to: manage costs associated with retail store construction and operation; manage relationships with existing retail partners; manage costs associated with fluctuations in the value of retail inventory; and obtain and renew leases in quality retail locations at a reasonable cost. Apple Inc. | 2024 Form 10-K | 12 Legal and Regulatory Compliance Risks The Company’s business, results of operations and financial condition could be adversely impacted by unfavorable results of legal proceedings or government investigations. The Company is subject to various claims, legal proceedings and government investigations that have arisen in the ordinary course of business and have not yet been fully resolved, and new matters may arise in the future. In addition, agreements entered into by the Company sometimes include indemnification provisions which can subject the Company to costs and damages in the event of a claim against an indemnified third party. The number of claims, legal proceedings and government investigations involving the Company, and the alleged magnitude of such claims, proceedings and government investigations, has generally increased over time and may continue to increase. The Company has faced and continues to face a significant number of patent claims relating to its cellular-enabled products, and new claims may arise in the future, including as a result of new legal or regulatory frameworks. For example, technology and other patent-holding companies frequently assert their patents and seek royalties and often enter into litigation based on allegations of patent infringement or other violations of intellectual property rights. The Company is vigorously defending infringement actions in courts in several U.S. jurisdictions, as well as internationally in various countries. The plaintiffs in these actions frequently seek broad injunctive relief and substantial damages. Regardless of the merit of particular claims, defending against litigation or responding to government investigations can be expensive, time-consuming and disruptive to the Company’s operations. In recognition of these considerations, the Company may enter into agreements or other arrangements to settle litigation and resolve such challenges. There can be no assurance such agreements can be obtained on acceptable terms or that litigation will not occur. These agreements can also significantly increase the Company’s cost of sales and operating expenses and require the Company to change its business practices and limit the Company’s ability to offer certain products and services.\n</text_content>",
"metadata": {
"source_type": "10-K",
"ticker": "AAPL",
"date": "2024-11-01",
"fiscal_period": "Q4 2024",
"document_id": "10324f22-c6e0-4825-8f8f-2b1f78e01721",
"additional_kwargs": {
"similarity_score": 0.7881485819816589,
"filing_date": "2024-11-01",
"sequence_number": 5,
"queries": [
"Risk factors disclosed by Apple Inc. in the 2024 10-K filing, including operational, financial, market, and regulatory risks affecting the company’s business and results of operations."
]
},
"chunk_id": "608f38f5-6b71-424d-8eef-77829e10dfb5",
"source_link": "https://rest-api.captide.co/api/v1/document?sourceType=10-K&documentId=10324f22-c6e0-4825-8f8f-2b1f78e01721"
}
}
// Additional chunks are omitted here for brevity, but follow the same structure.
]
}
If you’d prefer a synthesized answer instead of raw excerpts, you can use the AI agent response endpoint. This lets you ask natural-language questions—like “Summarize Snapchat’s convertible debt balance”—and receive a coherent answer generated directly from primary source documents. Each fact is grounded in a citation, with links back to the exact filing excerpts used to formulate the response. This endpoint is especially useful when you want the API to handle interpretation for you. It also supports streaming responses and includes a mapping between answer IDs and their corresponding sources—ideal for building conversational interfaces with source citations.
import os
import json
import requests
API_KEY = os.getenv("CAPTIDE_API_KEY") # assume your key is stored in an environment variable
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = json.dumps({"query": "Summarize Snapchat's convertible debt balance"})
response = requests.request("POST", "https://rest-api.captide.co/api/v1/rag/agent-query-stream", data=payload, headers=headers)
print(response.text)
A successful response from the agent endpoint includes several key components:
id_mapping
: Connects each part of the answer to its original source snippet, so you can trace every fact back to its document.markdown_chunks
: Delivers the answer in segments as it's being generated—useful for streaming in real-time interfaces.full_answer
: A complete, synthesized response returned in one block, if you're not streaming.done
: A flag indicating that the response has finished generating.Together, these elements give you both flexibility and transparency. Below is an example of the kind of response you'd receive from the previous request.
// START OF ID MAPPING
data: {
"type": "id_mapping",
"mapping": {
"#9cb8dcea": {
"sourceLink": "https://rest-api.captide.co/api/v1/document?sourceType=10-Q&documentId=780e095f-f1e6-49ff-8636-85a09ab12cb7",
"sourceMetadata": {
"sourceType": "10-Q",
"ticker": "SNAP",
"date": "2025-04-30",
"fiscalPeriod": null,
"documentId": "780e095f-f1e6-49ff-8636-85a09ab12cb7",
"additionalKwargs": {
"similarityScore": 0.5542070801011267,
"filingDate": "2025-04-30",
"sequenceNumber": 57
},
"chunkId": "b8a9ce03-1d8b-49b0-82c3-447c1a5d5d26",
"sourceLink": "https://rest-api.captide.co/api/v1/document?sourceType=10-Q&documentId=780e095f-f1e6-49ff-8636-85a09ab12cb7"
}
},
// Additional document excerpts ommited here for brevity
}
}
// START OF ANSWER STREAM
data: {
"type":"markdown_chunk",
"content":"A"
}
data: {
"type":"markdown_chunk",
"content":"s "
}
data: {
"type":"markdown_chunk",
"content":"of"
}
// Additional stream chunks ommited here for brevity
// START OF FULL ANSWER
data: {
"type": "full_answer",
"content": "As of March 31, 2025, Snap Inc. (“Snapchat”) had the following outstanding convertible debt (“Convertible Notes”):\n\n- **2025 Notes:** $36.2 million principal, maturing May 1, 2025\n- **2026 Notes:** $204.5 million principal, maturing August 1, 2026\n- **2027 Notes:** $352.6 million principal, maturing May 1, 2027\n- **2028 Notes:** $700.0 million principal, maturing March 1, 2028\n- **2030 Notes:** $750.0 million principal, maturing May 1, 2030\n\nThe total principal amount of convertible notes outstanding was **$2.04 billion** as of March 31, 2025. After accounting for unamortized debt issuance costs and discounts/premiums, the net carrying amount was **$2.01 billion** [#78e71523].\n\nKey terms and features:\n- The Convertible Notes are unsecured and unsubordinated obligations.\n- Interest rates are low, ranging from 0.125% to 0.75% (stated), with effective interest rates between 0.19% and 1.21%, except for the 2027 Notes, which do not bear regular interest [#404d9fb6].\n- The notes are convertible into cash, shares of Snap’s Class A common stock, or a combination, at Snap’s election. Initial conversion prices range from $21.68 to $89.25 per share, depending on the series [#063a8101][#404d9fb6].\n- As of March 31, 2025, the if-converted value of the Convertible Notes did not exceed the principal amount, and most series were not eligible for optional conversion in Q2 2025, except for the 2025 Notes [#063a8101].\n- Snap repurchased significant portions of its 2025 and 2026 Notes during 2024 and Q1 2025, reducing the outstanding balances of these series [#f84c2ef3][#78e71523].\n- No sinking fund is provided, meaning Snap is not required to redeem or retire the notes periodically [#063a8101].\n\nIn summary, Snap’s convertible debt balance as of March 31, 2025, was **$2.04 billion principal outstanding**, with maturities ranging from 2025 to 2030, and the company has actively reduced its near-term convertible debt through repurchases [#78e71523][#063a8101][#f84c2ef3]."
}
// TASK COMPLETE CONFIRMATION
data: {
"type":"done"
}
If you only need the complete answer and want to ignore the additional data, you can easily filter out the extra fields. For example:
import os
import json
import requests
API_KEY = os.getenv("CAPTIDE_API_KEY") # assume your key is stored in an environment variable
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = json.dumps({"query": "What are the key risks mentioned in the latest 10-K of Apple?"})
response = requests.request("POST", "https://rest-api.captide.co/api/v1/rag/agent-query-stream", data=payload, headers=headers)
for line in response.iter_lines():
if line and line.startswith(b"data: "):
try:
json_data = json.loads(line[6:].decode("utf-8")) # strip 'data: '
if json_data.get("type") == "full_answer":
print(json.dumps(json_data, indent=2))
except json.JSONDecodeError:
continue
To refine your queries and extract more targeted insights from financial documents, the Captide API supports several optional parameters:
tickers
: A list of ticker symbols to filter documents by. For example, ["AAPL", "MSFT"]
. You can check the /companies
endpoint for available tickers.sourceType
: Specifies the type(s) of source documents to include. Available options include: 10-K
, 10-Q
, 8-K
, 20-F
, 40-F
, 6-K
, transcript
, DEF 14A
, DEFM14A
, DEF 14C
, DEFM14C
. This can be a single string or a list of strings.startDate
and endDate
: Define the date range for document filtering in the format YYYY-MM-DD
. These parameters help narrow down the filings to a specific time frame.Suppose you're interested in analyzing the 8-K filings of Nvidia (ticker: NVDA
) and AMD (ticker: AMD
) from the past month. You can construct a query using the additional parameters as follows:
import os
import requests
import datetime
API_KEY = os.getenv("CAPTIDE_API_KEY") # assume your key is stored in an environment variable
end_date = datetime.date.today()
start_date = end_date - datetime.timedelta(days=30)
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = {
"query": "Summarize the key events reported in the latest 8-K filings.",
"tickers": ["NVDA", "AMD"],
"sourceType": ["8-K"],
"startDate": str(start_date),
"endDate": str(end_date)
}
response = requests.post(
"https://rest-api.captide.co/api/v1/rag/agent-query-stream",
json=payload,
headers=headers
)
print(response.text)
With just a few steps, you’ve authenticated, made API calls, and seen how to extract and synthesize insights from company filings using Captide. Whether you’re building for analysts, clients, or internal teams, Captide gives you the tools to surface insights faster, with less friction. For more advanced features, be sure to explore the full documentation.
Get in touch with the Captide team to get an API key and start experimenting today. Turn financial disclosure intelligence into your competitive advantage!