Litigation Enforcement Release Database

The Litigation Filings Database API provides quick and reliable access to SEC litigation releases and related enforcement filings. Retrieve structured litigation data in a consistent format for seamless integration, compliance, legal research, and analysis.

POST https://api.secfilingdata.com/v1/filings/litigation/

Authentication

All requests require an API token in the Authorization header.

Authorization: AUTH_TOKEN

Request Parameters

Parameter Type Required Description
query_type string Required Search type. Supported:
  • releaseNumber
  • year
  • month
  • dateRange
  • cik
  • ticker
query_value string Required Search value based on query_type
from integer Optional Pagination starting offset
size integer Optional Number of records to return (Maximum:100)
sort_order string Optional ASC or DESC

Request Example

{
  "query_type": "releaseNumber",
  "query_value": "LR-26574",
  "from": 0,
  "size": 10,
  "sort_order": "DESC"
}

Response

<?php

$url = "https://api.secfilingdata.com/v1/filings/litigation/";

$auth_token = 'AUTH_TOKEN';

$postData = array(
    'query_type' => 'releaseNumber',
    'query_value' => 'LR-26339',
    'from' => 0,
    'size' => 10,
    'sort_order' => 'DESC'
);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: ' . $auth_token,
]);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
import requests

url = "https://api.secfilingdata.com/v1/filings/litigation/"

headers = {
    "Content-Type": "application/json",
    "Authorization": "AUTH_TOKEN"
}

payload = {
    "query_type": "releaseNumber",
    "query_value": "LR-26574",
    "from": 0,
    "size": 10,
    "sort_order": "DESC"
}

response = requests.post(
    url,
    headers=headers,
    json=payload
)

print(response.json())
const url = "https://api.secfilingdata.com/v1/filings/litigation/";

const payload = {
    query_type: "releaseNumber",
    query_value: "LR-26339",
    from: 0,
    size: 10,
    sort_order: "DESC"
};

fetch(url, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "AUTH_TOKEN"
    },
    body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
const axios = require("axios");

const url = "https://api.secfilingdata.com/v1/filings/litigation/";

const payload = {
    query_type: "releaseNumber",
    query_value: "LR-26339",
    from: 0,
    size: 10,
    sort_order: "DESC"
};

axios.post(url, payload, {
    headers: {
        "Content-Type": "application/json",
        "Authorization": "AUTH_TOKEN"
    }
})
.then(response => {
    console.log(response.data);
})
.catch(error => {
    console.error(error);
});
curl --location 'https://api.secfilingdata.com/v1/filings/litigation/' \
--header 'Content-Type: application/json' \
--header 'Authorization: AUTH_TOKEN' \
--data '{
    "query_type":"releaseNumber",
    "query_value":"LR-26339",
    "from":0,
    "size":10,
    "sort_order":"DESC"
}'
package main

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {

    url := "https://api.secfilingdata.com/v1/filings/litigation/"

    payload := []byte(`{
        "query_type":"releaseNumber",
        "query_value":"LR-26339",
        "from":0,
        "size":10,
        "sort_order":"DESC"
    }`)

    req, _ := http.NewRequest(
        "POST",
        url,
        bytes.NewBuffer(payload),
    )

    req.Header.Set(
        "Content-Type",
        "application/json",
    )

    req.Header.Set(
        "Authorization",
        "AUTH_TOKEN",
    )

    client := &http.Client{}

    resp, err := client.Do(req)

    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)

    fmt.Println(string(body))
}
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class Main {

    public static void main(String[] args)
    throws Exception {

        URL url = new URL(
            "https://api.secfilingdata.com/v1/filings/litigation/"
        );

        HttpURLConnection conn =
            (HttpURLConnection) url.openConnection();

        conn.setRequestMethod("POST");

        conn.setRequestProperty(
            "Content-Type",
            "application/json"
        );

        conn.setRequestProperty(
            "Authorization",
            "AUTH_TOKEN"
        );

        conn.setDoOutput(true);

        String jsonInputString = "{"
                + "\"query_type\":\"releaseNumber\","
                + "\"query_value\":\"LR-26339\","
                + "\"from\":0,"
                + "\"size\":10,"
                + "\"sort_order\":\"DESC\""
                + "}";

        try(OutputStream os =
                conn.getOutputStream()) {

            byte[] input =
                jsonInputString.getBytes("utf-8");

            os.write(input, 0, input.length);
        }

        Scanner scanner =
            new Scanner(conn.getInputStream());

        while(scanner.hasNext()) {

            System.out.println(
                scanner.nextLine()
            );
        }

        scanner.close();
    }
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();

        client.DefaultRequestHeaders.Add(
            "Authorization",
            "AUTH_TOKEN"
        );

        var json = @"{
            ""query_type"": ""releaseNumber"",
            ""query_value"": ""LR-26339"",
            ""from"": 0,
            ""size"": 10,
            ""sort_order"": ""DESC""
        }";

        var content = new StringContent(
            json,
            Encoding.UTF8,
            "application/json"
        );

        var response = await client.PostAsync(
            "https://api.secfilingdata.com/v1/filings/litigation/",
            content
        );

        var result =
            await response.Content
            .ReadAsStringAsync();

        Console.WriteLine(result);
    }
}
require 'net/http'
require 'json'
require 'uri'

url = URI(
  "https://api.secfilingdata.com/v1/filings/litigation/"
)

http = Net::HTTP.new(
  url.host,
  url.port
)

http.use_ssl = true

request = Net::HTTP::Post.new(url)

request["Content-Type"] =
  "application/json"

request["Authorization"] =
  "AUTH_TOKEN"

request.body = {
  query_type: "releaseNumber",
  query_value: "LR-26339",
  from: 0,
  size: 10,
  sort_order: "DESC"
}.to_json

response = http.request(request)

puts response.body

Response Example

{
  "total": 1,
  "from": 0,
  "size": 20,
  "data": [
    {
      "sec_date": "2026-06-25 12:08:25",
      "title": "Mingran Wang",
      "detail_url": "https://www.sec.gov/enforcement-litigation/litigation-releases/lr-26574",
      "release_no": [
        "LR-26574"
      ],
      "cases": [
        {
          "case_name": "Securities and Exchange Commission v. Mingran Wang",
          "docket_number": "4:26-cv-06291",
          "court": "N.D. Cal.",
          "filed_date": "2026-06-24"
        }
      ],
      "case_citations": [
        "Securities and Exchange Commission v. Mingran Wang, No. 4:26-cv-06291 (N.D. Cal. filed June 24, 2026)"
      ],
      "summary": "June 24, 2026, the Securities and Exchange Commission filed settled charges against Mingran Wang of Fremont, California, for allegedly orchestrating a years-long market manipulation scheme through which he obtained more than $1.3 million in ill-gotten gains. According to the SEC’s complaint, from October 2021 to at least November 2024, Wang manipulated the price of over 150 thinly traded American Depositary Receipts (ADRs) through a fraudulent trading scheme known as spoofing. Wang’s spoofing scheme followed three basic steps: (1) Wang placed buy and sell orders for ADRs that he never intended to execute which moved the market price of the targeted ADR securities; (2) Wang then executed orders to buy or sell the ADR to take advantage of the manipulated price; and (3) Wang then canceled the non-bona fide orders he placed in the first step, typically before those orders could be executed.",
      "complaints": [
        "On June 24, 2026, the Securities and Exchange Commission filed settled charges against Mingran Wang of Fremont, California, for allegedly orchestrating a years-long market manipulation scheme through which he obtained more than $1.3 million in ill-gotten gains. According to the SEC's complaint, from October 2021 to at least November 2024, Wang manipulated the price of over 150 thinly traded American Depositary Receipts (ADRs) through a fraudulent trading scheme known as spoofing.",
        "The SEC's complaint, filed in federal court in the Northern District of California, charges Wang with violating the anti-fraud provisions of Section 17(a)(1) and (3) of the Securities Act of 1933 and Section 10(b) of the Securities Exchange Act of 1934 and Rule 10b-5(a) and (c) thereunder, as well as the anti-manipulation provisions of Section 9(a)(2) of the Exchange Act.",
        "As alleged, Wang's spoofing scheme followed three basic steps: (1) Wang placed buy and sell orders for ADRs that he never intended to execute which moved the market price of the targeted ADR securities; (2) Wang then executed orders to buy or sell the ADR to take advantage of the manipulated price; and (3) Wang then canceled the non-bona fide orders he placed in the first step, typically before those orders could be executed.",
        "According to the complaint, Wang took efforts to conceal his fraudulent actions and admitted to federal investigators that he tried \"to walk the price up [to] my advantage\" with his non-bona fide buy and sell orders."
      ],
      "respondents": [
        "Mingran Wang"
      ],
      "resources": [
        {
          "label": "SEC Complaint",
          "url": "https://www.sec.gov/files/litigation/complaints/2026/comp26574.pdf"
        }
      ],
      "tags": [
        "fraud"
      ],
      "violated_sections": [
        "SECTION 17(A)",
        "SECTION 10(B)",
        "SECTION 9(A)",
        "RULE 10B-5"
      ],
      "penalty_amounts": {
        "total": null,
        "breakdown": []
      },
      "settlement_agreed": 0,
      "entities": [
        {
          "name": "Mingran Wang",
          "type": "Individual"
        }
      ],
      "requested_relief": [
        "civil penalties",
        "disgorgement",
        "prejudgment interest"
      ]
    }
  ]
}
Important:
Requests must use: Content-Type:application/json
POST body must be JSON encoded using:json_encode($postData)

HTTP Status Codes

Status Code Description
200 Successful request
400 Invalid request parameters
401 Unauthorized / Invalid token
500 Internal server error

Bulk Download Litigation Filings API

Download the complete dataset of SEC Litigation Releases in a single JSON file, including litigation release numbers, publication dates, case summaries, complaint details, respondents, related entities, case citations, litigation resources, and associated tags. This endpoint is designed for bulk data access and full database synchronization.

GET https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json
<?php

$url = "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json";

$auth_token = 'AUTH_TOKEN';

$saveTo = __DIR__ . '/litigation-metadata-all.json';

$fp = fopen($saveTo, 'w');

$ch = curl_init($url);

curl_setopt_array($ch, [
    CURLOPT_FILE => $fp,
    CURLOPT_HTTPHEADER => [
        'Authorization: ' . $auth_token,
        'Accept: application/json'
    ],
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_TIMEOUT => 0,
]);

curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);

curl_close($ch);
fclose($fp);

/*
|--------------------------------------------------------------------------
| VALIDATION
|--------------------------------------------------------------------------
*/

if ($curl_error) {
    unlink($saveTo);
    die("Curl error: " . $curl_error);
}

if ($http_code !== 200) {
    unlink($saveTo);
    die("Download failed. HTTP: " . $http_code);
}

echo "Download complete. HTTP: " . $http_code;
import requests

url = "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json"
auth_token = "AUTH_TOKEN"

headers = {
    "Authorization": auth_token,
    "Accept": "application/json"
}

save_to = "litigation-metadata-all.json"

with requests.get(url, headers=headers, stream=True) as r:
    if r.status_code != 200:
        raise Exception(f"Download failed: {r.status_code}")

    with open(save_to, "wb") as f:
        for chunk in r.iter_content(chunk_size=8192):
            if chunk:
                f.write(chunk)

print("Download complete")
const url = "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json";
const authToken = "AUTH_TOKEN";

fetch(url, {
    method: "GET",
    headers: {
        "Authorization": authToken,
        "Accept": "application/json"
    }
})
.then(response => {
    if (!response.ok) {
        throw new Error("Download failed: " + response.status);
    }
    return response.blob();
})
.then(blob => {
    const link = document.createElement("a");
    link.href = window.URL.createObjectURL(blob);
    link.download = "litigation-metadata-all.json";
    link.click();
})
.catch(err => console.error(err));
const fs = require("fs");
const https = require("https");

const url = "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json";
const authToken = "AUTH_TOKEN";

const file = fs.createWriteStream("litigation-metadata-all.json");

https.get(url, {
    headers: {
        "Authorization": authToken,
        "Accept": "application/json"
    }
}, (res) => {

    if (res.statusCode !== 200) {
        console.log("Download failed:", res.statusCode);
        res.resume();
        return;
    }

    res.pipe(file);

    file.on("finish", () => {
        file.close();
        console.log("Download complete");
    });

}).on("error", (err) => {
    fs.unlinkSync("litigation-metadata-all.json");
    console.error(err.message);
});
curl -L \
  -H "Authorization: AUTH_TOKEN" \
  -H "Accept: application/json" \
  "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json" \
  -o litigation-metadata-all.json
package main

import (
    "io"
    "net/http"
    "os"
)

func main() {

    url := "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json"
    authToken := "AUTH_TOKEN"

    client := &http.Client{}

    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Add("Authorization", authToken)
    req.Header.Add("Accept", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    if resp.StatusCode != 200 {
        panic(resp.Status)
    }

    out, err := os.Create("litigation-metadata-all.json")
    if err != nil {
        panic(err)
    }
    defer out.Close()

    io.Copy(out, resp.Body)

    println("Download complete")
}
import java.io.*;
import java.net.*;

public class DownloadFile {
    public static void main(String[] args) throws Exception {

        String urlStr = "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json";
        String authToken = "AUTH_TOKEN";

        URL url = new URL(urlStr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setRequestMethod("GET");
        conn.setRequestProperty("Authorization", authToken);
        conn.setRequestProperty("Accept", "application/json");

        if (conn.getResponseCode() != 200) {
            System.out.println("Failed: " + conn.getResponseCode());
            return;
        }

        InputStream in = conn.getInputStream();
        FileOutputStream out = new FileOutputStream("litigation-metadata-all.json");

        byte[] buffer = new byte[8192];
        int bytesRead;

        while ((bytesRead = in.read(buffer)) != -1) {
            out.write(buffer, 0, bytesRead);
        }

        out.close();
        in.close();

        System.out.println("Download complete");
    }
}
using System;
using System.Net.Http;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var url = "https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json";
        var authToken = "AUTH_TOKEN";

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", authToken);

        var response = await client.GetAsync(url);

        if (!response.IsSuccessStatusCode)
        {
            Console.WriteLine("Failed: " + response.StatusCode);
            return;
        }

        var stream = await response.Content.ReadAsStreamAsync();
        var file = File.Create("litigation-metadata-all.json");

        await stream.CopyToAsync(file);

        file.Close();

        Console.WriteLine("Download complete");
    }
}
require 'net/http'
require 'uri'

url = URI("https://api.secfilingdata.com/v1/filings/litigation/metadata/all.json")
auth_token = "AUTH_TOKEN"

Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|

  request = Net::HTTP::Get.new(url)
  request["Authorization"] = auth_token
  request["Accept"] = "application/json"

  http.request(request) do |response|

    if response.code != "200"
      puts "Failed: #{response.code}"
      exit
    end

    File.open("litigation-metadata-all.json", "w") do |file|
      response.read_body do |chunk|
        file.write(chunk)
      end
    end

    puts "Download complete"
  end
end

Dataset Coverage

The Litigation Filings database contains SEC litigation releases, including release numbers, publication dates, case summaries, complaint information, respondents, related entities, case citations, SEC resources, and associated tags.

  • Litigation Release Numbers
  • Publication Dates
  • Case Summaries
  • Complaint Text
  • Respondents
  • Related Entities
  • Case Citations
  • SEC Resources and URLs
  • Tags and Categories
  • Summary Title
  • Penalty Amounts
  • Cases