SEC enforcement and rulemaking

Enforcement Actions

POSThttps://api.sec-api.io/sec-enforcement-actions

Search every SEC enforcement action published since 1997, including administrative proceedings, orders, complaints and civil actions. Each action is returned as structured JSON with the charged parties, the charges, penalty amounts, requested reliefs and the violated securities laws. The dataset holds more than 10,000 actions and is updated as the SEC publishes new ones.

Read the guide for this API →

Authentication

Send the API key either as a header or as a query parameter. The header is preferred; the query parameter exists for cases where a header cannot be set, such as opening a URL directly in a browser.

Authorization: required header

The API key on its own. Do not prefix it with Bearer or any other word.

Example Authorization: YOUR_API_KEY

token: optional query parameter

The API key, appended to the URL. Use this only when a header is not possible.

Request body

A JSON object. Content-Type must be application/json.

query: required string

The search expression in Lucene syntax, written as field:value. Every field listed under Searchable fields can be used, combined with AND, OR, NOT, ranges and wildcards.

Example entities.ticker:ADM

from: string, Maximum 10000

Index of the first result to return, used for pagination. Increment by the value of size to page through results.

Default "0"

size: string, Maximum 50

Number of enforcement actions to return in one response.

Default "50"

sort: array of object

Sort order. Each item maps one field to an order object, for example [{ "releasedAt": { "order": "desc" } }]. Sortable fields are releasedAt and penaltyAmounts.penaltyAmount.

Default [{ "releasedAt": { "order": "desc" } }]

order: string

Either asc or desc.

Searchable fields

Every field below can be used inside query. 27 fields are searchable, and they match the structure of the objects returned in the response.

FieldDescription
releaseNoSEC release number (e.g. "2011-279")
releasedAtPublication date / time (ISO 8601)
titleTitle of the enforcement action
summaryFree-text summary of the action
tagsTags — e.g. "bribery", "insider trading", "FCPA"
urlURL of the original SEC press release
entities.nameEntity name involved in the action
entities.typeEntity type — "individual", "company", or "other"

Response

A JSON object. Nested attributes are collapsed; expand one to see its fields.

total: object

How many enforcement actions matched the query.

value: integer

Number of matching enforcement actions.

relation: string

Either eq, meaning value is exact, or gte, meaning value is a floor.

data: array of object

The matching enforcement actions, at most size per response. One item represents one action published by the SEC.

id: string

System-internal unique identifier of the enforcement action.

releaseNo: string

SEC release number of the enforcement action, for example 2011-279.

releasedAt: string

Publication date and time of the action, formatted as yyyy-MM-ddTHH:mm:ssXXX, for example 2024-08-27T13:30:00-04:00. Records published before 2012 carry the date part only, for example 2011-12-29.

url: string

URL of the original SEC press release.

title: string

Title of the enforcement action.

summary: string

Short summary of the enforcement action.

tags: array of string

Tags describing the action, for example bribery, insider trading or crypto.

complaints: array of string

The complaints or charges filed in the action, one sentence per item.

violatedSections: array of string

Securities laws the defendants are charged with violating, for example Section 10(b) of the Securities Exchange Act of 1934 or Foreign Corrupt Practices Act (FCPA).

requestedRelief: array of string

The reliefs the SEC requested, for example disgorgement of profits, injunction or civil penalty.

parallelActionsTakenBy: array of string

Other agencies that took parallel actions, for example U.S. Department of Justice when criminal charges were brought.

hasAgreedToSettlement: boolean

True when the defendant agreed to a settlement.

hasAgreedToPayPenalty: boolean

True when the defendant agreed to pay a penalty.

investigationConductedBy: array of string

Persons or offices that conducted the investigation leading to the action.

litigationLedBy: array of string

Persons or offices that litigated the case.

Status codes

200Success. The response holds total and data.
400The request body could not be parsed, the Lucene expression in query is malformed, or size is above 50.
403The API key is missing, or it is not valid.
429Too many requests. Slow the request rate and retry.
500Server error. Retry, and report it if it persists.