API Docs
/
Core Filing APIs
/
Query API
Query API
Empower your searches across the extensive collection of 18+ million filings and exhibits on SEC EDGAR since 1993 using the Query API. This API accommodates both simple and complex filter expressions, returning filings in JSON format with comprehensive metadata, filer information, filing attachments, original SEC source URLs, and more. The API offers over 20 search parameters, including filer ticker symbols, CIKs and more.
POST
https://api.secfilingdata.com/v1/filings/query
COPY
Authentication
All requests require an API token in the Authorization header.
Copy
Authorization: AUTH_TOKEN
Request Parameters
Parameter
Type
Required
Description
query_type
string
Required
Search type. Supported:
formType
sic
cik
companyName
agentName
fileNo
accessNum
ticker
agentcik
issuercik
seriesId
classId
ein
stateOfIncorporation
exchange
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 String Example
Description
Type
Value
Search by formType
formType
10-K
Search by sic
sic
3714
Search by cik
cik
0000320193
Search by companyName
companyName
Apple Inc.
Search by agentName
agentName
discount edgar /fa
Search by fileNo
fileNo
001-36743
Search by accessNum
accessNum
0000320193-22-000063
Search by ticker
ticker
AAPL
Search by agentcik
agentcik
0001477932
Search by issuercik
issuercik
1453149
Search by series id
seriesId
S000009244
Search by class id
classId
C000025190
Search by ein
ein
710388071
Search by stateOfIncorporation
stateOfIncorporation
NY
Search by exchange
exchange
Nasdaq
Request Example
{
'query_type' => 'cik',
'query_value' => '320193',
'from' => 0,
'size' => 10,
'sort_order' => 'DESC',
'startDate' => '',
'endDate' => '',
}
Response
Copy
<?php
$url = "https://api.secfilingdata.com/v1/filings/query";
$auth_token = 'AUTH_TOKEN';
$postData = array(
'query_type' => 'cik',
'query_value' => '320193',
'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;
Copy
import requests
url = "https://api.secfilingdata.com/v1/filings/query"
headers = {
"Content-Type": "application/json",
"Authorization": "AUTH_TOKEN"
}
payload = {
"query_type": "cik",
"query_value": "320193",
"from": 0,
"size": 10,
"sort_order": "DESC"
}
response = requests.post(
url,
headers=headers,
json=payload
)
print(response.json())
Copy
const url = "https://api.secfilingdata.com/v1/filings/query";
const payload = {
query_type: "cik",
query_value: "320193",
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));
Copy
const axios = require("axios");
const url = "https://api.secfilingdata.com/v1/filings/query";
const payload = {
query_type: "cik",
query_value: "320193",
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);
});
Copy
curl --location 'https://api.secfilingdata.com/v1/filings/query' \
--header 'Content-Type: application/json' \
--header 'Authorization: AUTH_TOKEN' \
--data '{
"query_type":"cik",
"query_value":"320193",
"from":0,
"size":10,
"sort_order":"DESC"
}'
Copy
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.secfilingdata.com/v1/filings/query"
payload := []byte(`{
"query_type":"cik",
"query_value":"320193",
"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))
}
Copy
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/query"
);
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\":\"cik\","
+ "\"query_value\":\"320193\","
+ "\"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();
}
}
Copy
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"": ""cik"",
""query_value"": ""320193"",
""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/query",
content
);
var result =
await response.Content
.ReadAsStringAsync();
Console.WriteLine(result);
}
}
Copy
require 'net/http'
require 'json'
require 'uri'
url = URI(
"https://api.secfilingdata.com/v1/filings/query"
)
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: "cik",
query_value: "320193",
from: 0,
size: 10,
sort_order: "DESC"
}.to_json
response = http.request(request)
puts response.body
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
204
No results found
400
Invalid request parameters
401
Unauthorized / Invalid token
500
Internal server error