Properties
| Name | Type | Description |
|---|---|---|
| ticker | string | |
| cik | string | |
| insider_name | string | |
| role | object | |
| role_detail | string | Free text from the filing about the role: for `officer` the job title, for `other` the kind of relationship. Not set for `director` and `10%-owner`, and otherwise only when the filing states it. |
| reporting_owners | array | All reporters of the filing. A joint filing (a fund, its general partner and the acting person, for instance) lists several; the transaction itself is still reported only once and appears here once. ` |
| side | string | Trade direction; empty for Form 5 codes without buy/sell. |
| code | string | Raw SEC transaction code (P, S, G, A, …). |
| form_type | string | Source of the transaction – Form 4 (ongoing), Form 5 (annual report) or an amendment of either (`4/A`, `5/A`). An amendment is a correction the insider files later, sometimes months later. It is retur |
| original_filed_on | stringnull | For an amendment (`4/A`, `5/A`), the filing date of the original filing it corrects, as stated in the amendment; `null` for Form 4 and Form 5. The amendment names only this date, not the original's ac |
| shares | number | |
| price | object | Price per share. `null` when the filing states none – that happens when a trade consisted of several partial executions at different prices and the reporter gives the price in a footnote instead. A re |
| transaction_date | string | |
| filed_at | string | |
| is_10b5_1 | booleannull | Planned 10b5-1 sale where detectable; otherwise `null`. |
| ownership | string | Whether the insider holds the shares directly (`direct`) or through a vehicle (`indirect`). Empty when the filing states nothing. |
| ownership_detail | string | The holding vehicle in case of indirect ownership. An insider reports the same trade separately per vehicle; without this field such rows are identical in date, share count and price and look like dup |
| shares_owned_after | numbernull | Reported holding after the transaction, relative to the holding vehicle of this row. `null` when the filing does not state it – a holding of `0` after a full sale, by contrast, is a real statement. |
| filing_id | string | Accession number of the filing. All modules return it without a prefix; `/filings/{id}` additionally accepts the spelling with `fil_`. |
| source_url | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/algoum-de/json-schema/algoum-de-insider-transaction-schema.json",
"title": "InsiderTransaction",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/algoum-de-api-openapi.json#/components/schemas/InsiderTransaction",
"type": "object",
"required": [
"ticker",
"cik",
"insider_name",
"role",
"side",
"shares",
"price",
"transaction_date",
"filed_at",
"filing_id",
"source_url",
"reporting_owners"
],
"properties": {
"ticker": {
"type": "string"
},
"cik": {
"type": "string"
},
"insider_name": {
"type": "string"
},
"role": {
"$ref": "#/$defs/InsiderRole"
},
"role_detail": {
"type": "string",
"description": "Free text from the filing about the role: for `officer` the job title, for `other` the kind of relationship. Not set for `director` and `10%-owner`, and otherwise only when the filing states it."
},
"reporting_owners": {
"type": "array",
"description": "All reporters of the filing. A joint filing (a fund, its general partner and the acting person, for instance) lists several; the transaction itself is still reported only once and appears here once. `insider_name`, `role` and `role_detail` describe the first entry of this list.",
"items": {
"$ref": "#/$defs/ReportingOwner"
}
},
"side": {
"type": "string",
"enum": [
"buy",
"sell",
""
],
"description": "Trade direction; empty for Form 5 codes without buy/sell."
},
"code": {
"type": "string",
"description": "Raw SEC transaction code (P, S, G, A, …)."
},
"form_type": {
"type": "string",
"enum": [
"4",
"5",
"4/A",
"5/A"
],
"description": "Source of the transaction – Form 4 (ongoing), Form 5 (annual report) or an amendment of either (`4/A`, `5/A`). An amendment is a correction the insider files later, sometimes months later. It is returned as rows of its own next to the original, which stays unchanged; it usually repeats the whole filing, so do not add the rows of an original and its amendment together."
},
"original_filed_on": {
"type": [
"string",
"null"
],
"format": "date",
"description": "For an amendment (`4/A`, `5/A`), the filing date of the original filing it corrects, as stated in the amendment; `null` for Form 4 and Form 5. The amendment names only this date, not the original's accession number, so match the original by issuer, insider and this date."
},
"shares": {
"type": "number"
},
"price": {
"oneOf": [
{
"$ref": "#/$defs/Money"
},
{
"type": "null"
}
],
"description": "Price per share. `null` when the filing states none – that happens when a trade consisted of several partial executions at different prices and the reporter gives the price in a footnote instead. A reported price of `0` is a real statement, by contrast. Form 4 has no currency field. `currency` is `USD` unless the filing itself says otherwise: a footnote on the price naming another currency (for example `CAD`), or a security title that names a listing outside the US (for example `BRL` for \"Preference shares - BBDC4\" on B3). A footnote stating that the price was converted into US dollars keeps `USD`. Prices in pence are reported as `GBX`."
},
"transaction_date": {
"type": "string",
"format": "date"
},
"filed_at": {
"type": "string",
"format": "date-time"
},
"is_10b5_1": {
"type": [
"boolean",
"null"
],
"description": "Planned 10b5-1 sale where detectable; otherwise `null`."
},
"ownership": {
"type": "string",
"enum": [
"direct",
"indirect",
""
],
"description": "Whether the insider holds the shares directly (`direct`) or through a vehicle (`indirect`). Empty when the filing states nothing."
},
"ownership_detail": {
"type": "string",
"description": "The holding vehicle in case of indirect ownership. An insider reports the same trade separately per vehicle; without this field such rows are identical in date, share count and price and look like duplicates."
},
"shares_owned_after": {
"type": [
"number",
"null"
],
"description": "Reported holding after the transaction, relative to the holding vehicle of this row. `null` when the filing does not state it – a holding of `0` after a full sale, by contrast, is a real statement."
},
"filing_id": {
"type": "string",
"description": "Accession number of the filing. All modules return it without a prefix; `/filings/{id}` additionally accepts the spelling with `fil_`."
},
"source_url": {
"type": "string",
"format": "uri"
}
},
"$defs": {
"InsiderRole": {
"type": "string",
"description": "Relationship of the reporter to the issuer, taken from the four check boxes of the Form 4 section “Relationship of Reporting Person(s) to Issuer”. `other` stands for the *Other* box; the label entered there (e.g. “Trustee”) is in `role_detail`.",
"enum": [
"officer",
"director",
"10%-owner",
"other"
]
},
"Money": {
"type": "object",
"description": "Monetary amount with currency.",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"description": "ISO 4217 code, except `GBX` for prices in British pence."
}
}
},
"ReportingOwner": {
"type": "object",
"description": "A reporting person or entity of a §16 filing.",
"required": [
"name",
"cik",
"role"
],
"properties": {
"name": {
"type": "string"
},
"cik": {
"type": "string"
},
"role": {
"$ref": "#/$defs/InsiderRole"
},
"role_detail": {
"type": "string",
"description": "Free text from the filing about the role: for `officer` the job title, for `other` the kind of relationship."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/algoum-de-insider-transaction"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.