The Form 3, 4, 5 API offers a powerful interface for accessing and searching the comprehensive SEC EDGAR database, allowing users to retrieve the latest information on security offerings. The API transforms structured XML data from Form 3, 4, 5 filings into JSON format, providing a user-friendly and easily searchable dataset. Real-time updates ensure that new Form 3, 4, 5 filings are promptly added to the corpus.
Dataset Size: All Form 3, 4, 5 offerings filed since 2008.
Data Update Frequency: Less than 300 milliseconds.
Supported HTTP methods: POST
Request and response content type: JSON
All requests require an API token in the Authorization header.
Authorization: AUTH_TOKEN
| Parameter | Type | Required | Description |
|---|---|---|---|
| query_type | string | Required |
Search type. Supported:
|
| query_value | string | Required | Supported:
|
| from | integer | Optional | Pagination starting offset |
| size | integer | Optional | Number of records to return (Maximum:100) |
| sort_order | string | Optional | ASC or DESC |
{
"query_type": "formType",
"query_value": "3",
"from": 0,
"size": 10,
"sort_order": "ASC"
}
<?php
$live_api_key = 'YOUR_API_TOKEN';
$url = "https://api.secfilingdata.com/v1/filings/form345/";
$postData = [
"query_type" => "formType",
"query_value" => "3",
"from" => "0",
"size" => "10",
"sort_order" => "ASC"
];
$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: $live_api_key"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
url = "https://api.secfilingdata.com/v1/filings/form345/"
api_key = "YOUR_API_TOKEN"
payload = {
"query_type": "formType",
"query_value": "3",
"from": "0",
"size": "10",
"sort_order": "ASC"
}
headers = {
"Authorization": api_key,
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.secfilingdata.com/v1/filings/form345/";
const apiKey = "YOUR_API_TOKEN";
const payload = {
query_type: "formType",
query_value: "3",
from: "0",
size: "10",
sort_order: "ASC",
};
fetch(url, {
method: "POST",
headers: {
"Authorization": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
const url = "https://api.secfilingdata.com/v1/filings/form345/";
const apiKey = "YOUR_API_TOKEN";
const payload = {
query_type: "formType",
query_value: "3",
from: "0",
size: "10",
sort_order: "ASC",
};
async function getData() {
const response = await fetch(url, {
method: "POST",
headers: {
"Authorization": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
const data = await response.json();
console.log(data);
}
getData();
curl -X POST "https://api.secfilingdata.com/v1/filings/form345/" \
-H "Authorization: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query_type":"formType",
"query_value":"3",
"from":"0",
"size":"10",
"sort_order":"ASC"
}'
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/form345/"
jsonData := []byte(`{
"query_type":"formType",
"query_value":"3",
"from":"0",
"size":"10",
"sort_order":"ASC"
}`)
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "YOUR_API_TOKEN")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
String apiKey = "YOUR_API_TOKEN";
String json = """
{
"query_type":"formType",
"query_value":"3",
"from":"0",
"size":"10",
"sort_order":"ASC"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.secfilingdata.com/v1/filings/form345/"))
.header("Authorization", apiKey)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse response =
client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
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", "YOUR_API_TOKEN");
var json = @"{
""query_type"":""formType"",
""query_value"":""3"",
""from"":""0"",
""size"":""10"",
""sort_order"":""ASC""
}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(
"https://api.secfilingdata.com/v1/filings/form345/",
content
);
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
}
require "net/http"
require "uri"
require "json"
uri = URI("https://api.secfilingdata.com/v1/filings/form345/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "YOUR_API_TOKEN"
request["Content-Type"] = "application/json"
request.body = {
query_type: "formType",
query_value: "3",
from: "0",
size: "10",
sort_order: "ASC"
}.to_json
response = http.request(request)
puts response.body
[
{
"transactions": [
{
"id": "46",
"accessionNo": "0000320193-21-000111",
"filedAt": "2021-11-12",
"schemaVersion": "X0206",
"documentType": "3",
"periodOfReport": "2021-11-09",
"notSubjectToSection16": false,
"issuer": {
"cik": "0000320193",
"name": "Apple Inc.",
"tradingSymbol": "AAPL"
},
"reportingOwner": {
"cik": "0001453149",
"name": "Gorsky Alex",
"address": {
"street1": "ONE APPLE PARK WAY",
"city": "CUPERTINO",
"state": "CA",
"zipCode": "95014"
},
"relationship": {
"isDirector": true,
"isOfficer": true,
"officerTitle": "",
"isTenPercentOwner": true,
"isOther": true
}
}
}
],
"nonDerivativeTable": [],
"footnotes": [],
"ownerSignature": {
"signatureName": "/s/ Sam Whittington, Attorney-in-Fact for Alex Gorsky",
"signatureDate": "2021-11-12"
}
}
]
application/jsonjson_encode($postData)| Status Code | Description |
|---|---|
| 200 | Successful request |
| 204 | No results found |
| 400 | Invalid request parameters |
| 401 | Unauthorized / Invalid token |
| 500 | Internal server error |