Company Subsidiaries Database API

Retrieve SEC company subsidiaries information extracted from Exhibit 21 filings. Search by company name, ticker, jurisdiction, or CIK and optionally retrieve only the current filing or historical filings.

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

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:
  • companyName
  • Ticker
  • jurisdiction
  • CIK
query_value string Required Search value based on query_type
history_type string Optional
  • all
  • current
  • historical
  • Default: all
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": "Ticker",
  "query_value": "AAPL",
  "history_type":"all",
  "from": 0,
  "size": 10,
  "sort_order": "DESC"
}

Response

<?php

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

$auth_token = 'AUTH_TOKEN';

$postData = array(
    'query_type' => 'Ticker',
    'query_value' => 'AAPL',
    'history_type' => 'current',
    '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/subsidiaries/"

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

payload = {
    "query_type":"Ticker",
    "query_value":"AAPL",
    "history_type":"current",
    "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/subsidiaries/";

const payload = {
    query_type: "Ticker",
    query_value: "AAPL",
    history_type: "current",
    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/subsidiaries/";

const payload = {
    query_type: "Ticker",
    query_value: "AAPL",
    history_type: "current",
    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/subsidiaries/' \
--header 'Content-Type: application/json' \
--header 'Authorization: AUTH_TOKEN' \
--data '{
    "query_type":"Ticker",
    "query_value":"AAPL",
    "history_type":"current",
    "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/subsidiaries/"

    payload := []byte(`{
        "query_type":"Ticket",
        "query_value":"AAPL",
        "history_type":"all",
        "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/subsidiaries/"
        );

        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\":\"Ticker\","
                + "\"query_value\":\"AAPL\","
                 + "\"history_type\":\"all\","
                + "\"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"": ""Ticker"",
            ""query_value"": ""AAPL"",
            ""history_type"": ""all"",
            ""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/subsidiaries/",
            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/subsidiaries/"
)

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: "Ticker",
  query_value: "AAPL",
  query_value: "all",
  from: 0,
  size: 10,
  sort_order: "DESC"
}.to_json

response = http.request(request)

puts response.body

Response Example

{
  "total": 10,
  "from": 0,
  "size": 20,
  "companyName": "Apple Inc.",
  "ticker": "AAPL",
  "cik": "0000320193",
  "filings": [
    {
      "accessionNo": "0000320193-21-000105",
      "filedAt": "2021-10-28 18:04:28",
      "subsidiaries": [
        {
          "name": "Apple Asia Limited",
          "jurisdiction": "Hong Kong"
        },
        {
          "name": "Apple Canada Inc.",
          "jurisdiction": "Canada"
        },
        {
          "name": "Apple Distribution International Limited",
          "jurisdiction": "Ireland"
        }
      ]
    },
    {
      "accessionNo": "0000320193-20-000096",
      "filedAt": "2020-10-29 18:06:25",
      "subsidiaries": [
        {
          "name": "Apple Europe Limited",
          "jurisdiction": "United Kingdom"
        },
        {
          "name": "Apple France",
          "jurisdiction": "France"
        },
        {
          "name": "Braeburn Capital, Inc.",
          "jurisdiction": "Nevada, U.S."
        }
      ]
    }
  ]
}
```
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

Dataset Coverage

The Company Subsidiaries Database contains subsidiary information extracted from SEC Exhibit 21 filings submitted by public companies. Each filing includes the reporting company together with all disclosed subsidiaries and their jurisdictions of incorporation.

  • Company Name
  • Ticker Symbol
  • CIK Number
  • SEC Accession Number
  • Filing Date
  • Acceptance Date & Time
  • Form Type
  • Subsidiary Name
  • Jurisdiction of Incorporation