The Form D 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 D filings into JSON format, providing a user-friendly and easily searchable dataset. Real-time updates ensure that new Form D filings are promptly added to the corpus.
Dataset Size: All Form D offerings filed since 2008.
Data Update Frequency: Less than 300 milliseconds.
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 | 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 |
{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}
<?php
$api_key = 'YOUR_API_TOKEN';
$url = "https://api.secfilingdata.com/v1/filings/formd/";
$postData = [
"query_type" => "formType",
"query_value" => "D",
"from" => 0,
"size" => 10,
"sort_order" => "DESC"
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($postData),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: $api_key"
]
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
url = "https://api.secfilingdata.com/v1/filings/formd/"
headers = {
"Content-Type": "application/json",
"Authorization": "YOUR_API_TOKEN"
}
payload = {
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.secfilingdata.com/v1/filings/formd/";
const payload = {
query_type: "formType",
query_value: "D",
from: 0,
size: 10,
sort_order: "DESC"
};
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "YOUR_API_TOKEN"
},
body: JSON.stringify(payload)
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
const axios = require("axios");
const url = "https://api.secfilingdata.com/v1/filings/formd/";
const payload = {
query_type: "formType",
query_value: "D",
from: 0,
size: 10,
sort_order: "DESC"
};
axios.post(url, payload, {
headers: {
"Content-Type": "application/json",
"Authorization": "YOUR_API_TOKEN"
}
})
.then(res => console.log(res.data))
.catch(err => console.error(err));
curl -X POST "https://api.secfilingdata.com/v1/filings/formd/" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_TOKEN" \
-d '{
"query_type": "formType",
"query_value": "D",
"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/extractor/"
payload := []byte(`{
'url'=>'https://www.sec.gov/Archives/edgar/data/1760965/000176096526000030/ktb-20260404.htm',
'formtype'=>'10-Q',
'item'=>'2'
}`)
req, _ := http.NewRequest(
"POST",
url,
bytes.NewBuffer(payload),
)
req.Header.Set(
"Content-Type",package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
"application/jsopackage main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}n",
)package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
req.Header.Set(package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
"Authorization",package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
"AUTH_TOKEN",package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
)package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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))
}
package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/formd/"
jsonData := []byte(`{
"query_type": "formType",
"query_value": "D",
"from": 0,
"size": 10,
"sort_order": "DESC"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_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 okhttp3.*;
public class Main {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
String json = "{"
+ "\"query_type\":\"formType\","
+ "\"query_value\":\"D\","
+ "\"from\":0,"
+ "\"size\":10,"
+ "\"sort_order\":\"DESC\""
+ "}";
RequestBody body = RequestBody.create(
json,
MediaType.parse("application/json")
);
Request request = new Request.Builder()
.url("https://api.secfilingdata.com/v1/filings/formd/")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "YOUR_API_TOKEN")
.post(body)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}
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"": ""D"",
""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/formd/",
content
);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI("https://api.secfilingdata.com/v1/filings/formd/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, {
"Content-Type" => "application/json",
"Authorization" => "YOUR_API_TOKEN"
})
request.body = {
query_type: "formType",
query_value: "D",
from: 0,
size: 10,
sort_order: "DESC"
}.to_json
response = http.request(request)
puts response.body
[
{
"offerings": [
{
"id": "17935143",
"accessionNo": "0001476977-10-000001",
"filedAt": "2010-03-18",
"submissionType": "D",
"primaryIssuer": {
"cik": "0001452583",
"name": "Crownbutte Wind Power, Inc.",
"address": {
"street1": "111 5TH AVENUE NE",
"city": "MANDAN",
"state": "ND",
"issuerstateOrCountryDescription": "",
"zipCode": "58554"
},
"issuerPhoneNumber": "701-667-2073",
"jurisdictionOfInc": "NEVADA",
"issuerPreviousNameList": "None",
"edgarPreviousNameList": "None",
"entityType": "Corporation"
}
}
],
"relatedPersonsList": {
"firstName": "Timothy",
"lastName": "Simons",
"address": {
"street1": "111 Fifth Avenue NE",
"city": "Mandan",
"stateOrCountry": "ND",
"stateOrCountryDescription": "",
"zipCode": "58554"
},
"relationshipList": {
"relationship": {
"0": "Director"
}
},
"relationshipClarification": ""
},
"offeringData": {
"industryGroup": "Other Energy",
"issuerSize": "No Revenues",
"federalExemptionsExclusions": "",
"typeOfFiling": {
"newOrAmendment": {
"isAmendment": false
},
"dateOfFirstSale": "2010-03-12"
},
"durationOfOffering": {
"moreThanOneYear": false
},
"typesOfSecuritiesOffered": {
"isEquityType": true
},
"businessCombinationTransaction": {
"isBusinessCombinationTransaction": false
},
"minimumInvestmentAccepted": 0,
"offeringSalesAmounts": {
"totalOfferingAmount": 700000,
"totalAmountSold": 195000,
"totalRemaining": 505000
},
"investors": {
"hasNonAccreditedInvestors": false,
"totalNumberAlreadyInvested": 3
},
"salesCommissionsFindersFees": {
"salesCommissions": {
"dollarAmount": 0
},
"findersFees": {
"dollarAmount": 0
}
},
"useOfProceeds": {
"grossProceedsUsed": {
"dollarAmount": 0
}
},
"signatureBlock": {
"authorizedRepresentative": false,
"signature": {
"issuerName": "Crownbutte Wind Power, Inc.",
"signatureName": "/s/ Timothy Smons",
"nameOfSigner": "Timothy Simons",
"signatureTitle": "CEO & President",
"signatureDate": "2010-03-18"
}
}
}
}
]
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 |