DOL EFAST2 Form 5500 Benefit Plan Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
Form 5500 Benefit Plan & Broker Database — DOL EFAST2 Scraper
Pulls the complete ERISA Form 5500 benefit-plan universe from the DOL's EFAST2 system, the federal filing system every employer-sponsored retirement and welfare plan reports to. Returns sponsor identity, plan identity, participant counts, and asset data for every plan year from 2009 to the current one, joined with the insurance carrier and broker of record (Schedule A) and the service providers behind the plan (Schedule C).
DOL EFAST2 Form 5500 Scraper Features
- Covers every Form 5500 and Form 5500-SF filing DOL publishes, 2009 through the current plan year — roughly 1.1 million filings annually.
- Returns sponsor identity in full: legal name, DBA, EIN, mailing address, phone, and NAICS business code.
- Joins Schedule A to each filing — the insurance carrier, contract number, and the broker or agent of record with their commission and fees.
- Joins Schedule C to each filing — the recordkeeper, TPA, auditor, or adviser, along with their direct compensation and service codes.
- Returns participant counts (active, retired, with account balance) and, for small-plan 5500-SF filings, inline asset and contribution totals.
- Emits one row per attached schedule entry alongside the base filing, so broker and provider names are directly filterable — no second join required.
Who Uses Form 5500 Benefit Plan Data?
- Retirement-plan advisors — prospect employers by plan asset size, participant count, and incumbent broker.
- Group-benefits brokers — find plans with a named broker of record worth displacing, and the commission they're currently earning.
- Compliance and due-diligence teams — verify a plan's sponsor, administrator, and service-provider relationships before signing anything.
- Recordkeepers and TPAs — track compensation disclosures across every plan in the market they compete in.
- Data and research teams — build a standing feed of new, amended, and final filings, or compute year-over-year participant and asset trends.
How DOL EFAST2 Form 5500 Scraper Works
- Pick the plan years and form types you want. Leave both empty and you get the entire 2009-2026 archive.
- The actor retrieves DOL's filing and schedule records for those years and joins them by filing ID.
- Each filing comes back as one base record, plus an additional record for every attached Schedule A or Schedule C entry it has.
- Set
maxItemsto cap the run at a specific record count, or leave it high for a full year's worth — or the whole archive's worth — of filings.
Input
{
"planYears": ["2023", "2024"],
"formTypes": ["5500-SF"],
"includeScheduleA": true,
"includeScheduleC": true,
"maxItems": 5000
}
| Field | Type | Default | Description |
|---|---|---|---|
planYears |
array | all years (2009-2026) | Plan filing years to include. Leave empty for the full archive. |
formTypes |
array | both | 5500 (large plans) and/or 5500-SF (small plans). Leave empty for both. |
includeScheduleA |
boolean | true |
Join Schedule A — insurance carrier, contract number, and broker/agent of record. |
includeScheduleC |
boolean | true |
Join Schedule C — service provider name and direct compensation. |
maxItems |
integer | 10 |
Maximum number of records — base filings plus any joined schedule rows — to return. |
Leaving planYears and formTypes empty pulls the widest slice DOL publishes; narrow either one to scope a run to exactly what you need.
DOL EFAST2 Form 5500 Scraper Output Fields
A base filing row (schedule: null):
{
"ack_id": "20100211140439P040003583622001",
"form_type": "5500",
"plan_name": "ANDREW BONAVITA DMD PC 401K PROFITSHARING",
"plan_number": "001",
"sponsor_name": "ANDREW BONAVITA DMD PC",
"sponsor_ein": "043471038",
"sponsor_address_city": "LONGMEADOW",
"sponsor_address_state": "MA",
"plan_type": "defined_contribution",
"benefit_codes": ["2E", "2G", "2J", "2K", "3E"],
"participants_total": 6,
"participants_active": 5,
"signer_name": "ANDREW BONAVITA",
"signer_role": "admin",
"date_received": "2010-02-11",
"schedule": null
}
The same filing's joined Schedule A row (schedule: "A"):
{
"ack_id": "20100211140439P040003583622001",
"form_type": "5500",
"plan_name": "ANDREW BONAVITA DMD PC 401K PROFITSHARING",
"sponsor_name": "ANDREW BONAVITA DMD PC",
"schedule": "A",
"insurance_carrier_name": "ING LIFE INSURANCE AND ANNUITY",
"insurance_carrier_ein": "710294708",
"insurance_contract_number": "PHQ438",
"broker_name": "AMERITAS INVESTMENT CORP",
"broker_commission_amount": 188,
"broker_fees_amount": null
}
| Field | Type | Description |
|---|---|---|
ack_id |
string | DOL acknowledgement ID — the join key across the filing and every schedule row. |
form_type |
string | 5500 or 5500-SF. |
plan_year_begin_date |
string | Plan year start date. |
form_tax_period |
string | End of the plan year covered by this filing. |
plan_name |
string | Plan name. |
plan_number |
string | Plan number. |
plan_effective_date |
string | Date the plan became effective. |
plan_entity_type |
string | Plan entity type code. |
dfe_plan_entity_type |
string | DFE plan entity type (Form 5500 large-plan filings only). |
is_initial_filing |
boolean | Whether this is the plan's first filing. |
is_amended |
boolean | Whether this filing amends a prior one. |
is_final_filing |
boolean | Whether this is the plan's final filing. |
is_short_plan_year |
boolean | Whether the reported plan year is a short year. |
collective_bargaining |
boolean | Whether the plan covers collectively bargained employees. |
sponsor_name |
string | Plan sponsor's legal name. |
sponsor_dba_name |
string | Sponsor's DBA name. |
sponsor_ein |
string | Sponsor's EIN. |
sponsor_phone |
string | Sponsor's phone number. |
sponsor_address_line1 |
string | Sponsor mailing address line 1. |
sponsor_address_city |
string | Sponsor mailing address city. |
sponsor_address_state |
string | Sponsor mailing address state. |
sponsor_address_zip |
string | Sponsor mailing address ZIP. |
sponsor_country |
string | Sponsor country. |
sponsor_business_code |
string | Sponsor's NAICS business code. |
admin_name |
string | Plan administrator name. |
admin_ein |
string | Plan administrator EIN. |
admin_phone |
string | Plan administrator phone number. |
plan_type |
string | defined_contribution, defined_benefit, welfare, or other. |
benefit_codes |
array | Pension and welfare benefit feature codes (e.g. 2A, 2E, 4A). |
participants_total |
number | Total participants, end of year. |
participants_active |
number | Active participants, end of year. |
participants_retired |
number | Retired or separated participants. |
participants_with_balance |
number | Participants with an account balance. |
total_assets_boy |
number | Total plan assets, beginning of year — 5500-SF filings only. |
total_assets_eoy |
number | Total plan assets, end of year — 5500-SF filings only. |
total_contributions |
number | Total contributions received — 5500-SF filings only. |
total_distributions |
number | Total distributions paid to participants — 5500-SF filings only. |
signer_name |
string | Name of the person who signed the filing. |
signer_role |
string | admin or sponsor. |
date_received |
string | Date DOL received the filing. |
schedule |
string | null for a base filing row, A or C for a joined schedule row. |
insurance_carrier_name |
string | Schedule A — insurance carrier name. |
insurance_carrier_ein |
string | Schedule A — insurance carrier EIN. |
insurance_contract_number |
string | Schedule A — insurance contract/policy number. |
broker_name |
string | Schedule A — the broker or agent of record, where DOL publishes one. |
broker_commission_amount |
number | Schedule A — broker commission amount. |
broker_fees_amount |
number | Schedule A — broker fees amount. |
service_provider_name |
string | Schedule C — service provider name (recordkeeper, TPA, auditor, adviser). |
service_provider_ein |
string | Schedule C — service provider EIN. |
service_provider_relation |
string | Schedule C — the provider's stated role. |
service_provider_comp_amount |
number | Schedule C — direct compensation amount. |
service_code |
array | Schedule C — service codes for this provider. |
FAQ
How do I get Form 5500 data from DOL EFAST2?
Run DOL EFAST2 Form 5500 Benefit Plan Scraper with a plan year and form type, or leave both blank for the full 2009-2026 archive. You get back structured records instead of downloading and parsing government filings by hand.
What years of Form 5500 filings are covered?
Every plan year DOL publishes, 2009 through the current one. Narrow to specific years with planYears, or leave it empty and get all of them in one run.
Can I get the broker or insurance carrier behind a plan?
Yes. includeScheduleA joins each filing to its Schedule A entries, which carry the insurance carrier name, contract number, and — where DOL discloses one — the named broker or agent of record with their commission.
Does this include Schedule C compensation data?
It does. includeScheduleC joins each filing to its Schedule C service providers — recordkeepers, TPAs, auditors, advisers — along with their direct compensation and service codes.
Do I need a DOL account or API key?
No. DOL EFAST2 filings are public record, so there's no account, login, or API key to configure.
Need More Features?
Need custom fields, additional schedules, or a different filter? File an issue or get in touch.
Why Use DOL EFAST2 Form 5500 Benefit Plan Scraper?
- Complete history, not just this year — 2009 through the current plan year in one actor, so year-over-year participant and asset changes are yours to compute.
- Schedules joined, not just the base filing — most Form 5500 sources stop at plan name and sponsor. This one adds the insurance carrier, the broker of record, and the service providers behind the plan.
- Scoped to what you need — narrow by plan year and form type, or pull the whole archive. Either way, you're not paying for schedules you didn't ask for.