API Documentation

Query API

Insider Transactions API

Form D API

Download and PDF Generator API

XBRL to JSON Converter API

Mapping API

Form 3, 4, 5 Parse API

Form 144 API - Restricted Sales

Nport - API

Form 144 API – Restricted Sales

Retrieve SEC Form 144 filings related to restricted and control securities sales using the API. Access structured real-time filing data, including issuer, seller, broker, and securities transaction details directly from SEC sources.

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

Authentication

All requests require an API token in the Authorization header.

Authorization: AUTH_TOKEN

Request Body Parameters

Parameter Type Required Description
query_type string No Search type.

Supported:
  • CIK
  • Can be empty for latest filings
query_value string Yes Search value based on query_type
from integer Yes Pagination starting offset
size integer Yes Number of records to return (Maximum:100)
sort_order string Yes ASC or DESC

Request Example

{
  "query_type": "cik",
  "query_value": "320193",
  "from": 0,
  "size": 10,
  "sort_order": "DESC"
}

Code Examples

<?php

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

$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;
import requests

url = "https://api.secfilingdata.com/v1/filings/form144/"

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())
const url = "https://api.secfilingdata.com/v1/filings/form144/";

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));
const axios = require("axios");

const url = "https://api.secfilingdata.com/v1/filings/form144/";

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);
});
curl --location 'https://api.secfilingdata.com/v1/filings/form144/' \
--header 'Content-Type: application/json' \
--header 'Authorization: AUTH_TOKEN' \
--data '{
    "query_type":"cik",
    "query_value":"320193",
    "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/form144/"

    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))
}
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/form144/"
        );

        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();
    }
}
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/form144/",
            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/form144/"
)

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

Response Example

[
  {
    "issuerInfo": {
      "issuerCik": "0001851112",
      "issuerName": "RISKIFIED LTD.",
      "secFileNumber": "001-40692",
      "issuerAddress": {
        "street1": "220 5TH AVENUE",
        "city": "NEW YORK",
        "stateOrCountry": "NY",
        "zipCode": "10001"
      },
      "issuerContactPhone": "(203) 300-9264",
      "nameOfPersonForWhoseAccountTheSecuritiesAreToBeSold": "Qumra Capital Israel I Ltd.",
      "relationshipsToIssuer": "Director"
    },
    "securitiesInformation": [
      {
        "securitiesClassTitle": "\t Class A ordinary shares",
        "brokerOrMarketMakerDetails": {
          "name": "Oppenheimer & Co. Inc.",
          "address": {
            "street1": "85 Broad st. ",
            "city": "New York",
            "stateOrCountry": "NY",
            "zipCode": "10004"
          }
        },
        "numberOfUnitsToBeSold": 500000,
        "aggregateMarketValue": 2445000,
        "noOfUnitsOutstanding": 104034048,
        "approxSaleDate": "2026-05-21",
        "securitiesExchangeName": "Nadaq"
      }
    ],
    "securitiesToBeSold": [
      {
        "securitiesClassTitle": "Class A ordinary shares",
        "acquiredDate": "2016-01-31",
        "natureOfAcquisitionTransaction": "Private Placement",
        "nameOfPersonFromWhomAcquired": "From the Issuer",
        "isGiftTransaction": false,
        "amountOfSecuritiesAcquired": 312500,
        "paymentDate": "2016-01-31",
        "natureOfPayment": "Cash"
      },
      {
        "securitiesClassTitle": "Class A ordinary shares",
        "acquiredDate": "2020-05-05",
        "natureOfAcquisitionTransaction": "Private Placement",
        "nameOfPersonFromWhomAcquired": "From the Issuer",
        "isGiftTransaction": false,
        "amountOfSecuritiesAcquired": 187500,
        "paymentDate": "2020-05-05",
        "natureOfPayment": "Cash"
      }
    ],
    "nothingToReportFlagOnSecuritiesSoldInPast3Months": true,
    "securitiesSoldInPast3Months": [],
    "remarks": "",
    "noticeSignature": {
      "noticeDate": "2026-05-21",
      "planAdoptionDates": [],
      "signature": "Qumra Capital Israel I Ltd."
    }
  }
]
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