curl --request POST \
--url https://api.croma.run/us/sec/form-d-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "databricks",
"funds": "exclude"
}
'import requests
url = "https://api.croma.run/us/sec/form-d-search/v1"
payload = {
"query": "databricks",
"funds": "exclude"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'databricks', funds: 'exclude'})
};
fetch('https://api.croma.run/us/sec/form-d-search/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/us/sec/form-d-search/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'databricks',
'funds' => 'exclude'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/us/sec/form-d-search/v1"
payload := strings.NewReader("{\n \"query\": \"databricks\",\n \"funds\": \"exclude\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/us/sec/form-d-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"databricks\",\n \"funds\": \"exclude\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/us/sec/form-d-search/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"databricks\",\n \"funds\": \"exclude\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"query": "<string>",
"issuer_cik": "<string>",
"state": "<string>",
"jurisdiction": "<string>",
"industry": "<string>",
"fund_type": "<string>",
"funds": "<string>",
"form_type": "<string>",
"filed_from": "<string>",
"filed_to": "<string>",
"min_amount_sold": 123,
"total": 123,
"page": 123,
"per_page": 123,
"total_pages": 123,
"count": 123,
"filings": [
{
"accession_number": "<string>",
"form_type": "D",
"filed_on": "<string>",
"file_number": "<string>",
"sic_code": "<string>",
"issuer": {
"cik": "<string>",
"name": "<string>",
"previous_names": [
"<string>"
],
"entity_type": "<string>",
"entity_type_other": "<string>",
"incorporated": {
"span": "within_five_years",
"year": 123
},
"jurisdiction": "<string>",
"address": {
"street_1": "<string>",
"street_2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
},
"phone": "<string>"
},
"co_issuers": [
{
"cik": "<string>",
"name": "<string>",
"entity_type": "<string>",
"jurisdiction": "<string>"
}
],
"industry_group": "<string>",
"is_pooled_investment_fund": true,
"investment_fund_type": "venture_capital_fund",
"is_40_act_fund": true,
"revenue_range": "<string>",
"aggregate_net_asset_value_range": "<string>",
"federal_exemptions": [
"<string>"
],
"is_amendment": true,
"previous_accession_number": "<string>",
"first_sale_on": "<string>",
"first_sale_yet_to_occur": true,
"more_than_one_year": true,
"securities": {
"equity": true,
"debt": true,
"option_or_warrant": true,
"security_to_be_acquired": true,
"pooled_investment_fund_interests": true,
"tenant_in_common": true,
"mineral_property": true,
"other": true,
"other_description": "<string>"
},
"is_business_combination": true,
"business_combination_note": "<string>",
"minimum_investment": 123,
"offering": {
"total_amount": 123,
"total_amount_indefinite": true,
"amount_sold": 123,
"remaining": 123,
"remaining_indefinite": true,
"note": "<string>"
},
"investors": {
"has_non_accredited": true,
"non_accredited_count": 123,
"total_count": 123
},
"sales_commissions": {
"amount": 123,
"is_estimate": true
},
"finders_fees": {
"amount": 123,
"is_estimate": true
},
"proceeds_to_related_persons": {
"amount": 123,
"is_estimate": true,
"note": "<string>"
},
"related_persons": [
{
"name": "<string>",
"first_name": "<string>",
"middle_name": "<string>",
"last_name": "<string>",
"relationships": [
"<string>"
],
"clarification": "<string>",
"address": {
"street_1": "<string>",
"street_2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
],
"related_person_names": [
"<string>"
],
"recipients": [
{
"name": "<string>",
"crd_number": "<string>",
"broker_dealer_name": "<string>",
"broker_dealer_crd_number": "<string>",
"states": [
"<string>"
],
"foreign_solicitation": true,
"address": {
"street_1": "<string>",
"street_2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
],
"signature": {
"issuer_name": "<string>",
"signer_name": "<string>",
"title": "<string>",
"signed_on": "<string>"
},
"filing_url": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}SEC Form D Search
Search every Form D filed with the SEC since 2008 (the notice a US company or fund files when it raises money privately) by free text over the issuer and its executives, directors and promoters, by issuer CIK, state, jurisdiction of incorporation, industry group, fund type, funds in or out, form type (new or amendment), filing-date window and minimum amount sold. Newest first, pages of up to 50. Served by Croma (as_of says how current the data is), brought up to date daily.
Dataset endpoint: answers from the whole source in milliseconds and carries as_of.
curl --request POST \
--url https://api.croma.run/us/sec/form-d-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "databricks",
"funds": "exclude"
}
'import requests
url = "https://api.croma.run/us/sec/form-d-search/v1"
payload = {
"query": "databricks",
"funds": "exclude"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'databricks', funds: 'exclude'})
};
fetch('https://api.croma.run/us/sec/form-d-search/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/us/sec/form-d-search/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'databricks',
'funds' => 'exclude'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/us/sec/form-d-search/v1"
payload := strings.NewReader("{\n \"query\": \"databricks\",\n \"funds\": \"exclude\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/us/sec/form-d-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"databricks\",\n \"funds\": \"exclude\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/us/sec/form-d-search/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"databricks\",\n \"funds\": \"exclude\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"query": "<string>",
"issuer_cik": "<string>",
"state": "<string>",
"jurisdiction": "<string>",
"industry": "<string>",
"fund_type": "<string>",
"funds": "<string>",
"form_type": "<string>",
"filed_from": "<string>",
"filed_to": "<string>",
"min_amount_sold": 123,
"total": 123,
"page": 123,
"per_page": 123,
"total_pages": 123,
"count": 123,
"filings": [
{
"accession_number": "<string>",
"form_type": "D",
"filed_on": "<string>",
"file_number": "<string>",
"sic_code": "<string>",
"issuer": {
"cik": "<string>",
"name": "<string>",
"previous_names": [
"<string>"
],
"entity_type": "<string>",
"entity_type_other": "<string>",
"incorporated": {
"span": "within_five_years",
"year": 123
},
"jurisdiction": "<string>",
"address": {
"street_1": "<string>",
"street_2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
},
"phone": "<string>"
},
"co_issuers": [
{
"cik": "<string>",
"name": "<string>",
"entity_type": "<string>",
"jurisdiction": "<string>"
}
],
"industry_group": "<string>",
"is_pooled_investment_fund": true,
"investment_fund_type": "venture_capital_fund",
"is_40_act_fund": true,
"revenue_range": "<string>",
"aggregate_net_asset_value_range": "<string>",
"federal_exemptions": [
"<string>"
],
"is_amendment": true,
"previous_accession_number": "<string>",
"first_sale_on": "<string>",
"first_sale_yet_to_occur": true,
"more_than_one_year": true,
"securities": {
"equity": true,
"debt": true,
"option_or_warrant": true,
"security_to_be_acquired": true,
"pooled_investment_fund_interests": true,
"tenant_in_common": true,
"mineral_property": true,
"other": true,
"other_description": "<string>"
},
"is_business_combination": true,
"business_combination_note": "<string>",
"minimum_investment": 123,
"offering": {
"total_amount": 123,
"total_amount_indefinite": true,
"amount_sold": 123,
"remaining": 123,
"remaining_indefinite": true,
"note": "<string>"
},
"investors": {
"has_non_accredited": true,
"non_accredited_count": 123,
"total_count": 123
},
"sales_commissions": {
"amount": 123,
"is_estimate": true
},
"finders_fees": {
"amount": 123,
"is_estimate": true
},
"proceeds_to_related_persons": {
"amount": 123,
"is_estimate": true,
"note": "<string>"
},
"related_persons": [
{
"name": "<string>",
"first_name": "<string>",
"middle_name": "<string>",
"last_name": "<string>",
"relationships": [
"<string>"
],
"clarification": "<string>",
"address": {
"street_1": "<string>",
"street_2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
],
"related_person_names": [
"<string>"
],
"recipients": [
{
"name": "<string>",
"crd_number": "<string>",
"broker_dealer_name": "<string>",
"broker_dealer_crd_number": "<string>",
"states": [
"<string>"
],
"foreign_solicitation": true,
"address": {
"street_1": "<string>",
"street_2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
],
"signature": {
"issuer_name": "<string>",
"signer_name": "<string>",
"title": "<string>",
"signed_on": "<string>"
},
"filing_url": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}Authorizations
Use Authorization: Bearer YOUR_API_KEY
Headers
Optional client-chosen key for this request (any string up to 255 characters, e.g. a UUID). Every Croma operation is an idempotent lookup: repeating a request with the same body returns the same result and creates nothing, so retrying after a timeout or network failure is always safe. The key is echoed back in the Idempotency-Key response header so you can correlate a retry with its first attempt. Each attempt that reaches the API counts against the rate limit.
255"0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b"
Body
Palabras a buscar en el nombre del emisor y en los nombres de sus directivos, directores y promotores (opcional).
200CIK del emisor en EDGAR, con o sin ceros a la izquierda (opcional).
^\d{0,10}$Código de estado de dos letras, p. ej. FL (opcional).
^(?:[A-Z]{2})?$Jurisdicción de constitución tal como la escribe el formulario, p. ej. DELAWARE, CAYMAN ISLANDS (opcional).
40Grupo de industria tal como lo nombra el formulario, p. ej. Other Technology, Biotechnology, Pooled Investment Fund (opcional).
60Tipo de fondo, solo para emisores que son fondos: venture_capital_fund, private_equity_fund, hedge_fund u other_investment_fund (opcional).
, venture_capital_fund, private_equity_fund, hedge_fund, other_investment_fund Qué hacer con los fondos de inversión (pooled investment funds): include (por defecto), exclude para ver solo empresas operativas, only para ver solo fondos.
include, exclude, only D para notificaciones nuevas, D/A para enmiendas (opcional).
, D, D/A Optional date filter in yyyy-mm-dd format.
Optional date filter in yyyy-mm-dd format.
Monto mínimo ya vendido, en dólares (opcional).
x >= 01-based page number for paginated results.
1 <= x <= 1000Resultados por página (1-50).
1 <= x <= 50Response
Successful response
Show child attributes
Show child attributes