SRO Filings Database API
The SRO Filing Database offers a repository of all SRO-related filings and corresponding SEC rulemaking releases, such as notices, orders, and request for comments. The database is updated daily and includes all filings from 1995 to present, accumulating to over 30,000 documents. The database is accessible via an API that provides search functionality and returns all metadata of published SRO filings and allows to bulk-download all filings and exhibits as PDFs, HTML and converted text. All SROs overseen by the SEC are covered, such as security exchanges, securities associations, clearing agencies, and more.
API Endpoints
Search API
API to search the SRO filings database: POST requests to https://api.sec-api.io/sro
Bulk Download APIs
API to bulk-download metadata of all releases as JSON file: GET request to https://api.sec-api.io/sro/metadata/all.json
API to bulk-download all SRO releases per year as ZIP file: GET request to https://api.sec-api.io/sro/documents/{YEAR}.zip
Single Download APIs
API to download single SRO documents: GET requests to https://api.sec-api.io/sro/{releaseNo}/{type}-{filename}
API to download single PDFs/HTMLs converted to text: GET requests to https://api.sec-api.io/sro/{releaseNo}/{type}-{filename}.txt
Authentication
To authenticate API requests, use the API key displayed in your user profile. Utilize the API key in one of two ways. Choose the method that best fits your use case:
- Authorization Header: Include the API key as an
Authorizationheader of the request. For instance, before sending aPOSTrequest tohttps://api.sec-api.io/sro, ensure the header is set as follows:Authorization: YOUR_API_KEY. - Query Parameter: Alternatively, append the API key directly to the URL as a query parameter. For example, when making
POSTrequests, use the URLhttps://api.sec-api.io/sro?token=YOUR_API_KEYinstead of the base endpoint.
Search API
To search the SRO filings database, make a POST request to https://api.sec-api.io/sro, providing your search criteria as a JSON payload.
Request Structure
The Search API recognizes the following JSON payload parameters:
query(string, required) - The search term or expression, formatted using the Lucene syntax. Example:sro:NASDAQ.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. Max: 100. Default: 100.sort(array, optional) - Specifies the field by which results should be sorted. By default, results are sorted byissueDatein descending order.
Query Example
Get all metadata objects of the 10 most recently published filings by the NASDAQ SRO.
Response Structure
When the Search API locates matches within the SRO filings database, it returns an array of SRO filing objects in JSON format. Each object comprises the following fields:
releaseNumber: String representing the release number associated with the filing. Example:34-98702issueDate: Date string indicating the release date of the filing. Example:2023-09-01fileNumber: File number of the filing. Example:SR-ISE-2023-22.sro: String indicating the SRO associated with the filing. Example:Nasdaq ISE, LLC (ISE)details: String containing the details of the filing. Example:Notice of Filing and Immediate Effectiveness of Proposed Rule Change to Amend its Complex Order RulescommentsDue: Optional string indicating the date by which comments on the filing are due. Example:21 days after date of publication in the Federal Register.urls: Array of objects, each containing atypeand aurl. The types and their corresponding URLs might include:- Primary filing as indicated by
typebeing thereleaseNumber(always included):https://www.sec.gov/files/rules/sro/ise/2023/34-98702.pdf. Older filings might point to a HTML file (website) instead of a PDF file. - Exhibit 2 (a,b, ...) (optional):
https://www.sec.gov/files/rules/sro/finra/2023/34-98703-ex2a.pdf - Exhibit 3 (optional):
https://www.sec.gov/files/rules/sro/nyse/2023/34-98665-ex3.pdf - Exhibit 4 (optional):
https://www.sec.gov/files/rules/sro/cfe/2023/34-97358-ex4.pdf - Exhibit 5 (optional):
https://www.sec.gov/files/rules/sro/ise/2023/34-98702-ex5.pdf - Submit a Comment on
releaseNumber:https://www.sec.gov/comments/sr-ise-2023-22/sr-ise-2023-22-notice-filing-and-immediate-effectiveness-proposed-rule - View Received Comments (optional):
https://www.sec.gov/comments/4-700/4-700.htm - Commission's Request for Additional Information (optional):
https://www.sec.gov/files/rules/sro/dtc/2018/sr-dtc-2017-803-request-additional-info.pdf - Response to the Commission's Request for Additional Information (optional):
https://www.sec.gov/files/rules/sro/dtc/2018/dtc-2017-803-response-request-info.pdf - Order Granting Accelerated Approval of a Proposed Rule Change (optional):
https://www.sec.gov/files/rules/sro/emcc/34-49952.pdf
- Primary filing as indicated by
Response Example
1
[
2
{
3
"releaseNumber": "34-98702",
4
"issueDate": "2023-10-06",
5
"fileNumber": "SR-ISE-2023-22",
6
"sro": "Nasdaq ISE, LLC (ISE)",
7
"details": "Notice of Filing and Immediate Effectiveness of Proposed Rule Change to Amend its Complex Order Rules",
8
"commentsDue": "21 days after date of publication in the Federal Register.",
9
"urls": [
10
{
11
"type": "34-98702",
12
"url": "https://www.sec.gov/files/rules/sro/ise/2023/34-98702.pdf"
13
},
14
{
15
"type": "Exhibit 5",
16
"url": "https://www.sec.gov/files/rules/sro/ise/2023/34-98702-ex5.pdf"
17
},
18
{
19
"type": "Submit a Comment on SR-ISE-2023-22",
20
"url": "https://www.sec.gov/comments/sr-ise-2023-22/sr-ise-2023-22-notice-filing-and-immediate-effectiveness-proposed-rule"
21
}
22
]
23
},
24
{
25
"releaseNumber": "34-97786",
26
"issueDate": "2023-06-21",
27
"fileNumber": "SR-LCHSA-2023-003",
28
"sroOrg": "Banque Centrale De Compensation",
29
"details": "Notice of Filing and Immediate Effectiveness of Proposed Rule Change, as Modified by Amendment No. 1, Relating to Liquidity Risk Modelling Framework",
30
"commentsDue": "July 18, 2023",
31
"urls": [
32
{
33
"type": "34-97786",
34
"url": "https://www.sec.gov/files/rules/sro/lchsa/2023/34-97786.pdf"
35
},
36
{
37
"type": "Exhibit 3.1",
38
"url": "https://www.sec.gov/files/rules/sro/lchsa/2023/34-97786-ex31.pdf"
39
},
40
{
41
"type": "Exhibit 3.2",
42
"url": "https://www.sec.gov/files/rules/sro/lchsa/2023/34-97786-ex32.pdf"
43
},
44
{
45
"type": "Exhibit 5",
46
"url": "https://www.sec.gov/files/rules/sro/lchsa/2023/34-97786-ex5.pdf"
47
},
48
{
49
"type": "Submit a Comment on SR-LCH-SA-2023-003",
50
"url": "https://www.sec.gov/comments/sr-lch-sa-2023-003/notice-filing-and-immediate-effectiveness-proposed-rule-change-modified"
51
}
52
]
53
}
54
// ...
55
]
Bulk-Download SRO Filings & SEC Correspondence
Two bulk-download APIs for SRO filing metadata and documents are available.
Bulk-Download Metadata in JSON Format
Download the entire database of metadata (issue date, SRO, details, URLs to documents) of all SRO filings and corresponding SEC releases published from 1997 to present as a single JSON file.
Endpoint: GET https://api.sec-api.io/sro/metadata/all.json
The JSON file mirrors the structure of the Search API response, but containing all filing objects instead of a filtered subset. The JSON file contains an array of metadata objects with the following structure:
releaseNumber: String representing the release number associated with the filing. Example:34-98702issueDate: Date string indicating the release date of the filing. Example:2023-09-01fileNumber: File number of the filing. Example:SR-ISE-2023-22.sro: String indicating the SRO associated with the filing. Example:Nasdaq ISE, LLC (ISE)details: String containing the details of the filing. Example:Notice of Filing and Immediate Effectiveness of Proposed Rule Change to Amend its Complex Order RulescommentsDue: Optional string indicating the date by which comments on the filing are due. Example:21 days after date of publication in the Federal Register.urls: Array of objects, each containing atypeand aurl. The types and their corresponding URLs might include:- Primary filing as indicated by
typebeing thereleaseNumber(always included):https://www.sec.gov/files/rules/sro/ise/2023/34-98702.pdf. Older filings might point to a HTML file (website) instead of a PDF file. - Exhibit 2 (a,b, ...) (optional):
https://www.sec.gov/files/rules/sro/finra/2023/34-98703-ex2a.pdf - Exhibit 3 (optional):
https://www.sec.gov/files/rules/sro/nyse/2023/34-98665-ex3.pdf - Exhibit 4 (optional):
https://www.sec.gov/files/rules/sro/cfe/2023/34-97358-ex4.pdf - Exhibit 5 (optional):
https://www.sec.gov/files/rules/sro/ise/2023/34-98702-ex5.pdf - Submit a Comment on
releaseNumber:https://www.sec.gov/comments/sr-ise-2023-22/sr-ise-2023-22-notice-filing-and-immediate-effectiveness-proposed-rule - View Received Comments (optional):
https://www.sec.gov/comments/sr-nasdaq-2022-080/srnasdaq2022080.htm - Commission's Request for Additional Information (optional):
https://www.sec.gov/files/rules/sro/dtc/2018/sr-dtc-2017-803-request-additional-info.pdf - Response to the Commission's Request for Additional Information (optional):
https://www.sec.gov/files/rules/sro/dtc/2018/dtc-2017-803-response-request-info.pdf - Order Granting Accelerated Approval of a Proposed Rule Change (optional):
https://www.sec.gov/files/rules/sro/emcc/34-49952.pdf
- Primary filing as indicated by
Bulk-Download PDFs, HTML and Text Files as ZIP Files
Download a collection of all documents, including filings, notices, orders, comments and more. These documents are available in PDF, HTML, and their corresponding text versions. They are organized annually, packaged as compressed ZIP files and contain all documents attached to an SRO filing published in the respective year.
Endpoint: GET https://api.sec-api.io/sro/documents/{YEAR}.zip
Inside the ZIP file, you'll find distinct folders, each representing an individual SRO filing. Here's a breakdown of the contents and structure:
- Folder Naming: Each filing has its designated folder, named using the format
/{releaseNo}. - Contents:
- Metadata: Each folder contains a JSON file capturing its metadata.
- Original Documents: You'll find all relevant documents pertaining to the filing, such as notice of proposed rule change, exhibits, response from the SEC, comments, and more. These are available in PDF and HTML formats, depending on how the SEC published the document. The HTML files mirror documents hosted as websites on SEC.gov.
- Text Versions: Every PDF and HTML document has a corresponding text file, making content easily accessible. These text files retain the original document's name but append a
.txtextension. For instance, the text counterpart of34-96601.pdfwould be34-96601.pdf.txt.
Example structure of an unzipped ZIP file of SRO filings published in 2022:
- ZIP file name:
2022.zip - Unzipped folder structure:
/34-96601/34-96601.json(metadata)34-96601.pdf(primary notice)34-96601.pdf.txt(primary notice converted to text)34-96601-exhibit-2.pdf(exhibit 2)34-96601-exhibit-2.pdf.txt(exhibit 2 converted to text)34-96601-received-comments.html(received comments)34-96601-received-comments.html.txt(received comments converted to text)- ... and more
Supported SROs
The following SROs are supported by the SRO Filing/Rulemaking Database.
National Securities Exchanges
- American Stock Exchange (Amex)
- Bats BYX Exchange, Inc. (BatsBYX)
- Bats BZX Exchange, Inc. (BatsBZX)
- Bats EDGA Exchange, Inc. (BatsEDGA)
- Bats EDGX Exchange, Inc. (BatsEDGX)
- BATS Exchange (BATS)
- BATS Y-Exchange (BYX)
- Boston Stock Exchange (BSE)
- BOX Exchange LLC (BOX)
- Cboe BYX Exchange, Inc. (CboeBYX)
- Cboe BZX Exchange, Inc. (CboeBZX)
- Cboe C2 Exchange, Inc. (C2)
- Cboe EDGA Exchange, Inc. (CboeEDGA)
- Cboe EDGX Exchange, Inc. (CboeEDGX)
- Cboe Exchange, Inc. (CBOE)
- Chicago Stock Exchange, Inc. (CHX)
- EDGA Exchange (EDGA)
- EDGX Exchange (EDGX)
- Investors Exchange LLC (IEX)
- ISE Gemini (ISEGemini)
- ISE Mercury (ISEMercury)
- Long-Term Stock Exchange, Inc. (LTSE)
- MEMX LLC (MEMX)
- Miami International Securities Exchange, LLC (MIAX)
- MIAX Emerald, LLC (EMERALD)
- MIAX PEARL, LLC (PEARL)
- Nasdaq BX, Inc. (BX)
- Nasdaq GEMX, LLC (GEMX)
- Nasdaq ISE, LLC (ISE)
- Nasdaq MRX, LLC (MRX)
- NASDAQ OMX PHLX
- Nasdaq PHLX LLC (Phlx)
- National Stock Exchange (NSX)
- New York Stock Exchange LLC (NYSE)
- NYSE Alternext US (NYSEALTR)
- NYSE American LLC (NYSEAMER)
- NYSE Amex (NYSEAmex)
- NYSE Arca (NYSEArca)
- NYSE Chicago, Inc. (NYSECHX)
- NYSE MKT (NYSEMKT)
- NYSE National, Inc. (NYSENAT)
- The Nasdaq Stock Market LLC (NASDAQ)
- Topaz Exchange (Topaz)
Joint Industry Plans
- 17d-2 Plans for Allocation of Regulatory Responsibilities
- National Market System Plans (NMS)
Registered Securities Associations
- Financial Industry Regulatory Authority (FINRA)
Notice Registered Securities Future Product Exchanges
- CBOE Futures Exchange (CFE)
- Chicago Board of Trade (CBOT)
- Chicago Mercantile Exchange (CME)
- Minneapolis Grain Exchange, Inc. (MGEX)
Securities Futures Associations
- National Futures Association (NFA)
Registered Clearing Agencies
- Banque Centrale De Compensation
- Boston Stock Exchange Clearing Corporation
- Chicago Mercantile Exchange LLC
- Emerging Markets Clearing Corporation (EMCC)
- Fixed Income Clearing Corporation (FICC, FICC-AN)
- ICE Clear Credit LLC
- ICE Clear Europe Limited
- National Securities Clearing Corporation (NSCC, NSCC-AN)
- The Options Clearing Corporation (OCC, OCC-AN)
- Stock Clearing Corporation of Philadelphia
- The Depository Trust Company (DTC, DTC-AN)
Other SROs
- Municipal Securities Rulemaking Board (MSRB)
FAQ
Common questions about querying the SRO Filings Database API, the response shape, and the bulk archives.
How do I look up a specific SRO rule filing when I only know its release number?
To look up a single SRO rule filing by its release number, search the SRO filings database at the /sro endpoint and restrict the search to that exact release identifier. The release number is carried on each filing object as releaseNumber (for example 34-98702), so the value of releaseNumber should equal the identifier you have.
The response contains the full metadata for that filing, including the issue date (issueDate), the SR file number (fileNumber), the SRO that submitted it (sro), the description (details), and the list of attached document URLs (urls), each of which carries its label in urls.type and its location in urls.url.
How do I pull all proposed rule changes published by NASDAQ in the last 12 months?
To pull all proposed rule changes published by NASDAQ over the trailing twelve months, query the /sro endpoint and filter on the SRO name together with a publication-date window. The SRO of a filing is stored on the sro field (for example The Nasdaq Stock Market LLC (NASDAQ)), and the publication date is stored on issueDate as an ISO date string such as 2023-10-06.
The value of sro should match the NASDAQ entity (for example NASDAQ), and the value of issueDate should fall between the date twelve months ago and today. Page through results by raising the starting offset (from) in steps of the page size (size), since a year of NASDAQ activity typically exceeds the 100-result page cap.
How do I find every SRO filing tied to a particular SR file number?
To find every release tied to a single SR file number, search the /sro endpoint on the fileNumber field. The file number identifies the underlying proposal — for example SR-ISE-2023-22 or SR-NASDAQ-2008-102 — and the same file number is reused across every release that touches that proposal (initial notice, amendments, approval order, and so on).
The value of fileNumber should equal the SR identifier you have. The response returns one entry per release, each with its own releaseNumber, issueDate, and details, so the result set traces the proposal end-to-end.
How do I retrieve the 10 most recently published SRO filings sorted by publication date?
To retrieve the ten most recently published SRO filings, query the /sro endpoint with a match-all query and sort by publication date in descending order. The publication date lives on the issueDate field, and the search supports custom sort orders through the sort parameter; the default is already issueDate descending.
Set the page size (size) to 10 and the starting offset (from) to 0. The response is an array of filing objects, each carrying releaseNumber, issueDate, fileNumber, sro, details, commentsDue, and the document urls.
How do I search for rule filings submitted by FINRA over a specific date window?
To search for FINRA rule filings inside a specific date window, query the /sro endpoint and combine an SRO filter with an issueDate range. The SRO is stored on the sro field — FINRA appears as Financial Industry Regulatory Authority (FINRA) — and the release date is stored on issueDate as an ISO date.
The value of sro should match FINRA, and the value of issueDate should fall between the start and end of the window you care about. Each returned object lists the release number (releaseNumber), the SR file number (fileNumber, for example SR-FINRA-2018-030), the description (details), and the linked documents (urls).
How do I find SRO filings related to clearing agencies such as DTC, NSCC, or OCC?
To find SRO filings submitted by clearing agencies, query the /sro endpoint and filter the sro field on the clearing-agency name. The clearing agencies covered include The Depository Trust Company (DTC), the National Securities Clearing Corporation (NSCC), The Options Clearing Corporation (OCC), the Fixed Income Clearing Corporation (FICC), ICE Clear Credit, ICE Clear Europe Limited, the Chicago Mercantile Exchange LLC, and Banque Centrale De Compensation.
The value of sro should match any of these clearing-agency names (for example DTC, NSCC, or OCC). Each returned filing carries its release number (releaseNumber), the SR file number (fileNumber, for example SR-ICEEU-2023-021), the description (details), and the attached document URLs (urls).
How do I locate SRO filings that mention a specific topic like "Clearly Erroneous Transactions" in their description?
To locate SRO filings that mention a specific topic in their description, run a full-text search against the details field at the /sro endpoint. The details field carries the free-text description supplied by the SEC, such as Notice of Filing and Immediate Effectiveness of a Proposed Rule Change To Extend a Pilot Program Related to Rule 11890, Entitled "Clearly Erroneous Transactions".
The value of details should contain the phrase you are searching for (for example Clearly Erroneous Transactions). Each match returns the release number (releaseNumber), the SRO (sro), the issue date (issueDate), and the document URLs (urls).
How do I get only those SRO filings that are still open for public comment?
To get only the SRO filings that are still open for public comment, query the /sro endpoint and restrict results to filings where the comment-deadline field has a value. The commentsDue field is populated only when the SEC publishes a comment window — it holds either an explicit date such as September 26, 2023 or a phrase like 21 days after date of publication in the Federal Register. When no comment window applies, commentsDue is null.
The value of commentsDue should be non-null. To further narrow the list to filings whose deadline has not yet passed, parse the deadline date (when expressed as a calendar date) and keep only those where it is later than today.
How do I find SRO rule changes that were approved by the SEC versus those merely filed for immediate effectiveness?
To distinguish SEC-approved rule changes from filings that took effect immediately on submission, search the /sro endpoint on the details field for the distinguishing phrase. SEC-approved releases carry descriptions that begin with Order Approving Proposed Rule Change (for example Order Approving Proposed Rule Change To Amend FINRA Rule 7730), while immediately effective filings carry descriptions that begin with Notice of Filing and Immediate Effectiveness of Proposed Rule Change.
The value of details should contain Order Approving for SEC-approved rule changes, and Notice of Filing and Immediate Effectiveness for the immediately effective ones. Both queries return the standard filing object with releaseNumber, issueDate, fileNumber, sro, and urls.
How do I retrieve all SRO filings that include an Exhibit 5 (the rule change text)?
To retrieve SRO filings that include an Exhibit 5 attachment — the document containing the full text of the proposed rule change — query the /sro endpoint and filter on the urls array. Each entry in urls carries a label in urls.type and a link in urls.url; Exhibit 5 attachments use the label Exhibit 5.
The value of urls.type should be Exhibit 5. Each matching filing returns its full metadata along with the Exhibit 5 download URL (urls.url), which points to the PDF on sec.gov.
How do I find SRO filings that have received public comments via the SEC's comments portal?
To find SRO filings that have received public comments, query the /sro endpoint and filter on the document-links array. When the SEC has posted received comments for a filing, the urls array contains an entry whose urls.type is View Received Comments and whose urls.url points to the comments index page on sec.gov.
The value of urls.type should be View Received Comments. The response returns the filing metadata together with the URL of the comments page, which lists every comment letter submitted on that proposal.
How do I page through more than 100 results when a search returns thousands of SRO filings?
To page through large result sets at the /sro endpoint, combine the starting offset (from) with the page size (size). The page size caps at 100, and the starting offset caps at 10000, so the endpoint can deliver up to 10,100 results across all pages of a single query.
Issue the first request with from set to 0 and size set to 100, then issue subsequent requests with from advanced by 100 each time, until the response array comes back empty or you reach the 10000 limit. When a query would exceed the offset cap, tighten the result set by narrowing the issueDate window or by adding an SRO or file-number filter.
How do I download the entire historical SRO filings metadata catalog in one shot?
To download the entire historical SRO filings metadata catalog in a single file, fetch the bulk-metadata endpoint at /sro/metadata/all.json. The response is a single JSON file containing one object per release from 1997 to present, mirroring the per-filing structure returned by the search endpoint.
Each object in the file carries the same fields as the search response — releaseNumber, issueDate, fileNumber, sro, details, commentsDue, and the urls array of {type, url} document links — so the same downstream parsing logic applies to both.
How do I bulk-download all SRO documents and exhibits published in a specific calendar year as PDFs and text?
To bulk-download every SRO document and exhibit published in a specific year, fetch the year-specific ZIP archive from /sro/documents/{YEAR}.zip, substituting the four-digit year (for example 2022). The archive contains one folder per release, named after the release number.
Inside each release folder you get the metadata JSON (named {releaseNumber}.json), the primary notice PDF or HTML (named {releaseNumber}.pdf or .html), any exhibits (named {releaseNumber}-exhibit-{n}.pdf), the received-comments HTML when available, and a plain-text version of every PDF and HTML file with a .txt suffix appended to the original filename.
How do I download a single SRO release PDF and its plain-text version by release number?
To download a single SRO release document by release number, fetch the single-document endpoint at /sro/{releaseNo}/{type}-{filename}, substituting the release number, the document type, and the filename listed on the filing object. The download URLs for every available document are listed on the filing record under the urls array, where urls.type gives the label (such as the release number itself or Exhibit 5) and urls.url gives the original sec.gov source.
To retrieve the plain-text version of the same document, append .txt to the same path — the text-conversion endpoint lives at /sro/{releaseNo}/{type}-{filename}.txt and returns the PDF or HTML converted to text.
How do I count how many rule filings each U.S. exchange submitted in a given quarter?
To count rule filings per exchange for a given quarter, query the /sro endpoint with an issueDate window covering that quarter and then group the results by SRO on the client side. The sro field on each filing carries the exchange name (for example The Nasdaq Stock Market LLC (NASDAQ) or New York Stock Exchange LLC (NYSE)), and the issueDate field carries the publication date.
The value of issueDate should fall between the first and last day of the target quarter. Paginate through the full result set by advancing the starting offset (from) in steps of the page size (size, max 100), and tally the count of releaseNumber values per sro after collection.
How do I find SRO filings that were modified by an amendment?
To find SRO filings that were modified by an amendment, search the /sro endpoint on the details field. The SEC always notes the amendment in the description — for example Notice of Filing of Proposed Rule Change, as Modified by Amendment No. 1 or Order Approving Proposed Rule Change as Modified by Amendment No. 2 Thereto.
The value of details should contain the phrase Amendment No.. Each match returns the full filing record, and the related amendments share the same SR file number (fileNumber), so you can group amendment chains by fileNumber after retrieval.
How do I retrieve all SRO filings related to a National Market System Plan (NMS Plan)?
To retrieve filings related to a National Market System Plan, query the /sro endpoint and filter on the SRO name reserved for NMS plans. NMS plan filings are tagged with the SRO label National Market System Plans (NMS) — they are joint filings made by multiple exchanges, FINRA, and other self-regulatory organizations under a single plan such as the UTP plan for Nasdaq-listed securities.
The value of sro should equal National Market System Plans (NMS). To narrow further to a specific plan, add a text filter on the details field for the plan name or on fileNumber for the SR identifier (NMS plan file numbers use the S7-... prefix, for example S7-24-89).
How do I find filings where the SEC issued a Request for Additional Information to the SRO?
To find filings where the SEC issued a Request for Additional Information, query the /sro endpoint and filter on the document-links array. When the Commission posts a request-for-additional-information letter, the urls array gains an entry whose urls.type is Commission's Request for Additional Information (and frequently a matching entry for the SRO's response, labeled Response to the Commission's Request for Additional Information).
The value of urls.type should contain Request for Additional Information. Each matching filing carries the request-letter URL in urls.url, alongside the original release metadata.
How do I authenticate my API calls against the SRO endpoint?
To authenticate calls against the /sro endpoint, supply the API key shown on the user profile page either as a request header or as a URL query parameter. As a header, set Authorization to the API key value. As a query parameter, append ?token=YOUR_API_KEY to the endpoint URL.
The same authentication mechanism applies to every SRO-related path, including the bulk-metadata endpoint at /sro/metadata/all.json, the yearly bulk-documents endpoint at /sro/documents/{YEAR}.zip, and the single-document endpoints at /sro/{releaseNo}/{type}-{filename} and /sro/{releaseNo}/{type}-{filename}.txt.
How do I find filings whose comment deadline is expressed as a fixed calendar date rather than "X days after publication"?
To find filings whose comment deadline is a fixed calendar date, query the /sro endpoint with a text filter on the commentsDue field. The commentsDue field is a free-text string: most entries follow the template 21 days after date of publication in the Federal Register. (a relative deadline), while a smaller subset carries an explicit calendar date such as September 26, 2023 or July 18, 2023.
The value of commentsDue should not contain after date of publication, or alternatively should match a calendar-date pattern such as a month name followed by a day and year. The matching filings carry the explicit deadline in commentsDue, ready to compare against today's date.
How do I trace an SRO rule change from its initial notice through the SEC's final approval order?
To trace a proposed rule change from its initial notice through the SEC's final approval order, query the /sro endpoint on the fileNumber field. The SR file number identifies the underlying proposal (for example SR-NASDAQ-2008-102) and stays constant across every release that touches it — the initial notice, any amendments, the SEC's request for additional information, the SRO's response, and the final approval order each get their own releaseNumber while keeping the same fileNumber.
The value of fileNumber should equal the SR identifier of the proposal you are tracing. Sort the result set by publication date — the value of issueDate ascending — to read the procedural history from first filing to final order, where each step is described in the corresponding details field.
How do I find rule filings from the newer equities exchanges like MEMX, IEX, or LTSE?
To find filings from the newer equities exchanges, query the /sro endpoint and filter the sro field on the venue name. The newer equities venues covered include MEMX LLC (MEMX), Investors Exchange LLC (IEX), and the Long-Term Stock Exchange (LTSE).
The value of sro should match any of those exchange identifiers. Each returned filing carries the release number (releaseNumber), the SR file number (fileNumber), the description (details), and the attached document URLs (urls).
How do I retrieve the raw text of an exhibit attached to an SRO filing for keyword analysis?
To retrieve the raw text of an exhibit attached to an SRO filing, fetch the text-conversion endpoint at /sro/{releaseNo}/{type}-{filename}.txt. The exhibit's original sec.gov PDF or HTML URL is listed on the filing object under the urls array, where urls.type identifies the exhibit (for example Exhibit 5, Exhibit 4, or Exhibit 2) and urls.url points to the source document.
Replace {releaseNo}, {type}, and {filename} with the corresponding path segments derived from the source URL on urls.url, and append .txt to receive the text-converted version of the same document, ready for keyword scanning.
How do I identify SRO filings that propose changes to fee schedules across multiple exchanges?
To identify SRO filings that propose fee-schedule changes, query the /sro endpoint on the details field with fee-related phrasing. The details field carries the SEC's description of each release, and fee-schedule proposals typically include words such as fee, fees, pricing, or fee schedule in their titles.
The value of details should contain one of those fee-related terms. To cover multiple exchanges in a single result set, leave the sro field unfiltered and group the resulting filings by sro after retrieval; that gives one slice of fee-related releases per venue.
How do I sort SRO filings by file number to group together all amendments under the same proposal?
To group every release under the same proposal together, query the /sro endpoint and sort by fileNumber in ascending order. The SR file number is shared across every release that touches a proposal — initial notice, amendments, request-for-additional-information, response, and approval order all carry the same fileNumber — so sorting by it places those releases next to each other in the result list.
Use the sort parameter with fileNumber ascending as the sort key. As a secondary sort, add issueDate ascending so that within each fileNumber group the releases appear in chronological order from initial filing to final action.
How do I track recent rulemaking activity from MSRB (municipal securities) over a chosen period?
To track recent rulemaking activity from the Municipal Securities Rulemaking Board, query the /sro endpoint and filter on the SRO name combined with a publication-date window. The MSRB is tagged on filings with the value MSRB on the sro field, and the publication date lives on issueDate.
The value of sro should match MSRB, and the value of issueDate should fall within the period you care about. Sort by issueDate descending to read the activity newest-first; each returned filing carries the SR file number (fileNumber), description (details), comment deadline (commentsDue) when applicable, and document URLs (urls).
How do I find SRO releases that received accelerated approval from the Commission?
To find SRO releases that received accelerated approval from the Commission, query the /sro endpoint and filter either on the document-links array or on the description. Accelerated-approval releases attach a document whose label on urls.type is Order Granting Accelerated Approval of a Proposed Rule Change, and the description on the details field typically opens with Order Granting Accelerated Approval.
The value of urls.type should equal Order Granting Accelerated Approval of a Proposed Rule Change, or the value of details should contain Order Granting Accelerated Approval. Either filter returns the same kind of approval order, with the order PDF available on urls.url.
How do I build a daily watch list of new SRO filings as soon as they are published on SEC.gov?
To build a daily watch list of newly published SRO filings, poll the /sro endpoint with a default sort on issueDate descending and a small page size, then deduplicate against release numbers you have already seen. New filings become searchable within roughly 300 milliseconds of publication on sec.gov, so a poll interval on the order of a minute is enough to catch every new release shortly after it appears.
Set the page size (size) to a small value such as 25 or 50, keep the default sort order, and on each poll iterate through the response array until you reach a releaseNumber already stored from a previous poll. Everything above that watermark is new; record each new release together with its issueDate, fileNumber, sro, details, and urls.
How do I find rule filings that establish or extend a pilot program at an exchange?
To find rule filings that establish or extend a pilot program at an exchange, search the /sro endpoint on the details field for pilot-program phrasing. The SEC consistently names pilot programs in the release description, both when a program is first set up — for example Order Approving Proposed Rule Change as Modified by Amendment No. 2 Thereto To Establish a Pilot Program for NASDAQ Basic Data Feeds — and when an existing program is extended, for example Notice of Filing and Immediate Effectiveness of a Proposed Rule Change To Extend a Pilot Program Related to Rule 11890, Entitled "Clearly Erroneous Transactions".
The value of details should contain Pilot Program. To separate brand-new programs from extensions of existing ones, add a secondary text filter — details should contain Establish a Pilot Program for initial pilots, or Extend a Pilot Program for extensions. Each match returns the full filing record with releaseNumber, issueDate, sro, fileNumber, and urls, and pilots tied to the same proposal share an fileNumber so the establishment and subsequent extensions can be grouped after retrieval.
References
Research Papers
- Self-regulation and governmental oversight: a theoretical and experimental study (2021). Journal of Regulatory Economics
- Does self-regulation work? Experimental evidence of the reputational incentives of Self-Regulatory Organizations (2015). Applied Economics
- Self-Regulation in Securities Markets (2011). World Bank Policy Research Working Paper
- Self-Regulation and government oversight (2005). The Review of Economic Studies
- Self-Regulation, Innovation, and the Financial Industry (2003). Journal of Regulatory Economics