Home / Guides / Enforcement
Enforcement

Track SEC administrative proceedings

Pull SEC administrative proceedings as JSON, page through history, and count releases by month and by the statute they cite.

The SEC brings many enforcement actions in its own administrative forum rather than in federal court: cease and desist orders, settled proceedings against firms and individuals, bars of accountants and investment professionals, and orders instituting proceedings. Each is published with a release number and a PDF. /v1/enforcement/administrative-proceedings returns the list as JSON, newest first, 100 releases per page.

Fields

FieldMeaning
publishedAtWhen the release was published
titleRespondents named in the release
releaseNoOne or more release numbers, comma separated
url and documentsThe order or notice, usually a PDF
fieldsExtra labels from the SEC page, such as the file number

The release number prefix tells you which statute the release is issued under: 33- Securities Act, 34- Exchange Act, IA- Investment Advisers Act, IC- Investment Company Act, and AAER- for accounting and auditing enforcement releases.

The code

import os
import re
from collections import Counter

import requests

BASE = "https://secfeedapi.com"
HEADERS = {"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"}

releases = []
for page in range(3):  # newest first, 100 releases per page
    r = requests.get(f"{BASE}/v1/enforcement/administrative-proceedings", params={"page": page}, headers=HEADERS, timeout=120)
    r.raise_for_status()
    releases += r.json()["releases"]
print(len(releases), "administrative proceedings from", releases[-1]["publishedAt"][:10], "to", releases[0]["publishedAt"][:10])

ACTS = {"33": "Securities Act", "34": "Exchange Act", "IA": "Advisers Act", "IC": "Investment Company Act", "AAER": "AAER (accounting)"}
acts = Counter()
for rel in releases:
    prefixes = {m.group(1) for m in re.finditer(r"\b(33|34|IA|IC|AAER)-\d+", rel.get("releaseNo") or "")}
    acts.update(prefixes)
print("\nStatutes cited in release numbers (one release can cite several):")
for p, n in acts.most_common():
    print(f"  {ACTS[p]:24} {n:4}")

print("\nReleases per month:")
for month, n in sorted(Counter(rel["publishedAt"][:7] for rel in releases).items()):
    print(f"  {month}  {n:4}")

print("\nLatest five:")
for rel in releases[:5]:
    print(f"  {rel['publishedAt'][:10]}  {rel['title'][:44]:44}  {rel['releaseNo']}")

Output

Run on 2026-10-13, three pages of history.

300 administrative proceedings from 2026-01-26 to 2026-10-09

Statutes cited in release numbers (one release can cite several):
  Exchange Act              275
  Advisers Act               37
  AAER (accounting)          18
  Securities Act              8
  Investment Company Act      5

Releases per month:
  2026-01     7
  2026-02    22
  2026-03    27
  2026-04    23
  2026-05    23
  2026-06    24
  2026-07    17
  2026-08    63
  2026-09    89
  2026-10     5

Latest five:
  2026-10-09  Jefferies LLC                                 34-106641
  2026-10-08  Carlos Lopez, CPA                             34-106633, AAER-4605
  2026-10-02  CityVest Capital Inc., CV Manager LLC, and A  IA-7021
  2026-10-02  J.P. Morgan Securities LLC And JPMorgan Chas  34-106569
  2026-10-01  Latch, Inc.                                   33-11450, 34-106568, AAER-4604

Reading the result

  • Almost every proceeding cites the Exchange Act. Advisers Act releases mark cases involving investment advisers.
  • Releases per month jump in August and September. The SEC's fiscal year ends on September 30, and published releases have tended to cluster near the end of it.
  • The titles name respondents, which can be companies or individuals. These are public SEC records; the release text is the authority on what was alleged or found.

Variations

  • Watch for new releases: poll page 0 on a schedule and alert on any releaseNo you have not seen.
  • Search by name: filter title for a firm, or use full-text search for filings that mention it.
  • Accounting cases only: use the AAER endpoint.

Next steps

More enforcement guides

Run this guide with your own key

500 free API calls a month. Every example on this page works on the free plan.

Get free API key →