Skip to content
Developer API

Filing Intelligence API

Programmatic access to analyzed SEC filings, insider trades, and company data for 7,600+ US small-cap stocks. RESTful JSON endpoints with simple API key authentication.

Authentication

All API requests require an API key sent as a Bearer token in the Authorization header. API access is available on the Pro plan. You can generate and manage API keys from your dashboard.

curl -H "Authorization: Bearer your_api_key_here" \
  https://brefyr.com/api/v1/filings

Rate Limits

The Pro plan includes 1,000 API calls per day. Rate limit headers are included in every response:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 997
X-RateLimit-Reset: 1700000000

If you exceed your limit, requests return 429 Too Many Requests until the daily reset at midnight UTC.

Endpoints

GET /api/v1/filings
Search and filter analyzed SEC filings. Returns paginated results with summaries and significance scores.

Parameters

tickerstringOptionalFilter by stock ticker (e.g. AAPL)
typestringOptionalFiling type filter (e.g. 10-K, 8-K, Form 4)
min_significancenumberOptionalMinimum significance score, 1-10
daysnumberOptionalLookback period in days (default: 30)
limitnumberOptionalResults per page (default: 50, max: 100)
offsetnumberOptionalPagination offset (default: 0)

Response

{
  "data": [...],
  "meta": {
    "count": 42,
    "offset": 0,
    "limit": 50,
    "days": 30
  }
}
GET /api/v1/companies
Search companies by sector or name. Returns company profiles with ticker, sector, and filing counts.

Parameters

sectorstringOptionalFilter by sector (e.g. Technology, Healthcare)
searchstringOptionalSearch by company name or ticker
limitnumberOptionalResults per page (default: 100, max: 500)
offsetnumberOptionalPagination offset (default: 0)

Response

{
  "data": [...],
  "meta": {
    "count": 100,
    "offset": 0,
    "limit": 100
  }
}
GET /api/v1/insider-trades
Retrieve insider buying and selling activity parsed from Form 4 filings.

Parameters

tickerstringOptionalFilter by stock ticker
daysnumberOptionalLookback period in days (default: 30)
limitnumberOptionalResults per page (default: 50, max: 100)
offsetnumberOptionalPagination offset (default: 0)

Response

{
  "data": [...],
  "meta": {
    "count": 58,
    "offset": 0,
    "limit": 50,
    "days": 30
  }
}
GET /api/v1/export
Export filing data as CSV. Filter by ticker or filing type. Pro plan only.

Parameters

tickerstringOptionalFilter by stock ticker
daysnumberOptionalLookback period in days (default: 90)
typestringOptionalFiling type filter (e.g. 10-K, 8-K)

Response

Returns a downloadable CSV file. The Content-Disposition header is set for file download.

Code Examples

cURL

# Fetch high-significance filings for a stock
curl -H "Authorization: Bearer your_api_key_here" \
  "https://brefyr.com/api/v1/filings?ticker=AAPL&min_significance=7&days=30"

# Search companies by sector
curl -H "Authorization: Bearer your_api_key_here" \
  "https://brefyr.com/api/v1/companies?sector=Technology&limit=10"

# Export filing data as CSV
curl -H "Authorization: Bearer your_api_key_here" \
  "https://brefyr.com/api/v1/export?ticker=AAPL&days=90" \
  -o filings.csv

Python

import requests

API_KEY = "your_api_key_here"
BASE_URL = "https://brefyr.com/api/v1"

headers = {"Authorization": f"Bearer {API_KEY}"}

# Get recent high-significance filings
response = requests.get(
    f"{BASE_URL}/filings",
    headers=headers,
    params={
        "ticker": "AAPL",
        "min_significance": 7,
        "days": 30,
    },
)
data = response.json()

for filing in data["data"]:
    print(f"{filing['ticker']} — {filing['filing_type']} — Score: {filing['significance_score']}")
    print(f"  {filing['one_line_summary']}")
    print()

JavaScript

const API_KEY = "your_api_key_here";
const BASE_URL = "https://brefyr.com/api/v1";

async function getFilings(ticker, days = 30) {
  const params = new URLSearchParams({
    ticker,
    days: String(days),
    min_significance: "5",
  });

  const response = await fetch(`${BASE_URL}/filings?${params}`, {
    headers: { "Authorization": `Bearer ${API_KEY}` },
  });

  if (!response.ok) {
    throw new Error(`API error: ${response.status}`);
  }

  return response.json();
}

const data = await getFilings("AAPL");
console.log(`Found ${data.meta.count} filings`);

Response Format

All endpoints return JSON with consistent structure. Filing objects include computed fields like significance_score and one_line_summary.

{
  "data": [
    {
      "id": "fil_abc123",
      "ticker": "AAPL",
      "company_name": "Apple Inc.",
      "filing_type": "10-K",
      "filed_date": "2025-10-30",
      "significance_score": 8,
      "one_line_summary": "Annual report reveals 12% revenue growth driven by services segment, with new risk disclosures around AI regulatory compliance.",
      "ai_summary_prose": "Apple's fiscal year 2025 10-K filing shows total revenue of $412B...",
      "has_earnings_data": true,
      "insider_data": null,
      "raw_url": "https://www.sec.gov/Archives/edgar/data/..."
    }
  ],
  "meta": {
    "count": 50,
    "offset": 0,
    "limit": 50,
    "days": 30
  }
}

Error responses include an error field with a human-readable message:

{
  "error": "Invalid or missing API key"
}

Ready to integrate?

API access is included with the Pro plan. Start your free trial and generate your first API key in minutes.