Home / APIs / Governance
DEF 14A

Compliance Signals API: regulatory red flags disclosed in proxies

Regulatory signals from the proxy: filer status, listings, late Section 16 reports, auditor changes, clawback and trading policies, listing deficiencies.

Newfilling from 2020 onward
curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/compliance-signals?ticker=AAPL"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/compliance-signals",
    params={'ticker': 'AAPL'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
)
print(r.json())

Overview

Proxies carry small disclosures that matter: delinquent Section 16 reports by insiders, a change of auditor and whether there were disagreements, an exchange notice for a low bid price, a reverse split proposal, whether a clawback recovery was required. They are easy to miss in a 100 page document.

The Compliance Signals API returns them as fields, one record per proxy. Each late filer comes back with name, position and number of late reports. Each listing deficiency comes back with the exchange, rule, notice date, cure deadline and status.

What you get

Built for developers who would rather not parse EDGAR.

Late Section 16 reports

Each late filer with position, late reports, late transactions and form types.

Auditor changes

Former and new auditor, who initiated it, dates, disagreements and reportable events.

Listing deficiencies

Exchange notices by type, rule, cure deadline and current status.

Policy disclosures

Clawback recovery analysis, insider trading policy and option grant timing.

Endpoints

Authenticate with Authorization: Bearer YOUR_KEY. Responses are JSON.

GET|POST/v1/compliance-signalsReference →

Regulatory red flags in a proxy: cover page status, filer status, listings, late Section 16 reports, auditor changes, policy disclosures and listing deficiencies.

Parameters: ticker | cik, accessionNo, startDate, endDate, data.<path>=value, from, size (max 50)

Response fields

The main fields in every result. The raw filing data is always one level down.

FieldMeaning
accessionNo, filedAt, entitiesThe proxy statement and the company.
coverPage.filingStatus, amendmentNoPreliminary, definitive or additional materials.
issuerStatus.smallerReportingCompany, emergingGrowthCompany, controlledCompanyFiler status.
listings[].ticker, exchangeWhere each class trades.
section16.reportingStatus, lateFilers[].name, lateReportsLate insider reports.
auditorChange.formerAuditor, newAuditor, disagreementsA change of auditor.
clawbackPolicy.recoveryAnalysis, erroneouslyAwardedUSDWhether a clawback recovery was required.
insiderTradingPolicy.adopted, grantTiming.mnpiConsideredTrading and grant timing policies.
reverseSplitProposal, listingDeficiencies[].deficiencyType, statusListing pressure.

Use cases

Datasets behind this API

The SEC forms this API reads, with live filing counts.

FAQ

How far back does it go?

These datasets launched in October 2026 and are being filled newest first, starting with filings from 2020 onward. The live counter on this page shows what is loaded today. Older years are added after that.

How is the data produced?

Each record is extracted from the filing text by an AI model and validated against a fixed schema before it is published; see our AI Disclosure. A value the filing does not state is returned as null, never guessed.

Are 8-K auditor changes included?

This API reads the proxy. Auditor changes reported on 8-K Item 4.01 are in the Auditor Change Feed.

Try the Compliance Signals API free

125 free API calls to start. No sales call.

Get free API key →