I maintain this Actor. This is an AI-assisted technical walkthrough, fact-checked against its accepted source contract and saved acceptance evidence.
A funding research queue often receives the same Form D notice through several searches. One source may return a company label, another a set of CIKs, and a third an amendment. A clean CRM row is useful only if it does not hide which filing the observations actually describe.
The Form D Filing Evidence Reconciler turns supplied source records into accession-level assessments. It accepts the relevant adapters from Funding Alert and Funding Round Tracker. It does not launch either source Actor, fetch a fresh filing, or establish that a financing round closed. Source collection and reconciliation are separate steps with separate costs.
Use the accession, not the alert row
The exact valid accession number is the filing identity. A generic entityId is not enough to manufacture one. Multiple query observations can contribute evidence for the same accession without becoming multiple financing events. This is particularly helpful when broad searches and company-specific searches overlap.
CIKs are retained as an observed set. Picking the first identifier and labelling it the issuer would introduce a role claim the source records may not support. A set disagreement deserves review, just as contradictory filing dates or company names do. Keep those distinctions in your importer rather than flattening all arrays into a single convenient string.
An amendment is a source form value
The product preserves D and D/A as observed form values. It does not infer successful fundraising, proceeds received, an investor relationship, or an issuer role. An analyst can follow the cited evidence to answer those questions in a separate process. A row in an alert feed is not a substitute for that review.
The saved acceptance example includes accession_confirmed_single_source, action review_filing, and medium confidence. A single-source assessment is still useful: it gives the importer a stable accession key and makes its evidence basis explicit. It should not be relabelled as corroborated by two sources simply because two upstream products exist.
Design the import around disagreements
Useful output fields include forms, formConflict, filedAts, filedAtConflict, observedCiks, and cikSetConflict. Store the assessment alongside source URLs and queries. If sourceQueriesOmittedCount is positive, the displayed queries are a bounded explanation, not a complete query log. Coverage and partial flags should survive the move into your database.
For a small acceptance check, use two copies of one actual accession, then add a contradictory company label in a clearly marked synthetic fixture. Verify that the accession remains one assessment and the discrepancy is visible. Separately pass a baseline or no-change source record. It should not create a paid filing assessment without a concrete filing. Finally, compare the retained filing date with the observation timestamp: rerunning the same snapshot must not be interpreted as discovering a new financing event. Identical input adds no new source evidence and a new run can be charged again.
Run a small saved snapshot
Start with an existing Dataset you are authorized to read. Replace the Dataset placeholder below with its actual ID. Supported input can also use a source run ID or inline records; choose one explicit source. This Actor does not launch the upstream collection for you.
curl --request POST \
'https://api.apify.com/v2/acts/zinin~form-d-filing-evidence-reconciler/runs?maxTotalChargeUsd=0.10' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"datasetId":"REPLACE_WITH_YOUR_DATASET_ID","maxInputRows":100,"maxResults":10}'
The response identifies an asynchronous run. Save that run ID and check its status before reading its default Dataset. A client timeout does not cancel a server run; inspect the existing ID before starting another one. maxInputRows bounds ingestion and maxResults caps useful output. Neither option establishes complete coverage of a larger source. The API charge limit is a ceiling, not a promise that ten results will fit.
Price and evidence limits
On 15 October 2026 the observed FREE-plan price is $0.03 per filing assessment, with no paid start event for this Actor. Other subscription tiers can have different prices; verify the current Actor page before use. Source collection is a separate activity and may carry its own charges. Free diagnostic rows do not count as paid useful assessments.
The examples discussed here come from saved owner acceptance runs. They show specific observed behavior, rather than customer acceptance, profitability, or an exhaustive guarantee for every input. A new run of identical input can be charged again without adding new source evidence. Retain input provenance, the actual build ID, and the source observation window when comparing results over time.
Top comments (1)
The "compare the retained filing date with the observation timestamp" check has one more trap if
filedAtis ever a full timestamp rather than a date: EDGAR's submissions files carry anacceptanceDateTimelabelled UTC, and in a sample I measured (450 filings from 25 companies' files, 2026-10-11) it was correct for every filing in some companies' files and shifted by an extra Eastern offset (+4 h in EDT, +5 h in EST) for every filing in others. JPMorgan's 06:30 ET filing read 14:30Z instead of 10:30Z. The same filing also read differently in two files (a company's and its director's). I don't know the cause, and that is a sample, not a rule.For your reconciler it means two sources can disagree about the same accession's time by exactly 4 or 5 hours, and a
filedAtConflictflag will fire on that. Worth classifying a conflict whose difference equals the Eastern UTC offset on that date as a known source quirk, separate from a real disagreement, so analysts aren't sent to review it.Write-up with the files: canlicapital.com/notes/edgar-acceptance-times. I built canli-mcp (free, MIT, no key,
npx -y canli-mcp); repos at github.com/arhancanli/canlicapital.