API Endpoints
All endpoints require the x-api-key header. See Authentication.
Deals
List Deals
GET /deals
Returns a paginated list of your deals, ordered by creation date (newest first).
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 25 | Number of deals to return (max 100) |
nextToken | string | — | Pagination token from a previous response |
Response
{
"items": [
{
"dealId": "abc-123",
"companyName": "Acme Corp",
"status": "researching",
"description": "Potential acquisition target",
"documents": [],
"relatedFilingIds": [],
"createdAt": "2026-02-20T10:00:00Z",
"updatedAt": "2026-02-20T10:00:00Z"
}
],
"nextToken": null
}
Example
# List first 10 deals
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/deals?limit=10" | jq
Get a Deal
GET /deals/{dealId}
Returns a single deal by ID. You can only access deals you own.
Response
{
"dealId": "abc-123",
"companyName": "Acme Corp",
"status": "researching",
"description": "Potential acquisition target",
"documents": [],
"relatedFilingIds": [],
"createdAt": "2026-02-20T10:00:00Z",
"updatedAt": "2026-02-20T10:00:00Z"
}
Errors
403— Deal exists but you don't own it404— Deal not found
Example
curl -s -H "x-api-key: sa_your_key" \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/deals/abc-123 | jq
Create a Deal
POST /deals
Creates a new deal. The deal is automatically associated with your user account.
Request Body
{
"companyName": "Acme Corp",
"status": "researching",
"description": "Potential acquisition target"
}
Required Fields
| Field | Type | Description |
|---|---|---|
companyName | string | Company name (required) |
status | string | One of: researching, active, monitoring, closed |
Optional Fields
| Field | Type | Description |
|---|---|---|
description | string | Deal description or notes |
Response (201 Created)
{
"dealId": "generated-uuid",
"companyName": "Acme Corp",
"status": "researching",
"description": "Potential acquisition target",
"userId": "your-user-id",
"documents": [],
"relatedFilingIds": [],
"createdAt": "2026-02-25T10:00:00Z",
"updatedAt": "2026-02-25T10:00:00Z"
}
Example
curl -s -X POST \
-H "x-api-key: sa_your_key" \
-H "Content-Type: application/json" \
-d '{"companyName": "Acme Corp", "status": "researching"}' \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/deals | jq
Update a Deal
PUT /deals/{dealId}
Updates an existing deal. You can only update deals you own. Only include the fields you want to change.
Request Body
{
"companyName": "Acme Corp (Updated)",
"status": "active",
"description": "Moving to active phase"
}
Updatable Fields
| Field | Type | Description |
|---|---|---|
companyName | string | Company name |
status | string | Deal status |
description | string | Deal description |
Response
Returns the updated deal object.
Errors
404— Deal not found or you don't own it
Example
curl -s -X PUT \
-H "x-api-key: sa_your_key" \
-H "Content-Type: application/json" \
-d '{"status": "active"}' \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/deals/abc-123 | jq
Filings
Access to SEC 8-K filings, Form 4 insider purchases, and Japan filings. Supports read operations (list, get) and write operations (archive, favorite).
Common Query Parameters
All filing list endpoints support these query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Number of filings to return (max 100) |
nextToken | string | — | Pagination token from a previous response |
searchTerm | string | — | Text search across company name, analysis, etc. |
createdAfter | string | 30 days ago | Start date filter (YYYY-MM-DD) |
createdBefore | string | today | End date filter (YYYY-MM-DD) |
List SEC Filings
GET /filings/sec
Returns SEC 8-K filings in reverse chronological order.
Response
{
"items": [
{
"filingId": "abc-123",
"companyName": "Acme Corp",
"formType": "8-K",
"filedDate": "2026-02-20",
"description": "Entry into a Material Agreement",
"txtUrl": "https://www.sec.gov/Archives/...",
"htmlUrl": "https://www.sec.gov/Archives/...",
"analysis": "AI-generated analysis of the filing...",
"analysisDate": "2026-02-20T12:00:00Z",
"status": "analyzed",
"createdAt": "2026-02-20T10:00:00Z",
"aiTags": [{ "name": "M&A", "color": "blue-500" }]
}
],
"nextToken": null
}
Example
# List recent SEC filings
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/sec?limit=10" | jq
# Search for a company
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/sec?searchTerm=Apple" | jq
# Filter by date range
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/sec?createdAfter=2026-02-01&createdBefore=2026-02-28" | jq
Get a SEC Filing
GET /filings/sec/{filingId}
Returns a single SEC filing by ID.
Example
curl -s -H "x-api-key: sa_your_key" \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/sec/abc-123 | jq
List Form 4 Filings (Insider Purchases)
GET /filings/form4
Returns Form 4 insider purchase filings in reverse chronological order.
Response
{
"items": [
{
"filingId": "f4-123",
"issuerName": "Acme Corp",
"issuerTicker": "ACME",
"ownerName": "Jane Smith",
"ownerTitle": "CEO",
"isOfficer": true,
"isDirector": false,
"transactionType": "Purchase",
"transactionDate": "2026-02-19",
"sharesTransacted": 10000,
"pricePerShare": 25.50,
"totalValue": 255000,
"sharesOwnedAfter": 50000,
"filingDate": "2026-02-20",
"htmlUrl": "https://www.sec.gov/cgi-bin/...",
"analysis": "Significant insider purchase...",
"analysisDate": "2026-02-20T12:00:00Z",
"priceAtDiscovery": 24.80,
"priceAtDiscoveryDate": "2026-02-20T10:00:00Z",
"status": "analyzed",
"createdAt": "2026-02-20T10:00:00Z"
}
],
"nextToken": null
}
Example
# List insider purchases
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/form4?limit=20" | jq
# Search by insider or company name
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/form4?searchTerm=CEO" | jq
Get a Form 4 Filing
GET /filings/form4/{filingId}
Returns a single Form 4 filing by ID.
Example
curl -s -H "x-api-key: sa_your_key" \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/form4/f4-123 | jq
List Japan Filings
GET /filings/japan
Returns Japanese company filings from TDNET in reverse chronological order.
Response
{
"items": [
{
"filingId": "jp-123",
"companyCode": "7203",
"companyName": "トヨタ自動車",
"companyNameEnglish": "Toyota Motor",
"filingDate": "2026-02-20",
"filingTime": "15:30:00",
"documentTitle": "決算短信",
"documentTitleEnglish": "Earnings Report",
"pdfUrl": "https://...",
"summary": "AI-generated summary...",
"stockExchange": "Tokyo Stock Exchange",
"tdnetDocumentId": "TD12345",
"status": "analyzed",
"tags": ["earnings"],
"createdAt": "2026-02-20T10:00:00Z",
"updatedAt": "2026-02-20T12:00:00Z"
}
],
"nextToken": null
}
Example
# List Japan filings
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/japan?limit=20" | jq
# Search by company name (Japanese or English)
curl -s -H "x-api-key: sa_your_key" \
"https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/japan?searchTerm=Toyota" | jq
Get a Japan Filing
GET /filings/japan/{filingId}
Returns a single Japan filing by ID.
Example
curl -s -H "x-api-key: sa_your_key" \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/japan/jp-123 | jq
Filing Preferences
Archive or favorite filings across all three filing types.
Set Filing Preferences
POST /filings/sec/{filingId}/preferences
POST /filings/form4/{filingId}/preferences
POST /filings/japan/{filingId}/preferences
Sets archive and/or favorite status on a filing. At least one of archived or favorited must be provided.
Request Body
{
"archived": true,
"favorited": false
}
| Field | Type | Description |
|---|---|---|
archived | boolean | Set archive status (optional) |
favorited | boolean | Set favorite status (optional) |
Response
{
"userId": "your-user-id",
"filingId": "abc-123",
"archived": true,
"favorited": false,
"createdAt": "2026-02-25T10:00:00Z",
"updatedAt": "2026-02-25T10:00:00Z"
}
Errors
400— Missing body or neitherarchivednorfavoritedprovided401— Invalid or missing API key
Examples
# Archive a SEC filing
curl -s -X POST \
-H "x-api-key: sa_your_key" \
-H "Content-Type: application/json" \
-d '{"archived": true}' \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/sec/abc-123/preferences | jq
# Favorite a Form 4 filing
curl -s -X POST \
-H "x-api-key: sa_your_key" \
-H "Content-Type: application/json" \
-d '{"favorited": true}' \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/form4/f4-123/preferences | jq
# Archive and favorite a Japan filing
curl -s -X POST \
-H "x-api-key: sa_your_key" \
-H "Content-Type: application/json" \
-d '{"archived": true, "favorited": true}' \
https://kc9zu8cyjf.execute-api.us-east-1.amazonaws.com/v1/filings/japan/jp-123/preferences | jq