Form 5500 Employee Benefit Plan & 401(k) Filings Scraper avatar

Form 5500 Employee Benefit Plan & 401(k) Filings Scraper

Pricing

from $12.75 / 1,000 results

Go to Apify Store
Form 5500 Employee Benefit Plan & 401(k) Filings Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Form 5500 Employee Benefit Plan & 401(k) Filings Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
searchQueriesstring[]no["Tesla"]One search per entry. Matches the sponsoring employer name or plan name.
sponsorNamesstring[]no(empty)Restrict to these employer names, matched as a whole phrase.
planNamesstring[]no(empty)Restrict to these plan names, matched as a whole phrase.
einsstring[]no(empty)Nine-digit employer EINs (with or without dash). The most precise lookup.
statesstring[]no(empty)Two-letter US state codes of the sponsoring employer.
citiesstring[]no(empty)Cities of the sponsoring employer. Combine with a state.
zipCodesstring[]no(empty)Five or nine digit ZIP codes of the sponsoring employer.
businessSectorsstring[]no(empty)Two-digit NAICS sector codes, for example 62, 54, 31.
businessCodesstring[]no(empty)Full six-digit NAICS business codes, for example 541511.
planCategoryenumnoanyany, pension, definedContribution, definedBenefit, or welfare.
only401kbooleannofalseReturn only plans that report a Code section 401(k) feature.
planCharacteristicCodesstring[]no(empty)Official Form 5500 characteristic codes, for example 2J, 2S, 2O, 4A.
employerPlanTypesstring[]no(empty)Plan type codes: 1 single-employer, 2 multiple-employer, 3 multiemployer, 4-10 direct filing entities.
planYearFromintegerno(none)Earliest plan year to include (filings go back to 2009).
planYearTointegerno(none)Latest plan year to include.
minParticipantsintegerno(none)Only plans covering at least this many people at the start of the year.
maxParticipantsintegerno(none)Only plans covering at most this many people.
minAssetsUsdintegerno(none)Only plans holding at least this much at the end of the year.
maxAssetsUsdintegerno(none)Only plans holding at most this much at the end of the year.
countryCodesstring[]no(empty)Two-letter country codes for foreign-based employers.
latestFilingOnlybooleannotrueKeep only the most recently received filing per plan year (drops amended re-filings).
latestPlanYearOnlybooleannofalseReturn one row per plan, its most recent plan year only.
sortByenumnodateReceiveddateReceived, assets, participants, planYear, sponsorName, planName.
sortOrderenumnodescdesc or asc.
maxFilingsintegerno50Maximum filings to return in this run. Free plans are capped at 10.
withAiSummarybooleannofalseAI 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.

FieldTypeDescription
ackIdstringEFAST2 acknowledgement id (unique per filing).
einstringEmployer EIN (nine digits).
einFormattedstringEIN with dash, for example 77-0493581.
planNumberstringThree-digit plan number.
planNamestringPlan name.
sponsorNamestringSponsoring employer name.
sponsorAddressstringEmployer street address.
sponsorCitystringEmployer city.
sponsorStatestringEmployer two-letter state code.
sponsorZipstringEmployer ZIP code.
sponsorCountryCodestringEmployer two-letter country code.
planYearintegerPlan year of the filing.
dateReceivedstringISO timestamp the filing was received.
dateReceivedDaystringDate received (YYYY-MM-DD).
employerPlanTypeCodeintegerNumeric employer plan type code.
employerPlanTypeLabelstringReadable plan type, for example Single-employer plan.
planCategorystringHigh-level category, for example Pension, Welfare.
participantsBoyintegerParticipants at beginning of year.
participantsEoyintegerParticipants at end of year.
participantChangeintegerYear-over-year participant change.
participantChangePctnumberParticipant change as a percentage.
employerSizeBandstringHeadcount band, for example 5000+.
assetsBoyUsdintegerPlan assets at beginning of year (USD).
assetsEoyUsdintegerPlan assets at end of year (USD).
assetChangeUsdintegerYear-over-year asset change (USD).
assetChangePctnumberAsset change as a percentage.
assetsPerParticipantUsdnumberEnd-of-year assets per participant (USD).
planCharacteristicCodesstring[]Raw Form 5500 characteristic codes.
planCharacteristicsstring[]Decoded readable plan characteristics.
is401kPlanbooleanPlan reports a 401(k) feature.
isDefinedBenefitPensionbooleanDefined-benefit pension plan.
isDefinedContributionPensionbooleanDefined-contribution pension plan.
isWelfarePlanbooleanHealth and welfare plan.
hasAutomaticEnrollmentbooleanPlan provides automatic enrollment.
hasBrokerageWindowbooleanParticipant-directed brokerage window offered.
isEsopbooleanEmployee stock ownership plan.
isFrozenPlanbooleanPlan is frozen.
isCashBalancePlanbooleanCash balance plan.
isPooledEmployerPlanbooleanPooled employer plan.
isControlledGroupMemberbooleanSponsor is part of a controlled group.
usesLeasedEmployeesbooleanSponsor uses leased employees.
offersHealthBenefitsbooleanPlan offers health benefits.
offersDentalBenefitsbooleanPlan offers dental benefits.
offersVisionBenefitsbooleanPlan offers vision benefits.
offersLifeInsurancebooleanPlan offers life insurance.
offersDisabilityBenefitsbooleanPlan offers disability benefits.
offersSeverancePaybooleanPlan offers severance pay.
filingPdfUrlstringLink to the source filing PDF.
matchedQuerystringWhich input search produced this record.
sourcestringData source label.
observedAtstringISO 8601 timestamp of when the record was collected.
aiSummarystringAI 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • AI add-on. withAiSummary is 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.