Form 5500 Employee Benefit Plan & 401(k) Filings Scraper
Pricing
from $12.75 / 1,000 results
Form 5500 Employee Benefit Plan & 401(k) Filings Scraper
Scrape US Form 5500 benefit plan filings: 401(k), pension, ESOP and health plans with the sponsoring employer name, EIN, mailing address, participant counts, plan assets and decoded plan features. Filter by employer, state, NAICS sector, plan year, headcount or assets. Export to JSON, CSV or Excel.
Pricing
from $12.75 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Form 5500 Employee Benefit Plan & 401(k) Filings Scraper
Here is one real result, with every field the actor returns:
{"ackId": "20250827123612NAL0005026227001","ein": "770493581","einFormatted": "77-0493581","planNumber": "001","planName": "Google LLC 401(k) Savings Plan","sponsorName": "Google LLC","sponsorAddress": "1600 Amphitheatre Parkway","sponsorCity": "Mountain View","sponsorState": "CA","sponsorZip": "94043-1351","sponsorCountryCode": "US","planYear": 2024,"dateReceived": "2025-08-27T12:36:12Z","dateReceivedDay": "2025-08-27","employerPlanTypeCode": 1,"employerPlanTypeLabel": "Single-employer plan","planCategory": "Pension","participantsBoy": 152774,"participantsEoy": 155598,"participantChange": 2824,"participantChangePct": 1.85,"employerSizeBand": "5000+","assetsBoyUsd": 39047152408,"assetsEoyUsd": 48738057415,"assetChangeUsd": 9690905007,"assetChangePct": 24.82,"assetsPerParticipantUsd": 313230.62,"planCharacteristicCodes": ["2E", "2F", "2G", "2J", "2K", "2R", "2S", "2T", "3F", "3H"],"planCharacteristics": ["Profit-sharing","ERISA section 404(c) plan","Total participant-directed account plan","Code section 401(k) feature","Code section 401(m) arrangement","Participant-directed brokerage accounts provided as an investment option under the plan","Plan provides for automatic enrollment","Total or partial participant-directed account plan","Plan sponsor(s) received services of leased employees","Plan sponsor(s) is (are) a member(s) of a controlled group"],"is401kPlan": true,"isDefinedBenefitPension": false,"isDefinedContributionPension": true,"isWelfarePlan": false,"hasAutomaticEnrollment": true,"hasBrokerageWindow": true,"isEsop": false,"isFrozenPlan": false,"isCashBalancePlan": false,"isPooledEmployerPlan": false,"isControlledGroupMember": true,"usesLeasedEmployees": true,"offersHealthBenefits": false,"offersDentalBenefits": false,"offersVisionBenefits": false,"offersLifeInsurance": false,"offersDisabilityBenefits": false,"offersSeverancePay": false,"filingPdfUrl": "https://efast2-filings-public.s3.amazonaws.com/prd/2025/08/27/20250827123612NAL0005026227001.pdf","matchedQuery": "Google","source": "US DOL EFAST2 Form 5500","observedAt": "2026-08-14T07:53:33.139Z","aiSummary": "The Google LLC 401(k) Savings Plan is a defined-contribution pension plan sponsored by Google LLC, serving 155,598 participants with assets totaling approximately $48.7 billion. Notable features include automatic enrollment, a brokerage window, and various participant-directed investment options. The plan also includes profit-sharing and is structured under ERISA section 404(c) guidelines."}
The most complete Form 5500 benefit plan scraper available. It returns every field the US DOL EFAST2 Form 5500 filings expose for each plan, plus decoded plan characteristics, participant and asset deltas, boolean feature flags and an optional AI summary, and gives you more than twenty filters to target exactly the filings you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the public US Department of Labor EFAST2 Form 5500 filings index, applies the filters you pass as input, and writes one normalized record per filing to the run's dataset. Plan characteristic codes are decoded into readable labels and boolean feature flags (is401kPlan, isEsop, hasAutomaticEnrollment, offersHealthBenefits), participant and asset changes are computed year over year, and each record links to the source filing PDF. Missing source values are returned as null.
Coverage is US employee benefit plan filings back to 2009: 401(k) and other defined-contribution plans, defined-benefit pensions, ESOPs and health and welfare plans. The optional AI add-on (withAiSummary) writes a plain-English summary of each plan; it is billed per successfully processed record and requires a paid Apify plan.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the 3 most recent Google benefit plan filings.
{"searchQueries": ["Google"],"maxFilings": 3,"latestFilingOnly": true,"sortBy": "dateReceived","sortOrder": "desc"}
Every input field is optional. Each entry in searchQueries runs a separate search that matches the employer or plan name. Use eins for the most precise pull of every plan and year for one company, or combine states, businessSectors, planCategory, participant and asset filters to sweep an industry.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | string[] | no | ["Tesla"] | One search per entry. Matches the sponsoring employer name or plan name. |
sponsorNames | string[] | no | (empty) | Restrict to these employer names, matched as a whole phrase. |
planNames | string[] | no | (empty) | Restrict to these plan names, matched as a whole phrase. |
eins | string[] | no | (empty) | Nine-digit employer EINs (with or without dash). The most precise lookup. |
states | string[] | no | (empty) | Two-letter US state codes of the sponsoring employer. |
cities | string[] | no | (empty) | Cities of the sponsoring employer. Combine with a state. |
zipCodes | string[] | no | (empty) | Five or nine digit ZIP codes of the sponsoring employer. |
businessSectors | string[] | no | (empty) | Two-digit NAICS sector codes, for example 62, 54, 31. |
businessCodes | string[] | no | (empty) | Full six-digit NAICS business codes, for example 541511. |
planCategory | enum | no | any | any, pension, definedContribution, definedBenefit, or welfare. |
only401k | boolean | no | false | Return only plans that report a Code section 401(k) feature. |
planCharacteristicCodes | string[] | no | (empty) | Official Form 5500 characteristic codes, for example 2J, 2S, 2O, 4A. |
employerPlanTypes | string[] | no | (empty) | Plan type codes: 1 single-employer, 2 multiple-employer, 3 multiemployer, 4-10 direct filing entities. |
planYearFrom | integer | no | (none) | Earliest plan year to include (filings go back to 2009). |
planYearTo | integer | no | (none) | Latest plan year to include. |
minParticipants | integer | no | (none) | Only plans covering at least this many people at the start of the year. |
maxParticipants | integer | no | (none) | Only plans covering at most this many people. |
minAssetsUsd | integer | no | (none) | Only plans holding at least this much at the end of the year. |
maxAssetsUsd | integer | no | (none) | Only plans holding at most this much at the end of the year. |
countryCodes | string[] | no | (empty) | Two-letter country codes for foreign-based employers. |
latestFilingOnly | boolean | no | true | Keep only the most recently received filing per plan year (drops amended re-filings). |
latestPlanYearOnly | boolean | no | false | Return one row per plan, its most recent plan year only. |
sortBy | enum | no | dateReceived | dateReceived, assets, participants, planYear, sponsorName, planName. |
sortOrder | enum | no | desc | desc or asc. |
maxFilings | integer | no | 50 | Maximum filings to return in this run. Free plans are capped at 10. |
withAiSummary | boolean | no | false | AI plain-English plan summary. Billed per enriched record; paid plans only. |
Filters combine with logical AND. A single source query is capped at 10,000 filings; narrow with filters or year ranges for larger universes.
Output reference
One dataset item per filing. Types: string, integer, number, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
ackId | string | EFAST2 acknowledgement id (unique per filing). |
ein | string | Employer EIN (nine digits). |
einFormatted | string | EIN with dash, for example 77-0493581. |
planNumber | string | Three-digit plan number. |
planName | string | Plan name. |
sponsorName | string | Sponsoring employer name. |
sponsorAddress | string | Employer street address. |
sponsorCity | string | Employer city. |
sponsorState | string | Employer two-letter state code. |
sponsorZip | string | Employer ZIP code. |
sponsorCountryCode | string | Employer two-letter country code. |
planYear | integer | Plan year of the filing. |
dateReceived | string | ISO timestamp the filing was received. |
dateReceivedDay | string | Date received (YYYY-MM-DD). |
employerPlanTypeCode | integer | Numeric employer plan type code. |
employerPlanTypeLabel | string | Readable plan type, for example Single-employer plan. |
planCategory | string | High-level category, for example Pension, Welfare. |
participantsBoy | integer | Participants at beginning of year. |
participantsEoy | integer | Participants at end of year. |
participantChange | integer | Year-over-year participant change. |
participantChangePct | number | Participant change as a percentage. |
employerSizeBand | string | Headcount band, for example 5000+. |
assetsBoyUsd | integer | Plan assets at beginning of year (USD). |
assetsEoyUsd | integer | Plan assets at end of year (USD). |
assetChangeUsd | integer | Year-over-year asset change (USD). |
assetChangePct | number | Asset change as a percentage. |
assetsPerParticipantUsd | number | End-of-year assets per participant (USD). |
planCharacteristicCodes | string[] | Raw Form 5500 characteristic codes. |
planCharacteristics | string[] | Decoded readable plan characteristics. |
is401kPlan | boolean | Plan reports a 401(k) feature. |
isDefinedBenefitPension | boolean | Defined-benefit pension plan. |
isDefinedContributionPension | boolean | Defined-contribution pension plan. |
isWelfarePlan | boolean | Health and welfare plan. |
hasAutomaticEnrollment | boolean | Plan provides automatic enrollment. |
hasBrokerageWindow | boolean | Participant-directed brokerage window offered. |
isEsop | boolean | Employee stock ownership plan. |
isFrozenPlan | boolean | Plan is frozen. |
isCashBalancePlan | boolean | Cash balance plan. |
isPooledEmployerPlan | boolean | Pooled employer plan. |
isControlledGroupMember | boolean | Sponsor is part of a controlled group. |
usesLeasedEmployees | boolean | Sponsor uses leased employees. |
offersHealthBenefits | boolean | Plan offers health benefits. |
offersDentalBenefits | boolean | Plan offers dental benefits. |
offersVisionBenefits | boolean | Plan offers vision benefits. |
offersLifeInsurance | boolean | Plan offers life insurance. |
offersDisabilityBenefits | boolean | Plan offers disability benefits. |
offersSeverancePay | boolean | Plan offers severance pay. |
filingPdfUrl | string | Link to the source filing PDF. |
matchedQuery | string | Which input search produced this record. |
source | string | Data source label. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
aiSummary | string | AI plain-English plan summary (add-on), present only when enabled. |
Example output record
Real record from a live run without the AI add-on (input {"planCharacteristicCodes":["2O"],"sortBy":"assets","minAssetsUsd":100000000,"latestPlanYearOnly":true,"maxFilings":20}):
{"ackId": "20260724135502NAL0012679475001","ein": "911144442","einFormatted": "91-1144442","planNumber": "001","planName": "MICROSOFT CORPORATION SAVINGS PLUS 401K PLAN","sponsorName": "MICROSOFT CORPORATION","sponsorAddress": "ONE MICROSOFT WAY","sponsorCity": "REDMOND","sponsorState": "WA","sponsorZip": "90852-6399","sponsorCountryCode": "US","planYear": 2025,"dateReceived": "2026-07-24T13:55:02Z","dateReceivedDay": "2026-07-24","employerPlanTypeCode": 1,"employerPlanTypeLabel": "Single-employer plan","planCategory": "Pension","participantsBoy": 183509,"participantsEoy": 184329,"participantChange": 820,"participantChangePct": 0.45,"employerSizeBand": "5000+","assetsBoyUsd": 65646011638,"assetsEoyUsd": 77853223310,"assetChangeUsd": 12207211672,"assetChangePct": 18.6,"assetsPerParticipantUsd": 422360.15,"planCharacteristicCodes": ["2E", "2F", "2G", "2I", "2J", "2K", "2O", "2R", "2T", "3H"],"planCharacteristics": ["Profit-sharing","ERISA section 404(c) plan","Total participant-directed account plan","Stock bonus","Code section 401(k) feature","Code section 401(m) arrangement","ESOP other than a leveraged ESOP","Participant-directed brokerage accounts provided as an investment option under the plan","Total or partial participant-directed account plan","Plan sponsor(s) is (are) a member(s) of a controlled group"],"is401kPlan": true,"isDefinedBenefitPension": false,"isDefinedContributionPension": true,"isWelfarePlan": false,"hasAutomaticEnrollment": false,"hasBrokerageWindow": true,"isEsop": true,"isFrozenPlan": false,"isCashBalancePlan": false,"isPooledEmployerPlan": false,"isControlledGroupMember": true,"usesLeasedEmployees": false,"offersHealthBenefits": false,"offersDentalBenefits": false,"offersVisionBenefits": false,"offersLifeInsurance": false,"offersDisabilityBenefits": false,"offersSeverancePay": false,"filingPdfUrl": "https://efast2-filings-public.s3.amazonaws.com/prd/2026/07/24/20260724135502NAL0012679475001.pdf","matchedQuery": "filters","source": "US DOL EFAST2 Form 5500","observedAt": "2026-08-13T21:28:42.380Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~form-5500-benefit-plans-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["Google"],"maxFilings":25,"only401k":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~form-5500-benefit-plans-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"states":["CA"],"businessSectors":["54"],"minParticipants":100,"maxFilings":100}'
Apify CLI:
apify call scrapers_lat/form-5500-benefit-plans-scraper \--input '{"eins":["770493581"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per filing returned (
resultevent). See the pricing tab for the current per-result price. - AI add-on.
withAiSummaryis billed separately per successfully processed record and requires a paid Apify plan. It is skipped for free users. - No charge on failure. If a run errors or matches nothing, the actor writes a single item with an
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 filings per run. Upgrade for higher
maxFilings. - Source query ceiling. A single source query returns at most 10,000 filings. For larger universes, split the work with narrower filters or year ranges.
FAQ and troubleshooting
A run returned 0 records. Why? The filter combination matched nothing in the EFAST2 index. Loosen filters (for example widen the year range or drop the NAICS sector), or check the employer name spelling. Zero-result runs are not charged.
What is the difference between latestFilingOnly and latestPlanYearOnly?
latestFilingOnly drops amended re-filings, keeping the most recent filing per plan year. latestPlanYearOnly collapses each plan to a single row of its most recent plan year, ideal for a current prospect list.
How do I pull every plan and year for one company?
Pass the company EIN in eins. It is the most precise way to retrieve the full filing history.
What do the plan characteristic fields mean?
planCharacteristicCodes are the raw Form 5500 codes; planCharacteristics decodes them into readable labels, and the boolean flags (is401kPlan, isEsop, hasAutomaticEnrollment and so on) summarize the key features.
What does the AI summary do?
withAiSummary writes a short plain-English summary of the plan (type, sponsor, participants, assets, notable features). It is optional, billed per record, and requires a paid plan.
Is this an official DOL tool? No. This actor is independent and has no affiliation with the US Department of Labor or EFAST2. It reads only publicly available Form 5500 filing data. Use the results in accordance with the source's terms.
Related scrapers
- SEC IAPD Investment Advisers Scraper
- SEC Form D Private Placements Scraper
- FINRA BrokerCheck Scraper
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the US Department of Labor or EFAST2. Accesses only publicly available Form 5500 filing data. Use the results in accordance with the source's terms.
