Documentation Index
Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
Search SEC Enforcement Actions
The SEC publishes enforcement actions for securities fraud, insider trading, accounting violations, and other regulatory breaches. This tutorial shows how to search, filter, and analyze enforcement data programmatically.
Prerequisites
- An Omni Datastream API key (set as
OMNI_DATASTREAM_API_KEY)
- Basic familiarity with REST APIs
- (Optional) Python 3.8+ or Node.js 18+ for SDK examples
Step 1 — Search for recent enforcement actions
The /v1/events/enforcement endpoint returns enforcement actions with structured metadata. Start with a broad query to see the data shape.
curl
curl -H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
"https://api.secapi.ai/v1/events/enforcement?limit=5"
Python
from omni_datastream_py import OmniDatastreamClient
client = OmniDatastreamClient(api_key="your-api-key")
actions = client.events.enforcement(limit=5)
for action in actions.data:
print(f"{action.date} | {action.respondent_name} | {action.violation_type}")
JavaScript
import { OmniDatastreamClient } from "@omni-datastream/sdk-js";
const client = new OmniDatastreamClient({
apiKey: process.env.OMNI_DATASTREAM_API_KEY!,
});
const actions = await client.events.enforcement({ limit: 5 });
for (const action of actions.data) {
console.log(
`${action.date} | ${action.respondentName} | ${action.violationType}`
);
}
Expected output
2024-12-15 | Acme Corp | Securities Fraud
2024-12-12 | John Smith | Insider Trading
2024-12-10 | Global Advisors LLC | Investment Adviser Fraud
2024-12-08 | XYZ Capital | Market Manipulation
2024-12-05 | Jane Doe | Accounting Fraud
Step 2 — Filter by violation type
Narrow your search to specific violation categories. Common types include fraud, insider_trading, accounting, market_manipulation, and offering_violations.
curl
curl -H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
"https://api.secapi.ai/v1/events/enforcement?violation_type=insider_trading&limit=10"
Python
insider_cases = client.events.enforcement(
violation_type="insider_trading",
limit=10,
)
for case in insider_cases.data:
print(f"{case.date} | {case.respondent_name}")
print(f" Relief: {case.relief_sought}")
print(f" Penalty: ${case.penalty_amount:,.0f}" if case.penalty_amount else " Penalty: TBD")
print()
JavaScript
const insiderCases = await client.events.enforcement({
violationType: "insider_trading",
limit: 10,
});
for (const c of insiderCases.data) {
console.log(`${c.date} | ${c.respondentName}`);
console.log(` Relief: ${c.reliefSought}`);
console.log(
` Penalty: ${c.penaltyAmount ? `$${c.penaltyAmount.toLocaleString()}` : "TBD"}`
);
}
Step 3 — Filter by date range
Search enforcement actions within a specific time window.
curl
curl -H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
"https://api.secapi.ai/v1/events/enforcement?date_from=2024-01-01&date_to=2024-12-31&limit=20"
Python
annual_actions = client.events.enforcement(
date_from="2024-01-01",
date_to="2024-12-31",
limit=20,
)
# Group by violation type
from collections import Counter
types = Counter(a.violation_type for a in annual_actions.data)
print("2024 Enforcement Breakdown:")
for vtype, count in types.most_common():
print(f" {vtype}: {count}")
JavaScript
const annualActions = await client.events.enforcement({
dateFrom: "2024-01-01",
dateTo: "2024-12-31",
limit: 20,
});
const types: Record<string, number> = {};
for (const a of annualActions.data) {
types[a.violationType] = (types[a.violationType] || 0) + 1;
}
console.log("2024 Enforcement Breakdown:");
for (const [type, count] of Object.entries(types).sort((a, b) => b[1] - a[1])) {
console.log(` ${type}: ${count}`);
}
Expected output
2024 Enforcement Breakdown:
Securities Fraud: 47
Insider Trading: 31
Investment Adviser Fraud: 28
Accounting Fraud: 19
Market Manipulation: 14
Next steps
- Set up alerts: Use webhooks to get notified when new enforcement actions are published.
- Cross-reference with filings: Match enforcement respondents against company tickers to assess regulatory risk in your portfolio.
- Analyze trends: Track enforcement volume and penalty amounts over time to identify regulatory focus areas.
See the API Reference for the full enforcement endpoint specification.