# SEC Administrative Proceedings Database > Access all SEC administrative proceedings featuring over 18,000 releases from 1995 to present. Search the proceedings database by release number, type of order, involved parties, violated securities laws, and more. Real-time updates provide structured JSON data for in-depth analysis of SEC proceedings. Source: https://sec-api.io/docs/sec-administrative-proceedings-database-api The SEC Administrative Proceedings Database API provides access to structured data of over 18,000 administrative proceedings from 1995 to present. The API allows searching proceedings by release number, type of order, involved entities, violated securities laws, and more. Structured data is extracted from newly published proceedings and made available in real-time as soon as they are released by the SEC. Data sample · Administrative proceedings | Released | Release no. | Respondents | Order | Tickers | Tags | Settled | Pays penalty | Penalties total | Violated sections | Orders | Summary | File no. | Order PDF | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 2025-02-04 | 33-11364; 34-102332; AAER-4562 | Karen J. Smith, CPA | ORDER INSTITUTING PUBLIC ADMINISTRATIVE PROCEEDINGS PURSUANT TO RULE 102(e) OF THE COMMISSION’S RULES OF PRACTICE, MAKING FINDINGS, AND IMPOSING REMEDIAL SANCTIONS | ARA | accounting fraud; financial misreporting | Yes | Yes | $95,455.41 | Sections 17(a)(2) and (3) of the Securities Act of 1933; Section 13(b)(5) of the Securities Exchange Act of 1934; Rules 13b2-1 and 13b2-2 | Smith is suspended from appearing or practicing before the Commission as an accountant.; Smith may request reinstatement after one year by submitting an application to the Office of the Chief Accountant. | The SEC has instituted public administrative proceedings against Karen J. Smith, CPA, for engaging in fraudulent accounting practices at American Renal Associates Holdings, Inc., resulting in a suspension from practicing before the Commission and financial penalties. | 3-22448 | [Open](https://www.sec.gov/files/litigation/admin/2025/33-11364.pdf) | | 2025-01-29 | 33-11363; 34-102306; AAER-4561 | Jason M. Boucher, CPA | ORDER INSTITUTING PUBLIC ADMINISTRATIVE PROCEEDINGS PURSUANT TO RULE 102(e) OF THE COMMISSION’S RULES OF PRACTICE, MAKING FINDINGS, AND IMPOSING REMEDIAL SANCTIONS | ARA | accounting fraud; financial misreporting | Yes | Yes | $107,952.00 | Sections 17(a)(2) and (3) of the Securities Act of 1933; Sections 10(b) and 13(b)(5) of the Securities Exchange Act of 1934; Rules 10b-5, 13b2-1, 13b2-2(a) and 13a-14 | Boucher is suspended from appearing or practicing before the Commission as an accountant.; Boucher may request reinstatement after two years by submitting an application to the Office of the Chief Accountant. | The SEC has instituted public administrative proceedings against Jason M. Boucher, CPA, for engaging in fraudulent accounting practices at American Renal Associates Holdings, Inc., resulting in a suspension and financial penalties. | 3-22446 | [Open](https://www.sec.gov/files/litigation/admin/2025/33-11363.pdf) | | 2025-01-17 | 33-11354; AAER-4556 | GrubMarket, Inc. | ORDER INSTITUTING CEASE-AND-DESIST PROCEEDINGS PURSUANT TO SECTION 8A OF THE SECURITIES ACT OF 1933, MAKING FINDINGS, AND IMPOSING A CEASE-AND-DESIST ORDER | – | disclosure fraud | Yes | Yes | $8,000,000.00 | Sections 17(a)(2) and 17(a)(3) of the Securities Act | Respondent GrubMarket cease and desist from committing or causing any violations and any future violations of Sections 17(a)(2) and 17(a)(3) of the Securities Act.; Respondent shall, within 14 days of the entry of this Order, pay a civil money penalty in the amount of $8,000,000.00 to the Securities and Exchange Commission. | The SEC has instituted cease-and-desist proceedings against GrubMarket, Inc. for providing materially overstated financial information to investors, resulting in violations of Sections 17(a)(2) and 17(a)(3) of the Securities Act. | 3-22421 | [Open](https://www.sec.gov/files/litigation/admin/2025/33-11354.pdf) | | 2025-01-17 | 34-102231; IA-6828; AAER-4560 | Jeffery Q. Johnson, CPA | ORDER INSTITUTING PUBLIC ADMINISTRATIVE AND CEASE-AND-DESIST PROCEEDINGS PURSUANT TO SECTION 203(k) OF THE INVESTMENT ADVISERS ACT OF 1940, SECTION 4C OF THE SECURITIES EXCHANGE ACT OF 1934, AND RULE 102(e) OF THE COMMISSION’S RULES OF PRACTICE, MAKING FINDINGS, AND IMPOSING REMEDIAL SANCTIONS AND A CEASE-AND-DESIST ORDER | – | auditor independence; improper professional conduct | Yes | Yes | $30,000.00 | Section 206(4) of the Advisers Act; Rule 206(4)-2; Section 4C(a)(2) of the Exchange Act; Rule 102(e)(1)(ii) of the Commission’s Rules of Practice | Respondent Johnson cease and desist from committing or causing any violations and any future violations of Section 206(4) and Rule 206(4)-2 promulgated thereunder.; Johnson is denied the privilege of appearing or practicing before the Commission as an accountant.; Respondent shall, within 30 days of the entry of this Order, pay a civil money penalty in the amount of $30,000 to the Securities and Exchange Commission. | The SEC has instituted proceedings against Jeffery Q. Johnson, CPA, for violating auditor independence rules and a prior Commission order, resulting in sanctions and a cease-and-desist order. | 3-22432 | [Open](https://www.sec.gov/files/litigation/admin/2025/34-102231.pdf) | | 2025-01-17 | 34-102227; AAER-4559 | Celsius Holdings, Inc. | ORDER INSTITUTING CEASE-AND-DESIST PROCEEDINGS PURSUANT TO SECTION 21C OF THE SECURITIES EXCHANGE ACT OF 1934, MAKING FINDINGS, AND IMPOSING A CEASE-AND-DESIST ORDER | CELH | SEC reporting violations; books and records violations; internal accounting controls; disclosure controls and procedures | Yes | Yes | $3,000,000.00 | Section 13(a) of the Exchange Act; Rules 12b-20, 13a-11, and 13a-13; Sections 13(b)(2)(A) and 13(b)(2)(B) of the Exchange Act; Rule 13a-15 under the Exchange Act | Respondent to cease and desist from committing or causing any violations and any future violations of Sections 13(a), 13(b)(2)(A), and 13(b)(2)(B) of the Exchange Act and Rules 12b-20, 13a-11, 13a-13, and 13a-15 thereunder.; Respondent shall, within 10 days of the entry of this Order, pay a civil money penalty in the amount of $3,000,000.00 to the Securities and Exchange Commission. | The SEC has instituted cease-and-desist proceedings against Celsius Holdings, Inc. for violations related to SEC reporting, books and records, internal accounting controls, and disclosure controls and procedures from late-2019 to mid-2023. | 3-22429 | [Open](https://www.sec.gov/files/litigation/admin/2025/34-102227.pdf) | | 2025-01-17 | 34-102225; AAER-4557 | Singularity Future Technology, Ltd. | ORDER INSTITUTING CEASE-AND-DESIST PROCEEDINGS PURSUANT TO SECTION 21C OF THE SECURITIES EXCHANGE ACT OF 1934, MAKING FINDINGS, AND IMPOSING A CEASE-AND-DESIST ORDER | SGLY | financial reporting violations; accounting violations; internal controls | Yes | Yes | $350,000.00 | Sections 13(a), 13(b)(2)(A), and 13(b)(2)(B) of the Exchange Act; Rules 12b-20, 13a-1, 13a-13, and 13a-15 | Respondent Singularity cease and desist from committing or causing any violations and any future violations of Sections 13(a), 13(b)(2)(A), and 13(b)(2)(B), of the Exchange Act and Rules 12b-20, 13a-1, 13a-13, and 13a-15 thereunder.; Respondent shall comply with the undertakings enumerated in Paragraph 24, above.; Respondent shall, within 10 days of the entry of this Order, pay a civil money penalty in the amount of $350,000 to the Securities and Exchange Commission for transfer to the general fund of the United States Treasury. | The SEC has instituted cease-and-desist proceedings against Singularity Future Technology, Ltd. for financial reporting, accounting, books and records, and controls violations, resulting in a $350,000 penalty and required remedial actions. | 3-22424 | [Open](https://www.sec.gov/files/litigation/admin/2025/34-102225.pdf) | | 2025-01-17 | 33-11356; 34-102226; AAER-4558 | American Electric Power Company, Inc. | ORDER INSTITUTING CEASE-AND-DESIST PROCEEDINGS PURSUANT TO SECTION 8A OF THE SECURITIES ACT OF 1933 AND SECTION 21C OF THE SECURITIES EXCHANGE ACT OF 1934, MAKING FINDINGS, AND IMPOSING A CEASE-AND-DESIST ORDER | AEP | disclosure fraud; accounting violations | Yes | Yes | $19,000,000.00 | Section 17(a)(2) of the Securities Act; Section 13(a) of the Exchange Act; Section 13(b)(2)(A) of the Exchange Act; Section 13(b)(2)(B) of the Exchange Act; Rules 12b-20 and 13a-1 under the Exchange Act | Respondent American Electric Power cease and desist from committing or causing any violations and any future violations of Section 17(a)(2) of the Securities Act, Sections 13(a), 13(b)(2)(A), and 13(b)(2)(B) of the Exchange Act, and Rules 12b-20 and 13a-1 thereunder.; Respondent American Electric Power shall, within 10 days of the entry of this Order, pay a civil money penalty in the amount of $19,000,000 to the Securities and Exchange Commission. | The SEC has instituted cease-and-desist proceedings against American Electric Power Company, Inc. for violations of federal securities laws related to misleading statements and failure to disclose material related party transactions. | 3-22425 | [Open](https://www.sec.gov/files/litigation/admin/2025/33-11356.pdf) | | 2024-12-31 | 34-102060; AAER-4554 | Accell Audit & Compliance, PA | ORDER INSTITUTING PUBLIC ADMINISTRATIVE PROCEEDINGS PURSUANT TO RULE 102(e) OF THE COMMISSION’S RULES OF PRACTICE, MAKING FINDINGS, AND IMPOSING REMEDIAL SANCTIONS | – | fraudulent financial reporting; accounting misconduct | Yes | Yes | $75,000.00 | Section 10(b) of the Exchange Act; Rule 10b-5 | Accell is suspended from appearing or practicing before the Commission as an accountant. | The SEC has instituted public administrative proceedings against Accell Audit & Compliance, PA, resulting in its suspension from appearing or practicing before the Commission due to its involvement in fraudulent financial reporting with Ignite International Brands, Ltd. | 3-22386 | [Open](https://www.sec.gov/files/litigation/admin/2024/34-102060.pdf) | | 2024-12-27 | 34-102047; AAER-4553 | Christopher Hiestand, CPA | ORDER INSTITUTING PUBLIC ADMINISTRATIVE PROCEEDINGS PURSUANT TO RULE 102(e) OF THE COMMISSION’S RULES OF PRACTICE, MAKING FINDINGS, AND IMPOSING REMEDIAL SANCTIONS | – | fraudulent financial reporting; accounting misconduct | Yes | Yes | $50,000.00 | Section 10(b) of the Exchange Act; Rule 10b-5 | Hiestand is suspended from appearing or practicing before the Commission as an accountant. | The SEC has instituted public administrative proceedings against Christopher Hiestand, CPA, for his role in fraudulent financial reporting related to Ignite International Brands, Ltd., resulting in his suspension from practicing before the Commission and a $50,000 penalty. | 3-22384 | [Open](https://www.sec.gov/files/litigation/admin/2024/34-102047.pdf) | | 2024-12-19 | 34-101987; AAER-4550 | AAR CORP. | ORDER INSTITUTING CEASE-AND-DESIST PROCEEDINGS PURSUANT TO SECTION 21C OF THE SECURITIES EXCHANGE ACT OF 1934, MAKING FINDINGS, AND IMPOSING A CEASE-AND-DESIST ORDER | AIR | bribery; foreign corrupt practices; books and records violations; internal accounting controls | Yes | Yes | $29,236,624.00 | Section 30A of the Exchange Act; Section 13(b)(2)(A) of the Exchange Act; Section 13(b)(2)(B) of the Exchange Act | Respondent AAR cease and desist from committing or causing any violations and any future violations of Sections 30A, 13(b)(2)(A), and 13(b)(2)(B) of the Exchange Act.; AAR shall, within 10 days of the entry of this Order, pay disgorgement of $23,451,100 and prejudgment interest of $5,785,524 to the Securities and Exchange Commission for transfer to the general fund of the United States Treasury. | The SEC has instituted cease-and-desist proceedings against AAR CORP. for violations of the Foreign Corrupt Practices Act involving bribery schemes related to sales to Nepal Airlines and South African Airways Technical. | 3-22369 | [Open](https://www.sec.gov/files/litigation/admin/2024/34-101987.pdf) | The database includes all types of administrative proceedings, such as cease-and-desist orders, notice of proposed plan of distributions, imposing remedial sanctions, and more. Dataset size: All 18,000+ SEC administrative proceedings from 1995 to present. Data update frequency: New proceedings are added to the database as they are published by the SEC in real-time. Survivorship bias free: Yes. The database includes all SEC administrative proceedings released from 1995 to present. ## API Endpoint To search the Administrative Proceedings Database, send a HTTP `POST` request with the search criteria as JSON payload to the following API endpoint: https://api.sec-api.io/sec-administrative-proceedings Supported HTTP methods: `POST` Request and response content type: `JSON` ### Authentication To authenticate your API requests, use the API key displayed in your user profile. You can utilize your API key in one of two ways. Choose the method that best fits your use case: - **Authorization Header**: Include your API key as an `Authorization` header in your requests. For instance, before sending a `POST` request to `https://api.sec-api.io/sec-administrative-proceedings`, ensure the header is set as follows: `Authorization: YOUR_API_KEY`. - **Query Parameter:** Alternatively, append your API key directly to the URL as a query parameter. For example, when making `POST` requests, use the URL `https://api.sec-api.io/sec-administrative-proceedings?token=YOUR_API_KEY` instead of the base endpoint. ## Search API To search the Administrative Proceedings Database, make a POST request to `https://api.sec-api.io/sec-administrative-proceedings`, providing your search criteria as a JSON payload. ### Request Structure The Search API recognizes the following JSON payload parameters: - `query` (string, required) - The search criteria in the format `field:value` defining the structured data `field` to search in and the `value` to search for in this field. The search expression is formatted with the [Lucene syntax](https://sec-api.io/resources/lucene-query-syntax-overview) and supports `AND` and `OR` operators. Examples: `entities.ticker:UPS` or `tags:"insider trading" AND releasedAt:[2024-01-01 TO 2024-12-31]`. - `from` (string, optional) - Pagination control to specify the starting position of the results. Max: 10000. Default: 0. - `size` (string, optional) - Determines the number of results to be returned per request. Max: 50. Default: 50. - `sort` (array, optional) - Specifies the field by which results should be sorted. By default, results are sorted by `releasedAt` in descending order. #### Query Examples **Loading All Data** To download structured data for all administrative proceedings published between 1995 and 2024, you can use a date range query as shown below. The search request will return the first 50 results. To retrieve additional results, paginate through the dataset by incrementing the `from` parameter by 50 with each subsequent request. ```json { "query": "releasedAt:[2024-01-01 TO 2024-12-31]", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` The API can return a maximum of 10,000 results per `query`. Since there are more than 10,000 proceedings between 1995 and 2024, you need to divide the search universe into smaller date ranges, such as by year. For instance: - Fetch all proceedings from 2024 with `releasedAt:[2024-01-01 TO 2024-12-31]`, incrementing the `from` parameter by 50 for each additional request. - Once all releases from 2024 have been retrieved, repeat the process for 2023, 2022, and earlier years until all data has been fetched. **Monitoring Most Recent Administrative Proceedings** To monitor the most recent administrative proceedings published by the SEC, you can use the following search request. This request will return the 50 most recently released proceedings. You can then periodically query the API to retrieve the latest releases, for example, every 60 seconds. ```json { "query": "releaseNo:*", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` **Searching for Specific Companies** If you are interested in administrative proceedings involving specific companies, you can use the `ticker` or `cik` filters. The example will return proceedings involving Twitter (ticker: UPS, CIK: 1090727). ```json { "query": "entities.ticker:UPS", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### Response Structure The Search API returns a JSON object with two main fields: `total` and `data`. The `total` field indicates the total number of results matching the search criteria, while the `data` field contains an array of administrative proceedings that match the query. Each object in the `data` array represents a proceeding and includes the following fields: - `id` (string) - A system internal unique identifier of the administrative proceeding. - `releasedAt` (string) - The publication date and time of the proceeding, e.g. `2025-02-04T10:00:21-05:00`. Format: `yyyy-MM-ddTHH:mm:ssXXX`. - `releaseNo` (array of strings) - The SEC release numbers of the proceeding. If an AAER release number is available, it is listed here, e.g., `["33-11364", "34-102332", "AAER-4562"]`. - `fileNumbers` (array of strings) - The file numbers of the proceeding, e.g., `["3-22448"]`. If multiple proceedings are available, such as an initial cease-and-desist order followed by a distribution plan, each proceeding will have the same file number, but different release numbers. The file number is used to link multiple releases to the primary proceeding. - `respondents` (array of objects) - An array of objects representing the respondents involved in the proceeding. Each object includes the `name`, `type`, `role`, and optional `ticker` and `cik` fields. The `type` field can be `individual`, `company`, or `other`. - `resources` (array of objects) - An array of objects with `label` and `url` fields, providing links to source documents and related material, such as submission for comments. - `title` (string) - The title of the proceeding as stated in the official release. - `summary` (string) - A brief summary of the proceeding. - `tags` (array of strings) - Tags associated with the proceeding, such as `accounting fraud`, `audit failure`, etc. - `entities` (array of objects) - An array of objects representing the parties involved in the proceeding. The `ticker` and `cik` fields are optional and are only present if the `name` was successfully matched to a known publicly traded company. - `name` (string) - The name of the party involved. - `type` (string) - The type of the party, such as `individual`, `company`, or `other`. - `role` (string) - The role of the party, such as `respondent`, `defendant`, `affected entity` or `other`. - `ticker` (string) - The ticker symbol of the party, if available. - `cik` (string) - The Central Index Key (CIK) of the party, if available. - `complaints` (array of strings) - An array of complaints or charges, such as "The deliberate and systematic failure to audit and review public company and SEC-registered broker-dealer clients’ financial statements in accordance with PCAOB standards." - `parallelActionsTakenBy` (array of strings) - An array of other agencies that took parallel actions related to the proceeding, such as `U.S. Department of Justice` in case of criminal charges. - `hasAgreedToSettlement` (boolean) - Indicates whether the respondent has agreed to a settlement. - `hasAgreedToPayPenalty` (boolean) - Indicates whether the respondent has agreed to pay a penalty. - `penaltyAmounts` (array of objects) - An array of penalty objects with `penaltyAmount`, `penaltyAmountText` and `imposedOn` fields. Each object represents a penalty imposed on a party involved in the proceeding. A proceeding can state multiple penalties, for example, if multiple respondents are involved. - `penaltyAmount` (string) - The cleaned penalty amount in USD. - `penaltyAmountText` (string) - The original penalty amount as stated in the enforcement action. - `imposedOn` (string) - The party on which the penalty was imposed. - `requestedRelief` (array of strings) - An array of requested reliefs, such as `cease-and-desist order`, `permanent injunctions`, `civil penalties`, etc. - `violatedSections` (array of strings) - An array of securities laws violated by the respondents, such as `Section 17(a)(3) of the Securities Act of 1933` or `Rules 13a-14 and 13b2-1`. - `orders` (array of strings) - An array of orders issued by the SEC in the proceeding, such as "Respondent is suspended from appearing or practicing before the Commission as an accountant". - `otherAgenciesInvolved` (array of objects) - An array of other agencies involved in the proceeding, such as `{ "name": "Autorité des Marchés Financiers", "country": "Canada" }` #### Response Example JSON ```json { "total": { "value": 166, "relation": "eq" }, "data": [ { "id": "3391e850ed3168135e6211daaf8cf67c", "releasedAt": "2025-01-17T11:56:58-05:00", "releaseNo": [ "33-11359", "IA-6830", "IC-35453" ], "fileNumbers": [ "3-22435" ], "respondents": [ { "name": "The Vanguard Group, Inc.", "type": "company", "role": "respondent", "cik": "102909", "ticker": "" } ], "resources": [ { "label": "primary", "url": "https://www.sec.gov/files/litigation/admin/2025/33-11359.pdf" } ], "title": "ORDER INSTITUTING ADMINISTRATIVE AND CEASE-AND-DESIST PROCEEDINGS, PURSUANT TO SECTION 8A OF THE SECURITIES ACT OF 1933, SECTIONS 203(e) AND 203(k) OF THE INVESTMENT ADVISERS ACT OF 1940, AND SECTION 9(f) OF THE INVESTMENT COMPANY ACT OF 1940, MAKING FINDINGS, AND IMPOSING REMEDIAL SANCTIONS AND A CEASE-AND-DESIST ORDER", "summary": "The SEC has instituted proceedings against The Vanguard Group, Inc. for misleading statements regarding tax consequences to investors, resulting in remedial sanctions and a cease-and-desist order.", "tags": [ "misleading statements", "tax consequences", "investment funds" ], "entities": [ { "name": "The Vanguard Group, Inc.", "type": "company", "role": "respondent", "cik": "102909", "ticker": "" } ], "complaints": [ "Vanguard made misleading statements about potential tax consequences to investors in the Vanguard Investor Target Retirement Funds.", "Vanguard failed to disclose the potential for increased capital gains distributions resulting from redemptions of fund shares by newly-eligible investors." ], "parallelActionsTakenBy": [ "Office of the New York State Attorney General", "North American Securities Administrators Association" ], "hasAgreedToSettlement": true, "hasAgreedToPayPenalty": true, "penaltyAmounts": [ { "penaltyAmount": "135000000", "penaltyAmountText": "$135 million", "imposedOn": "The Vanguard Group, Inc." }, { "penaltyAmount": "13500000", "penaltyAmountText": "$13.5 million", "imposedOn": "The Vanguard Group, Inc." } ], "requestedRelief": [ "disgorgement of profits", "civil penalties" ], "violatedSections": [ "Section 17(a)(2) of the Securities Act", "Section 206(4) of the Advisers Act", "Rule 206(4)-8", "Rule 206(4)-7", "Section 34(b) of the Investment Company Act" ], "orders": [ "Vanguard cease and desist from committing or causing any violations and any future violations of Section 17(a)(2) of the Securities Act, Section 206(4) of the Advisers Act and Rules 206(4)-7 and 206(4)-8 promulgated thereunder, and Section 34(b) of the Investment Company Act.", "Vanguard is censured.", "Vanguard is ordered to pay disgorgement in the amount of $14,700,000 and prejudgment interest thereon in the amount of $3,500,000.", "Vanguard shall, within 10 days of the entry of this Order, pay a civil money penalty in the amount of $13,500,000 to the Commission." ], "investigationConductedBy": [ "Division of Enforcement" ], "litigationLedBy": [ "Division of Enforcement" ], "otherAgenciesInvolved": [ { "name": "Office of the New York State Attorney General", "country": "United States" }, { "name": "North American Securities Administrators Association", "country": "United States" } ] }, // ... ] } ``` ## FAQ Common questions about querying the SEC Administrative Proceedings Database API, the response shape, and the bulk archives. ### How do I look up an SEC enforcement action by its release number? To find a specific administrative proceeding by its SEC release number, search the `/sec-administrative-proceedings` endpoint and filter on the release-number field that lists every release tied to a proceeding (`releaseNo`). Release numbers are issued by the SEC in series such as Securities Act (`33-`), Exchange Act (`34-`), Investment Advisers Act (`IA-`), Investment Company Act (`IC-`), and Accounting and Auditing Enforcement Release (`AAER-`); the value of `releaseNo` should equal the full string as published, for example `34-101702` or `AAER-4542`. Because `releaseNo` is an array — a single proceeding can carry multiple release numbers issued under different statutes — any one of the listed values will retrieve the proceeding. The response includes the full structured record for the matching action, including the title (`title`), summary (`summary`), and the linked source documents (`resources.url`). ```json { "query": "releaseNo:\"AAER-4542\"", "from": 0, "size": 50 } ``` ### How do I find all SEC enforcement actions brought against a specific public company by ticker symbol? To retrieve every administrative proceeding involving a particular public company by its stock ticker, search the `/sec-administrative-proceedings` endpoint and filter on the ticker carried on each party in the `entities` array (`entities.ticker`). The value of `entities.ticker` should equal the ticker as listed by the SEC, for example `UPS` for United Parcel Service. The `entities` array enumerates every party named in the proceeding, and the `ticker` is only populated when the SEC's party name was matched to a known publicly traded company. Sort the results by release date in descending order (`releasedAt`) to walk the company's enforcement history from most recent to earliest. ```json { "query": "entities.ticker:UPS", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I pull every SEC administrative proceeding involving a company using its CIK identifier? To retrieve every administrative proceeding involving a company by its SEC-assigned Central Index Key, search the `/sec-administrative-proceedings` endpoint and filter on the CIK carried on each party in the `entities` array (`entities.cik`). The value of `entities.cik` should equal the numeric CIK as a string, for example `1090727` for United Parcel Service or `320193` for Apple. Filtering on `entities.cik` is more reliable than filtering on ticker because not every respondent has a ticker — private companies, foreign issuers, and individuals are also represented in the `entities` array but only carry a CIK when one is known. Sort the results by `releasedAt` in descending order to retrieve the most recent actions first. ```json { "query": "entities.cik:1090727", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I fetch SEC enforcement actions released within a specific calendar year and page through all of them? To fetch every administrative proceeding released within a calendar year, search the `/sec-administrative-proceedings` endpoint and restrict the publication date to that year (`releasedAt`). The value of `releasedAt` should be between January 1 and December 31 of the target year, for example between `2024-01-01` and `2024-12-31`. The endpoint returns up to `50` results per page, so to walk the full year set the page size (`size`) to `50` and increment the starting offset (`from`) by `50` between requests — `0`, `50`, `100`, and so on. The total number of matching proceedings is reported in the response on the `total.value` field, which tells you when to stop paginating. Sort the page by `releasedAt` in descending order so the iteration is stable. ```json { "query": "releasedAt:[2024-01-01 TO 2024-12-31]", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I monitor the SEC's enforcement docket in near real-time and pull only the latest proceedings every minute? To monitor the SEC's enforcement docket in near real-time, poll the `/sec-administrative-proceedings` endpoint on a fixed interval (for example, once every 60 seconds) and request the most recent page of proceedings. Use a query that matches any proceeding with a release number assigned (`releaseNo` should have any value), keep the offset (`from`) at `0`, set the page size (`size`) to the maximum of `50`, and sort by publication date in descending order (`releasedAt`). On each poll, compare the release date (`releasedAt`) or the system identifier (`id`) of the returned items against the most recent ones you have already seen, and process only the new entries. Because new proceedings are added to the database as they are released by the SEC, this pattern surfaces every new action within the polling interval. ```json { "query": "releaseNo:*", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I download the entire history of SEC administrative proceedings from 1995 to today when the dataset exceeds the 10,000-result cap per query? To download the full history of SEC administrative proceedings from 1995 to the present, you cannot do it with a single query because the `/sec-administrative-proceedings` endpoint returns at most `10000` results per query. Split the search universe into yearly buckets on the publication date (`releasedAt`) — for example, `2024-01-01` through `2024-12-31`, then `2023-01-01` through `2023-12-31`, and so on back to 1995 — and download each year independently. Within each yearly bucket, paginate by holding the page size (`size`) at the maximum of `50` and incrementing the starting offset (`from`) by `50` between requests until you have retrieved every result for that year (the total is reported on `total.value`). If a particularly active year approaches the `10000`-result cap, subdivide that year further into quarters or months. Sorting each bucket by `releasedAt` in descending order keeps the pagination stable. ```json { "query": "releasedAt:[2024-01-01 TO 2024-12-31]", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I link multiple related enforcement releases — for example an initial cease-and-desist order and its follow-on distribution plan — back to the same underlying case? To link multiple related releases back to the same underlying case, group proceedings on the shared SEC file number that the Commission assigns to a case (`fileNumbers`). When the SEC publishes a sequence of orders against the same respondents — for example, an initial cease-and-desist order followed by a notice of proposed plan of distribution and later an extension order — each release carries its own value in `releaseNo` but they all share the same value in `fileNumbers`, for example `3-22327`. Search the `/sec-administrative-proceedings` endpoint and filter on `fileNumbers` set to the case's file number. Sort the results by `releasedAt` in ascending order to reconstruct the chronological progression of the case, from the initial order through any follow-on procedural releases. ```json { "query": "fileNumbers:\"3-22327\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"asc"}}] } ``` ### How do I find SEC enforcement actions that resulted in a settlement? To find administrative proceedings in which the respondent agreed to settle, search the `/sec-administrative-proceedings` endpoint and filter on the settlement flag (`hasAgreedToSettlement` should be `true`). This flag is set on the proceeding record when the SEC's order indicates that the respondent agreed to the entry of the order without admitting or denying the findings. Combine the settlement filter with a date range on `releasedAt` to scope to a particular period, or with `entities.cik` or `entities.ticker` to restrict to a specific firm. To narrow further to settlements that included a financial component, also require the penalty-agreement flag (`hasAgreedToPayPenalty` should be `true`). ```json { "query": "hasAgreedToSettlement:true", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I identify enforcement actions where the respondent agreed to pay a monetary penalty? To identify administrative proceedings in which the respondent agreed to pay a monetary penalty, search the `/sec-administrative-proceedings` endpoint and filter on the penalty-agreement flag (`hasAgreedToPayPenalty` should be `true`). The matching proceedings will have one or more entries on the penalties array (`penaltyAmounts`) describing each monetary sanction. Each penalty entry reports the cleaned amount in USD as a string (`penaltyAmounts.penaltyAmount`), the amount as originally stated in the order text (`penaltyAmounts.penaltyAmountText`, for example `$135 million`), and the party the penalty was imposed on (`penaltyAmounts.imposedOn`). Note that a single proceeding can carry multiple entries on `penaltyAmounts` when the SEC imposes separate disgorgement, prejudgment interest, and civil penalty amounts, or when multiple respondents are sanctioned. ```json { "query": "hasAgreedToPayPenalty:true", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I rank SEC enforcement actions by the size of the monetary penalty imposed? To rank administrative proceedings by the size of the monetary penalty, search the `/sec-administrative-proceedings` endpoint and read the penalty amount on each entry of the penalties array (`penaltyAmounts.penaltyAmount`). The value of `penaltyAmounts.penaltyAmount` is the cleaned amount in USD, but it is stored as a string — for example `45000000` for a $45 million penalty or `135000000` for a $135 million penalty — so you must coerce it to a number client-side before comparing. Because a single proceeding can carry multiple entries on `penaltyAmounts` (separate disgorgement, prejudgment interest, and civil penalty amounts, or amounts imposed on different respondents), decide whether you want to rank on the largest entry, the per-respondent sum, or the per-proceeding sum, and aggregate accordingly. To restrict to proceedings the respondent has agreed to pay, also require the penalty-agreement flag (`hasAgreedToPayPenalty` should be `true`). ```json { "query": "hasAgreedToPayPenalty:true", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I sum the total dollar penalties levied against a specific firm across all of its SEC enforcement actions? To sum the total dollar penalties levied against a specific firm, search the `/sec-administrative-proceedings` endpoint, filter to that firm using either its ticker (`entities.ticker`) or its CIK identifier (`entities.cik`), and walk every matching proceeding. Within each proceeding, iterate the penalties array (`penaltyAmounts`) and sum the entries whose target party (`penaltyAmounts.imposedOn`) matches the firm's name, coercing the cleaned amount (`penaltyAmounts.penaltyAmount`) from string to number. Filtering on `penaltyAmounts.imposedOn` matters because a proceeding can name multiple respondents — for example a company and one of its officers — and `penaltyAmounts` carries one entry per imposed amount per party. Walk the full result set by paginating with the page size (`size`) at the maximum of `50` and incrementing the starting offset (`from`) by `50` between requests until you have read every matching proceeding. ```json { "query": "entities.cik:1090727 AND hasAgreedToPayPenalty:true", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find enforcement actions tied to accounting fraud or financial restatements? To find administrative proceedings tied to accounting fraud or financial restatements, search the `/sec-administrative-proceedings` endpoint and filter on the topical tag (`tags`) for the phrase `accounting fraud`. The `tags` array carries short topical labels attached to each proceeding such as `accounting fraud`, `audit failure`, `misrepresentation`, and `disclosure violations`. The SEC also publishes an Accounting and Auditing Enforcement Release alongside many accounting-related actions, identifiable by a release number prefixed with `AAER-` in the release-number array (`releaseNo`, for example `AAER-4542`). Combining a tag filter on `tags` for `accounting fraud` with a prefix filter on `releaseNo` for `AAER-` captures the bulk of accounting-related enforcement. Note that sec-api.io also offers a dedicated `/aaer` endpoint specifically for the AAER series if you only need that subset. ```json { "query": "tags:\"accounting fraud\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find SEC enforcement actions related to insider trading? To find administrative proceedings related to insider trading, search the `/sec-administrative-proceedings` endpoint and filter on the topical tag (`tags`) for the phrase `insider trading`. The `tags` array carries short topical labels attached to each proceeding by the SEC's classification of the case. Combine the tag filter with a date range on `releasedAt` to scope to a particular period, or with a party filter such as `entities.cik`, `entities.ticker`, or `respondents.type` set to `individual` to restrict to a specific company or to individuals only. The summary (`summary`), the complaints array (`complaints`), and the violated-law list (`violatedSections`) on each returned proceeding describe the conduct in more detail. ```json { "query": "tags:\"insider trading\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I search proceedings by the specific securities law that was allegedly violated, such as Rule 10b-5 or Section 17(a)? To search proceedings by the specific securities law allegedly violated, search the `/sec-administrative-proceedings` endpoint and filter on the violated-law array (`violatedSections`). The `violatedSections` array carries one string per cited statute, section, or rule — for example `Rule 10b-5`, `Section 17(a)(2) of the Securities Act`, `Section 206(4) of the Advisers Act`, or `Exchange Act Section 13(a)` — as written in the order. Because the SEC's wording varies across orders (`Section 17(a)` may appear as `Section 17(a)(2)`, `Section 17(a)(3)`, or `Section 17(a)(2) and (3) of the Securities Act`), use a phrase or substring match on the key statute name rather than an exact-equals match. The summary (`summary`) and complaints (`complaints`) often repeat the cited law in narrative form, so combining a filter on `violatedSections` with a free-text match on those fields catches additional cases. ```json { "query": "violatedSections:\"Rule 10b-5\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find enforcement actions where the SEC barred an individual from associating with broker-dealers or investment advisers? To find proceedings in which the SEC barred an individual from associating with broker-dealers or investment advisers, search the `/sec-administrative-proceedings` endpoint and run a phrase match on the orders array (`orders`) for language such as `barred from association`. The `orders` array carries one string per order the SEC issued in the proceeding, and association bars are written there with wording like `barred from association with any broker, dealer, investment adviser, municipal securities dealer, municipal advisor, transfer agent, or nationally recognized statistical rating organization`. Many association bars include a right to reapply after a specific number of years (for example, `with the right to apply for reentry after two years`), so the same field also tells you whether the bar is permanent or time-limited. To restrict to cases against natural persons, also require the respondent type to be an individual (`respondents.type` should be `individual`). ```json { "query": "orders:\"barred from association\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I pull every enforcement action in which the SEC sought disgorgement of profits as a remedy? To pull every administrative proceeding in which the SEC sought disgorgement of profits, search the `/sec-administrative-proceedings` endpoint and filter on the requested-relief array (`requestedRelief`) for the phrase `disgorgement of profits`. The `requestedRelief` array carries one string per remedy the SEC asked for in the proceeding, such as `disgorgement of profits`, `civil penalties`, `cease-and-desist order`, and `permanent injunctions`. To separate proceedings where disgorgement was actually ordered (not merely requested), also scan the orders array (`orders`) for entries that direct the respondent to pay disgorgement, and read the per-party amounts on the penalties array (`penaltyAmounts.penaltyAmount`, `penaltyAmounts.imposedOn`). The penalty entries describe each disgorgement, prejudgment interest, and civil penalty amount the SEC imposed. ```json { "query": "requestedRelief:\"disgorgement of profits\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find enforcement actions against companies that failed to file required periodic reports such as 10-Ks or 10-Qs? To find administrative proceedings against companies that failed to file required periodic reports, search the `/sec-administrative-proceedings` endpoint and filter on the topical tag (`tags`) for the phrase `failure to file reports`. These proceedings typically result in revocation of the company's securities registration under Section 12(j) of the Exchange Act and are tagged accordingly. As a complementary filter, the violated-law array (`violatedSections`) on these cases cites `Exchange Act Section 13(a)` together with the periodic-report rules `Rule 13a-1` (annual reports on Form 10-K) and `Rule 13a-13` (quarterly reports on Form 10-Q), so a phrase match on `violatedSections` for `Section 13(a)` or `Rule 13a-1` catches the same population. The narrative complaints (`complaints`) on these proceedings describe the missed filings and the SEC's delinquency notices. ```json { "query": "tags:\"failure to file reports\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find SEC cases that were brought against individuals rather than against companies? To find administrative proceedings brought against natural persons rather than against companies, search the `/sec-administrative-proceedings` endpoint and filter on the respondent type (`respondents.type` should be `individual`). The `respondents.type` field is one of `individual`, `company`, or `other`, and identifies each named respondent. If you want strictly individual-only cases (no company co-respondents), also require that no entry on `respondents.type` is `company`. To rank or scope the results, combine the filter with a date range on `releasedAt` or with a topical tag on `tags` such as `insider trading` or `fraud`. The individual's name appears on `respondents.name`. ```json { "query": "respondents.type:individual", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I get the list of every individual respondent named in a given administrative proceeding? To list every individual respondent named in a given proceeding, retrieve the proceeding from the `/sec-administrative-proceedings` endpoint — by its release number (`releaseNo`), its file number (`fileNumbers`), or its system identifier (`id`) — and read the respondents array (`respondents`). Filter that array client-side to entries whose type (`respondents.type`) is `individual` and read the person's name (`respondents.name`) and role in the case (`respondents.role`, for example `respondent`). Individual respondents do not typically carry a CIK or ticker, so those fields on the entry will usually be absent. If you want every party named in the proceeding — including non-respondent participants such as associated companies or affected entities — use the broader entities array (`entities`) instead and filter the same way on `entities.type` set to `individual`. ```json { "query": "fileNumbers:\"3-22327\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find proceedings against registered investment advisers, such as Advisers Act Section 206 violations? To find administrative proceedings against registered investment advisers, search the `/sec-administrative-proceedings` endpoint and filter on the violated-law array (`violatedSections`) for the phrase `Section 206` — the antifraud provision of the Investment Advisers Act of 1940. Sub-sections appear in the data as `Section 206(2) of the Advisers Act`, `Section 206(4) of the Advisers Act`, `Rule 206(4)-7` (compliance policies), and `Rule 206(4)-8` (pooled investment vehicles), so a substring or phrase match on `Section 206` catches all variants. Combine the violated-law filter with the topical tag (`tags`) for `investment adviser` to narrow further to cases the SEC itself classified as adviser-related. The proceedings against advisers commonly impose remedies described in the orders array (`orders`) such as censures, cease-and-desist orders, disgorgement, and civil penalties tracked on the penalties array (`penaltyAmounts`). ```json { "query": "violatedSections:\"Section 206\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find enforcement cases that ran in parallel with criminal charges brought by the Department of Justice or with state attorneys general? To find administrative proceedings that ran in parallel with actions by other prosecutors or regulators, search the `/sec-administrative-proceedings` endpoint and filter on the parallel-actions array (`parallelActionsTakenBy`). The `parallelActionsTakenBy` array carries one string per outside agency that took a related action, for example `U.S. Department of Justice` for parallel criminal charges or `Office of the New York State Attorney General` for a state-level action. For a broad sweep of criminally parallel cases, match on `parallelActionsTakenBy` for `Department of Justice`. For state-attorney-general actions, match on `Attorney General`. The other-agencies array (`otherAgenciesInvolved`) carries a complementary list of agencies involved in the underlying investigation with their country (`otherAgenciesInvolved.name`, `otherAgenciesInvolved.country`), which is useful when you also want non-prosecutorial coordination. ```json { "query": "parallelActionsTakenBy:\"Department of Justice\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find SEC actions that were coordinated with a foreign securities regulator? To find administrative proceedings coordinated with a foreign securities regulator, search the `/sec-administrative-proceedings` endpoint and filter on the other-agencies array (`otherAgenciesInvolved`). Each entry on `otherAgenciesInvolved` carries the agency name (`otherAgenciesInvolved.name`, for example `Autorité des Marchés Financiers`) and its country (`otherAgenciesInvolved.country`). To isolate the foreign coordination cases, require the country value on `otherAgenciesInvolved.country` to be anything other than `United States`. Alternatively, to scope to a specific foreign regulator, match directly on its name on `otherAgenciesInvolved.name` — for example `Financial Conduct Authority` for the UK or `Ontario Securities Commission` for Canada. For parallel formal enforcement actions taken abroad, also scan the parallel-actions array (`parallelActionsTakenBy`). ```json { "query": "otherAgenciesInvolved.country:* AND NOT otherAgenciesInvolved.country:\"United States\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I retrieve the underlying PDF order document for each administrative proceeding so I can review the full text? To retrieve the underlying PDF order document for a proceeding, retrieve the proceeding from the `/sec-administrative-proceedings` endpoint and read the resources array (`resources`). Each entry on `resources` carries a label (`resources.label`) and a URL (`resources.url`); the entry whose label is `primary` points at the SEC's published order document, typically a PDF at `https://www.sec.gov/files/litigation/admin/...`. Some proceedings include additional resources alongside the primary order — for example an administrative summary page or a related supporting order — each as its own entry on `resources` with its own label such as `Administrative Summary` or `the Order in this matter`. Iterate the full array if you want every linked document, or filter to `resources.label` equal to `primary` for just the main order. ```json { "query": "resources.label:primary", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I identify proceedings that have an associated Accounting and Auditing Enforcement Release? To identify proceedings that carry an associated Accounting and Auditing Enforcement Release, search the `/sec-administrative-proceedings` endpoint and filter on the release-number array (`releaseNo`) for entries beginning with the `AAER-` prefix, for example `AAER-4542` or `AAER-4562`. The `releaseNo` array carries every release number assigned to the proceeding across the various SEC release series, and the presence of an `AAER-` value signals that the SEC also classified the action as an accounting or auditing enforcement matter. If you only want the AAER series itself rather than the broader proceeding record, sec-api.io also offers a dedicated `/aaer` endpoint that exposes the AAER releases directly. For analysis that ties the AAER classification back to penalties, tags, and respondents, stay on `/sec-administrative-proceedings` and read the full proceeding record. ```json { "query": "releaseNo:AAER-*", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I aggregate yearly counts of SEC enforcement actions to chart enforcement intensity over time? To aggregate yearly counts of SEC enforcement actions, query the `/sec-administrative-proceedings` endpoint once per year, restricting the publication date (`releasedAt`) to that year — for example between `2024-01-01` and `2024-12-31` for 2024 — and read the total count off the response field (`total.value`). The `total.value` field reports the number of matching proceedings without requiring you to download every record. Repeat for each year from 1995 to the present and you have the time series. To break the counts down by topical theme, repeat the same yearly queries with an additional filter on the topical tag (`tags`, for example `accounting fraud` or `insider trading`) or on the violated-law array (`violatedSections`). Sorting is not necessary when you only consume `total.value`, but keep the page size (`size`) at `1` to minimize transfer if you do not need the records themselves. ```json { "query": "releasedAt:[2024-01-01 TO 2024-12-31]", "from": 0, "size": 1 } ``` ### How do I produce a leaderboard of the companies most frequently named as respondents across SEC enforcement history? To produce a leaderboard of the companies most frequently named as respondents, walk the full enforcement history on the `/sec-administrative-proceedings` endpoint and group the returned records by respondent. The respondents array (`respondents`) on each proceeding carries one entry per named respondent, with `respondents.name`, `respondents.role`, `respondents.type`, and — when the SEC's name was matched to a known public company — `respondents.cik` and `respondents.ticker`. Filter each entry to those where the type (`respondents.type`) is `company` and the role (`respondents.role`) is `respondent`, and accumulate counts keyed on `respondents.cik` (preferred when available, because it normalizes name variants) or on the normalized `respondents.name` for entries without a CIK. To walk the full history, paginate yearly buckets on `releasedAt` with the page size (`size`) at the maximum of `50` and the starting offset (`from`) incrementing by `50` per page, as described for any full-history download from this endpoint. ```json { "query": "respondents.type:company AND respondents.role:respondent", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I find enforcement actions that mention a specific keyword anywhere in their narrative — for example "Ponzi" or "kickback"? To find administrative proceedings that mention a specific keyword anywhere in their narrative, search the `/sec-administrative-proceedings` endpoint and run a free-text match across the narrative fields the keyword is likely to appear in — the summary (`summary`), the complaints array (`complaints`), and the topical tags (`tags`). For a term like `Ponzi`, expect hits primarily in `complaints` and `tags` (the tag is often `Ponzi scheme`); for a term like `kickback`, expect hits primarily in `complaints` and `summary`. To broaden the search, also include the orders array (`orders`) and the title (`title`), which can carry distinctive vocabulary such as `revoking registration` or `cease-and-desist`. Phrase matches on multi-word keywords (for example `commercial bribery`) are more precise than single-token matches; combine with a date range on `releasedAt` or a party filter on `entities.cik` to narrow the population. ```json { "query": "complaints:Ponzi OR summary:Ponzi OR tags:\"Ponzi scheme\"", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I tell whether a proceeding is a substantive enforcement action versus a procedural follow-up such as an extension order or a notice of distribution plan? To distinguish a substantive enforcement action from a procedural follow-up, read both the proceeding's text fields and its structured fields on the `/sec-administrative-proceedings` endpoint. Procedural follow-ups carry titles (`title`) such as `EXTENSION ORDER`, `ORDER GRANTING EXTENSION OF TIME TO FILE PROPOSED PLAN OF DISTRIBUTION`, or `NOTICE OF PROPOSED PLAN OF DISTRIBUTION`, and summaries (`summary`) describing administrative actions like granting an extension rather than findings of misconduct. Structurally, procedural releases typically have empty arrays for complaints (`complaints`), violated laws (`violatedSections`), and penalty amounts (`penaltyAmounts`), and a short orders array (`orders`) describing only the procedural ruling (for example `The Division's request for an extension of time is granted.`). Substantive enforcement actions, by contrast, carry populated `complaints`, `violatedSections`, and usually `penaltyAmounts` or detailed `orders` describing sanctions. A useful heuristic is to require at least one entry in `complaints` and at least one entry in `violatedSections` for a proceeding to count as substantive; for related groupings of substantive and procedural releases, link them on the shared file number (`fileNumbers`). ```json { "query": "complaints:* AND violatedSections:*", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I retrieve a publicly traded respondent's full enforcement history along with associated entities — for example a broker-dealer or an affiliated fund — that were also named in those proceedings? To retrieve a publicly traded respondent's full enforcement history along with the associated entities named alongside it, search the `/sec-administrative-proceedings` endpoint and filter on the CIK of the target firm carried on the entities array (`entities.cik`). For each matching proceeding, read the complete entities array to see every party the SEC named: the role field (`entities.role`) distinguishes the primary respondent from other parties carrying roles such as `associated entity`, `other relevant entity`, `affected entity`, or `defendant`. For each non-primary entry, the same fields are available — name (`entities.name`), type (`entities.type`), CIK (`entities.cik`) when matched, and ticker (`entities.ticker`) when matched — which lets you build a graph of the target firm together with affiliated funds, broker-dealers, and named officers. Walk the full result set by paginating with the page size (`size`) at the maximum of `50` and incrementing the starting offset (`from`) by `50` until you have read every proceeding. ```json { "query": "entities.cik:1090727", "from": 0, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ``` ### How do I structure my search to retrieve more than 50 results, given the per-request size cap? To retrieve more than 50 results from the `/sec-administrative-proceedings` endpoint, keep the page size (`size`) at its maximum of `50` and paginate by incrementing the starting offset (`from`) by `50` between requests — `0`, `50`, `100`, and so on. The total count of matching proceedings is reported on the response field `total.value`, which tells you when to stop paginating. The starting offset (`from`) has a hard cap of `10000`, so a single query can return at most 10,000 records. When the matching population exceeds 10,000 records — for example, the entire history of SEC administrative proceedings — split the search universe into narrower date ranges on the publication date (`releasedAt`), typically by year, and paginate each range independently. Sort each page by `releasedAt` in descending order (the default) so that the pagination is stable across requests. ```json { "query": "releasedAt:[2024-01-01 TO 2024-12-31]", "from": 50, "size": 50, "sort": [{"releasedAt":{"order":"desc"}}] } ```