OTHERAI

ILAB Supply Chain - Forced & Child Labor Risk

Supply chain forced labor and child labor risk intelligence, sourced directly from 7 official U.S. Department of Labor ILAB datasets. Identify every country and commodity flagged for labor abuse, match flagged goods to US import HS tariff codes, and generate scored country risk profiles with actionable compliance recommendations — all in a single run.

Try on Apify Store
$0.03per event
0
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.03
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

result-returneds
Estimated cost:$3.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
result-returnedCharged per result returned. Includes data transformation and structured output.$0.03

Example: 100 events = $3.00 · 1,000 events = $30.00

Documentation

Supply chain forced labor and child labor risk intelligence, sourced directly from 7 official U.S. Department of Labor ILAB datasets. Identify every country and commodity flagged for labor abuse, match flagged goods to US import HS tariff codes, and generate scored country risk profiles with actionable compliance recommendations — all in a single run.

Built for compliance teams, ESG analysts, procurement officers, and legal counsel navigating UFLPA, EU CSDDD, and Section 307 obligations. This actor joins data that normally requires navigating five separate DOL portals: ImportWatch core data, ImportWatch HS code mappings, ImportWatch country codes, seven years of Child Labor Reports (2016–2022), LaborShield reporting metrics, LaborShield flagged goods, and LaborShield suggested compliance actions.

What data can you extract?

Data PointSourceExample
🌍 CountryImportWatch CoreBangladesh
🏷 Country codeImportWatch Country CodesBD
🗺 RegionImportWatch CoreSouth Asia
📦 Goods flaggedImportWatch CoreGarments, Bricks, Tobacco
Exploitation typeImportWatch CoreCL/FL (Child & Forced Labor)
🏭 SectorImportWatch CoreManufacturing, Agriculture
🔢 HS tariff codesImportWatch Goods HS6109 (T-shirts, knitted)
📊 Country advancement levelChild Labor Report 2016–2022Minimal Advancement
📋 Compliance actionsLaborShield Suggested ActionsConduct third-party social audits
🧮 Risk scoreComputed (0–100+)87
🚨 Risk levelComputedCritical
📝 Risk factorsComputed6 goods with forced labor (+30)
🕐 Extracted atSystem2026-03-20T08:14:22.000Z

Why use ILAB Supply Chain - Forced & Child Labor Risk?

Manually researching supply chain labor risk means bouncing between the DOL ILAB portal, the DOL Open Data API, customs HS code databases, and TVPRA country reports. A typical analyst spends 4–8 hours mapping a single sourcing country against all available DOL datasets — and still misses the LaborShield suggested actions that inform remediation.

This actor automates the entire process: it fetches and joins all 7 ILAB datasets in parallel, applies your filters, resolves HS tariff code mappings, attaches the most recent country advancement assessment, and calculates a structured risk score in minutes.

  • Scheduling — run quarterly, annually, or after any regulatory update to keep supply chain risk data current
  • API access — trigger compliance checks from Python, JavaScript, or any HTTP client inside your GRC workflow
  • Proxy rotation — the actor calls the official DOL API, so no IP blocks, but retry logic handles rate limits automatically
  • Monitoring — receive Slack or email alerts when a new high-risk country or commodity profile appears
  • Integrations — push results into Zapier, Make, Google Sheets, or your internal risk management system via webhooks

Features

  • 7 DOL ILAB datasets joined in one run — ImportWatch Core, ImportWatch Goods HS, ImportWatch Country Codes, Child Labor Report (2016–2022), LaborShield Reporting, LaborShield Goods, and LaborShield Suggested Actions
  • Partial-match filters on all key fields — search by country name, product/good name, sector, exploitation type, or geographic region using SQL LIKE operators passed to the DOL API
  • HS tariff code matching — fetches the full ImportWatch_Goods_HS lookup table (up to 10,000 records), then performs prefix-match joins so that a filter of 52 returns all cotton HS codes (5201, 5202, etc.)
  • Country risk scoring algorithm — multi-factor score from 0 to 100+ using weighted signals: goods count (+10/+20/+30), forced labor goods (+5 each, capped at 30), both CL & FL goods (+8 each, capped at 25), no-advancement designation (+25), multi-sector spread (+8/+15), HS code exposure (+3 each, capped at 20), and compliance action volume (+5/+10)
  • Four risk tiers — Critical (80+), High (50+), Medium (25+), Low (below 25) with explanatory factor strings per record
  • UFLPA-aligned output — identifies goods and countries subject to the rebuttable presumption under the Uyghur Forced Labor Prevention Act
  • Child Labor Report integration — joins the most recent available year (2016–2022) per country, surfacing the TVPRA Section 402(b) advancement level alongside DOL's count of flagged goods
  • LaborShield compliance actions — appends structured recommended actions (e.g., "Conduct third-party social audits", "Engage with local labor authorities") per country
  • Exponential backoff retry logic — 4 retries with doubling delays (2s, 4s, 8s, 16s) on HTTP 429 rate-limit responses from the DOL API
  • 500ms inter-request delay — staggered parallel requests respect DOL API rate limits across paginated fetches
  • Pagination support — fetches up to 1,000 records per page, repeating until maxResults is reached
  • Dry run mode — returns representative sample data without consuming DOL API quota, letting you validate output structure before a full run
  • Output sorted by risk score descending — highest-risk countries surface first; ready for executive reporting without post-processing
  • Free DOL API key required — register at dataportal.dol.gov/registration in under two minutes; no paid access needed

Use cases for supply chain forced labor risk

UFLPA and customs compliance

Trade compliance teams at importers must screen incoming shipments for goods manufactured in regions subject to the Uyghur Forced Labor Prevention Act's rebuttable presumption. This actor produces country-level and good-level outputs with HS tariff codes, letting customs counsel quickly identify which inbound shipments require documentation or supply chain attestations before CBP detention.

EU CSDDD and ESG supply chain due diligence

European companies subject to the Corporate Sustainability Due Diligence Directive need documented evidence of supply chain risk assessments. This actor generates structured country risk profiles with advancement levels and recommended actions — the exact format required for first-tier and upstream supplier assessments under CSDDD's Article 8 due diligence obligations.

Procurement and sourcing risk screening

Procurement teams evaluating new supplier countries can run this actor before contract award to understand the DOL-documented labor risk profile of a sourcing location. A search for sector=Manufacturing and region=South Asia returns scored profiles for every relevant country, with sector breakdowns and compliance action recommendations.

ESG reporting and investor disclosure

ESG analysts preparing Scope 3 disclosures or SFDR documentation need evidence-based supply chain labor risk data. This actor provides DOL-sourced advancement levels, goods counts, and sector exposure that can be cited directly in ESG reports, sustainability appendices, and investor questionnaire responses.

Corporate legal and risk management

Legal counsel conducting supply chain audits ahead of M&A transactions, IPOs, or investor reviews can use this actor to generate documented evidence of forced labor and child labor screening. The structured output with risk scores and factor breakdowns supports defensible third-party diligence records.

Investigative research and journalism

Journalists and academic researchers investigating labor exploitation in global supply chains can use this actor to map which goods from which countries appear in both ImportWatch and LaborShield simultaneously — revealing high-confidence exploitation patterns backed by official U.S. government datasets.

How to screen supply chains for forced labor risk

  1. Get a free DOL API key — register at dataportal.dol.gov/registration. Takes under two minutes. Enter it in the apiKey field.
  2. Set your search filters — enter a country name such as Bangladesh, a product such as Cobalt, a sector such as Mining, or a region such as Sub-Saharan Africa. Leave all filters blank to return all flagged countries sorted by risk score.
  3. Click Start and wait — a focused search (single country or product) completes in 1–3 minutes. A full unfiltered run returning 100+ country profiles takes 5–15 minutes depending on the number of matching countries.
  4. Download results — export as JSON, CSV, or Excel from the Dataset tab. Each row is one country risk profile with goods, HS codes, assessment level, compliance actions, and a 0–100+ risk score.

Input parameters

ParameterTypeRequiredDefaultDescription
apiKeystringNoDOL Open Data Portal API key. Free registration at dataportal.dol.gov/registration
dryRunbooleanNotrueReturn sample data without calling the DOL API. Automatically false when apiKey is provided
countrystringNoFilter by country name (partial match). E.g., China, Bangladesh, Congo
goodstringNoFilter by product or commodity name (partial match). E.g., Cotton, Cobalt, Garments
hsCodestringNoFilter by HS tariff code prefix. E.g., 52 (cotton), 26 (ores and minerals), 61 (knitted apparel)
sectorstringNoFilter by industry sector (partial match). E.g., Mining, Agriculture, Manufacturing
exploitationTypestring (enum)NoCL (Child Labor), FL (Forced Labor), or CL/FL (Both)
regionstringNoFilter by geographic region. E.g., East Asia, Sub-Saharan Africa, South Asia
includeImportWatchbooleanNotrueEnrich records with HS tariff codes and ISO country codes from ImportWatch datasets
includeLaborShieldbooleanNotrueEnrich records with LaborShield compliance actions and reporting metrics
includeChildLaborReportbooleanNotrueEnrich records with TVPRA Section 402(b) country advancement assessments
maxResultsintegerNo100Maximum country risk profiles to return (1–5,000)

Input examples

Screen a single country for all labor risks:

{
    "apiKey": "YOUR_DOL_API_KEY",
    "dryRun": false,
    "country": "Bangladesh",
    "includeImportWatch": true,
    "includeLaborShield": true,
    "includeChildLaborReport": true
}

Find all forced labor risks by product across all countries:

{
    "apiKey": "YOUR_DOL_API_KEY",
    "dryRun": false,
    "good": "Cobalt",
    "exploitationType": "FL",
    "includeImportWatch": true,
    "includeLaborShield": true,
    "includeChildLaborReport": true,
    "maxResults": 50
}

Screen an HS code chapter for a full customs review:

{
    "apiKey": "YOUR_DOL_API_KEY",
    "dryRun": false,
    "hsCode": "61",
    "includeImportWatch": true,
    "includeLaborShield": false,
    "includeChildLaborReport": true,
    "maxResults": 200
}

Input tips

  • Start with dryRun: true to validate that the output format fits your workflow before running against the live DOL API. The sample data includes China and Bangladesh profiles with full HS code matches.
  • Leave all filters blank to retrieve a full ranked list of every flagged country sorted by risk score — useful for an initial supply chain risk register.
  • Use HS code prefix filtering for customs screening — a two-digit prefix like 26 matches all HS codes in the ores and minerals chapter (2601–2699), returning every country where those goods are flagged.
  • Combine sector and region filters to scope results to a sourcing geography, e.g., sector=Agriculture and region=Sub-Saharan Africa for agricultural supply chains in that region.
  • Set maxResults to 5000 for a full compliance export, but expect runtime of 20–40 minutes for large unfiltered runs.

Output example

{
    "country": "Bangladesh",
    "countryCode": "BD",
    "region": "South Asia",
    "goods": [
        {
            "good": "Garments",
            "exploitationType": "CL/FL",
            "exploitationDescription": "Child Labor & Forced Labor",
            "sector": "Manufacturing",
            "hsCodeMatches": [
                {
                    "hsCode": "6109",
                    "description": "T-shirts, singlets and other vests, knitted or crocheted",
                    "chapter": "61"
                },
                {
                    "hsCode": "6205",
                    "description": "Men's or boys' shirts",
                    "chapter": "62"
                }
            ]
        },
        {
            "good": "Bricks",
            "exploitationType": "CL",
            "exploitationDescription": "Child Labor",
            "sector": "Construction",
            "hsCodeMatches": [
                {
                    "hsCode": "6901",
                    "description": "Bricks, blocks, tiles and other ceramic constructional goods",
                    "chapter": "69"
                }
            ]
        },
        {
            "good": "Tobacco",
            "exploitationType": "CL",
            "exploitationDescription": "Child Labor",
            "sector": "Agriculture",
            "hsCodeMatches": [
                {
                    "hsCode": "2401",
                    "description": "Unmanufactured tobacco; tobacco refuse",
                    "chapter": "24"
                }
            ]
        }
    ],
    "totalGoods": 5,
    "goodsWithChildLabor": 3,
    "goodsWithForcedLabor": 1,
    "goodsWithBoth": 1,
    "sectors": ["Manufacturing", "Construction", "Agriculture"],
    "countryAssessment": {
        "advancementLevel": "Minimal Advancement",
        "goodsWithChildLabor": 5,
        "goodsWithForcedLabor": 1,
        "reportingYear": "2022",
        "extraFields": {}
    },
    "suggestedActions": [
        {
            "actionText": "Conduct third-party social compliance audits of all Tier 1 and Tier 2 suppliers.",
            "actionType": "Supplier Audit",
            "good": "Garments"
        },
        {
            "actionText": "Require suppliers to implement minimum age verification processes aligned with ILO Convention 138.",
            "actionType": "Policy Requirement",
            "good": "Bricks"
        }
    ],
    "laborShieldData": {
        "country_name": "Bangladesh",
        "region": "South Asia",
        "reporting_year": "2025"
    },
    "riskScore": 63,
    "riskLevel": "High",
    "riskFactors": [
        "5 goods flagged for labor abuse (+10)",
        "1 good(s) with forced labor (+5)",
        "1 good(s) with both child & forced labor (+8)",
        "Country advancement: Minimal Advancement (+15)",
        "Labor abuse across 3 sectors (+8)",
        "3 good(s) matched to HS tariff codes — directly in US imports (+9)"
    ],
    "extractedAt": "2026-03-20T08:14:22.000Z"
}

Output fields

FieldTypeDescription
countrystringCountry name as reported in DOL ILAB data
countryCodestring | nullISO 2-letter country code from ImportWatch Country Codes
regionstringGeographic region (e.g., South Asia, Sub-Saharan Africa)
goodsarrayList of goods flagged for labor abuse in this country
goods[].goodstringProduct or commodity name (e.g., Garments, Cobalt)
goods[].exploitationTypestringRaw exploitation code: CL, FL, or CL/FL
goods[].exploitationDescriptionstringHuman-readable label: Child Labor, Forced Labor, or Child Labor & Forced Labor
goods[].sectorstringIndustry sector (Agriculture, Manufacturing, Mining, etc.)
goods[].hsCodeMatchesarrayMatching HS tariff codes for this good
goods[].hsCodeMatches[].hsCodestring4-digit HS tariff code (e.g., 6109)
goods[].hsCodeMatches[].descriptionstringOfficial HS code description
goods[].hsCodeMatches[].chapterstring | null2-digit HS chapter number
totalGoodsintegerTotal distinct goods flagged for this country
goodsWithChildLaborintegerGoods flagged for child labor only
goodsWithForcedLaborintegerGoods flagged for forced labor only
goodsWithBothintegerGoods flagged for both child labor and forced labor
sectorsstring[]Unique sectors with flagged goods
countryAssessmentobject | nullCountry assessment from Child Labor Report (most recent year)
countryAssessment.advancementLevelstringTVPRA advancement designation: Significant, Moderate, Minimal, or No Advancement
countryAssessment.goodsWithChildLaborintegerDOL-reported count of CL goods for this country
countryAssessment.goodsWithForcedLaborintegerDOL-reported count of FL goods for this country
countryAssessment.reportingYearstringYear of the Child Labor Report used
suggestedActionsarrayCompliance actions from LaborShield Suggested Actions dataset
suggestedActions[].actionTextstringFull text of the recommended compliance action
suggestedActions[].actionTypestring | nullCategory of action (e.g., Supplier Audit, Legal Compliance)
suggestedActions[].goodstring | nullSpecific good this action applies to, if applicable
laborShieldDataobject | nullRaw LaborShield reporting metrics for this country
riskScoreintegerComputed risk score (0–100+) based on multi-factor algorithm
riskLevelstringRisk tier: Low, Medium, High, or Critical
riskFactorsstring[]Explanatory strings detailing each score contribution
extractedAtstringISO 8601 timestamp of when this record was generated

How much does it cost to screen supply chains for forced labor risk?

ILAB Supply Chain - Forced & Child Labor Risk uses pay-per-result pricing — you pay $0.01 per country risk profile returned. Platform compute costs are included.

ScenarioProfilesCost per profileTotal cost
Quick test (one country)1$0.01$0.01
Small team review (10 countries)10$0.01$0.10
Regional screening (50 countries)50$0.01$0.50
Full global export (200 countries)200$0.01$2.00
Enterprise compliance register (1,000 profiles)1,000$0.01$10.00

You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.

Compare this to commercial supply chain risk platforms (Sourcemap, EcoVadis, Sedex) that charge $5,000–$50,000/year — this actor covers the entire DOL ILAB dataset for under $2 per full global run.

Supply chain labor risk screening using the API

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/ilab-supply-chain-intel").call(run_input={
    "apiKey": "YOUR_DOL_API_KEY",
    "dryRun": False,
    "country": "Bangladesh",
    "exploitationType": "FL",
    "includeImportWatch": True,
    "includeLaborShield": True,
    "includeChildLaborReport": True,
    "maxResults": 50,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['country']} ({item['countryCode']}) — Risk: {item['riskLevel']} ({item['riskScore']})")
    for good in item.get("goods", []):
        hs_codes = [m["hsCode"] for m in good.get("hsCodeMatches", [])]
        print(f"  - {good['good']} [{good['exploitationType']}] HS: {', '.join(hs_codes) or 'none'}")

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/ilab-supply-chain-intel").call({
    apiKey: "YOUR_DOL_API_KEY",
    dryRun: false,
    sector: "Mining",
    region: "Sub-Saharan Africa",
    includeImportWatch: true,
    includeLaborShield: true,
    includeChildLaborReport: true,
    maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    console.log(`${item.country} — ${item.riskLevel} (score: ${item.riskScore})`);
    console.log(`  Goods: ${item.goods.map(g => g.good).join(", ")}`);
    console.log(`  Actions: ${item.suggestedActions.length} recommended`);
}

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~ilab-supply-chain-intel/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_DOL_API_KEY",
    "dryRun": false,
    "good": "Cobalt",
    "includeImportWatch": true,
    "includeLaborShield": true,
    "includeChildLaborReport": true,
    "maxResults": 50
  }'

# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

How ILAB Supply Chain - Forced & Child Labor Risk works

Phase 1: Filter construction and ImportWatch Core fetch

The actor builds a structured filter object from your input using DOL API filter_object syntax with like operators and %wildcard% values. A multi-field search (e.g., country + sector) is assembled as an and-condition array. The filter is URL-encoded and appended to the https://apiprod.dol.gov/v4/get/ILAB/ImportWatch_Core_Data/json endpoint. Pagination runs in a loop with 1,000-record pages and 500ms delays until maxResults is satisfied or the API returns fewer records than requested.

If ImportWatch_Core_Data returns no matching records — which can occur when a specific good is only in LaborShield — the actor falls back automatically to LaborShield_Goods as the primary data source, ensuring no false-negative results.

Phase 2: Lookup table enrichment

In parallel (with staggered 500ms–4,000ms inter-request delays), the actor fetches three lookup tables: the full ImportWatch_Goods_HS dataset (up to 10,000 records, sorted by good_name), the full ImportWatch_Country_Codes dataset (up to 5,000 records), and per-country queries against Child_Labor_Report__2016_to_2022 (keeping the most recent year per country). HS code matching uses case-insensitive equality and substring matching between the lookup table's good_name and each flagged good, then joins on HS code prefix when a hsCode filter is active.

Phase 3: LaborShield enrichment

For each unique country in the result set, the actor fires separate per-country requests to three LaborShield datasets: LaborShield_SuggestedActions (up to 100 actions per country), LaborShield_Goods (up to 500 goods per country), and LaborShield_ReportingData (most recent record per country). Each request carries its own retry loop with exponential backoff for HTTP 429 responses.

Phase 4: Risk scoring and output assembly

Country records are assembled by grouping ImportWatch_Core_Data rows by country_name. Each country gets a GoodRecord for every distinct good_name + exploitation_type combination, with HS code matches attached from the Phase 2 lookup. The multi-factor risk scoring algorithm (assessRisk) adds weighted points across goods count, forced labor severity, dual-exploitation goods, country advancement level, sector spread, HS code exposure, and compliance action volume. Output is sorted by riskScore descending before being pushed to the Apify dataset.

Tips for best results

  1. Register for a DOL API key before your first real run. The free key is granted instantly at dataportal.dol.gov/registration. Without it, dryRun mode returns sample data only.

  2. Use dryRun: true to build your integration. The dry run returns two complete country profiles (China and Bangladesh) with full goods, HS codes, assessments, and actions — enough to build and test any downstream pipeline without consuming API quota.

  3. For HS chapter screening, use two-digit prefix values. A hsCode of 61 returns every country where knitted apparel goods appear in ImportWatch — covering all 6101–6117 codes in a single run. Four-digit codes like 6109 narrow results to a single product category.

  4. Combine this actor with ESG Risk Assessment for a complete ESG due diligence workflow. Run ILAB Supply Chain first to identify high-risk sourcing countries, then pass those countries into ESG Risk Assessment for broader environmental and governance context.

  5. For large global exports, set maxResults to 5000 and all three enrichment flags to true. This produces the most comprehensive compliance register but will run for 20–40 minutes. Schedule it quarterly rather than running ad hoc.

  6. Use the riskScore field to triage immediately. Records are sorted by score descending. Countries scoring 80+ (Critical) require immediate compliance attention. Countries scoring below 25 (Low) can typically be deprioritized in quarterly reviews.

  7. Post-process with sectors and suggestedActions for supplier communication. The sectors array tells procurement which business units own the risk; suggestedActions provides the exact remediation language from the DOL's LaborShield program.

  8. For UFLPA Xinjiang screening specifically, run with country: "China" and exploitationType: "FL" to surface all forced labor goods flagged for China with their associated HS codes — the exact data set CBP uses to assess rebuttable presumption applicability.

Combine with other Apify actors

ActorHow to combine
ESG Risk AssessmentFeed high-risk countries from this actor into ESG Risk Assessment for full environmental, social, and governance context per sourcing country
Company Deep ResearchAfter identifying high-risk countries, use Company Deep Research to investigate specific suppliers headquartered in those countries
Competitor Analysis ReportBenchmark your supply chain risk profile against competitors' reported sourcing disclosures
Website Contact ScraperExtract compliance officer and sustainability director contacts from supplier websites identified through ILAB screening
B2B Lead QualifierScore compliance consulting firms and audit providers based on the countries and sectors they cover
HubSpot Lead PusherPush high-risk supplier records into HubSpot for compliance workflow tracking and follow-up
SEC EDGAR Filing AnalyzerCross-reference public company 10-K disclosures on supply chain risks against ILAB country data for investor diligence

Limitations

  • Data currency is DOL-dependent. The Child Labor Report covers 2016–2022; LaborShield and ImportWatch are updated when DOL publishes new data. This actor reflects whatever is currently in the DOL Open Data Portal, not real-time conditions.
  • HS code matching is name-based, not exhaustive. The actor joins on good_name string similarity, not a formal HS classification system. Goods described differently in ImportWatch vs. your procurement records may not match without a filter.
  • No company-level data. This actor identifies country and commodity risks using government data. It does not map risk to specific suppliers, factories, or shipping entities. For supplier-level screening, combine with Company Deep Research.
  • DOL API rate limits apply. The actor handles HTTP 429 responses with exponential backoff (up to 4 retries), but sustained very high-volume runs against many countries may see delayed completions.
  • LaborShield coverage is not universal. Not every country flagged in ImportWatch has corresponding LaborShield entries. Missing LaborShield data for a country does not indicate absence of risk — it indicates the program has not yet generated data for that country.
  • Child Labor Report advancement levels are lagged. The most recent year available is 2022. Countries that have improved (or deteriorated) since then will not reflect current conditions until DOL publishes new reporting years.
  • No judicial or sanctions data. This actor covers DOL ILAB administrative data. It does not include OFAC sanctions, CBP Withhold Release Orders, or court findings. For sanctions screening, use OFAC Sanctions Search.
  • Dry run data is illustrative only. The sample records for China and Bangladesh are representative but not drawn from a live API call. Always run with a real API key for compliance decisions.

Integrations

  • Zapier — trigger a supply chain labor risk scan automatically when a new supplier country is added to your Airtable or Google Sheets supplier register
  • Make — build automated UFLPA screening workflows that run this actor, filter for Critical records, and post alerts to a Slack compliance channel
  • Google Sheets — export full global risk rankings directly to a shared compliance team spreadsheet, updated on a quarterly schedule
  • Apify API — embed forced labor screening into your GRC platform, ERP system, or customs management software via REST calls
  • Webhooks — receive a webhook payload when a run completes, enabling automated downstream routing of high-risk country profiles to your legal team
  • LangChain / LlamaIndex — feed structured country risk profiles into an LLM pipeline for narrative ESG report generation or supply chain risk Q&A

Troubleshooting

No results returned despite valid filters. The DOL API uses exact dataset names and specific field names. If you are searching for a good that only exists in LaborShield (not ImportWatch Core), the actor will automatically fall back to LaborShield_Goods. If you are still seeing empty results, try broader search terms — for example, good: "garment" instead of good: "readymade garments".

Run returns "Invalid API key" error. The DOL Open Data Portal API key must be registered at dataportal.dol.gov/registration. Keys are free but require email verification. Do not use test keys or keys from other DOL services — the ILAB endpoint requires a key registered specifically on the DOL Open Data Portal.

HS code filter returning unexpected countries. HS code filtering works by prefix match on the 4-digit hs_code field in ImportWatch_Goods_HS. A filter of 6 will match all HS codes starting with 6, covering all textile chapters (61–63) and other categories. Use a two-digit chapter prefix (e.g., 61) or four-digit code (e.g., 6109) for narrower results.

Run taking longer than 20 minutes. Large unfiltered runs fetching 500+ country profiles with all three enrichment datasets enabled require many sequential per-country API requests. Reduce maxResults to 100–200 for faster turnaround, or disable includeLaborShield for runs where compliance actions are not needed.

Dry run returns only two countries. This is expected behavior. Dry run mode is designed to validate output structure and integration plumbing only. To retrieve real data, provide a apiKey and set dryRun: false.

Responsible use

  • This actor queries only publicly available U.S. Department of Labor ILAB datasets via the official DOL Open Data Portal API.
  • The data reflects administrative findings from DOL's TVPRA reporting obligations and is intended for compliance research, not as definitive legal findings against any country or entity.
  • Comply with applicable import regulations, including UFLPA, Section 307 of the Tariff Act, and EU CSDDD requirements, when using this data for sourcing decisions.
  • Do not use output data to make adverse employment decisions about individual workers or to stigmatize specific communities.
  • For guidance on web scraping legality and data usage, see Apify's guide.

FAQ

How many countries does the DOL ILAB forced labor dataset cover? The current DOL ILAB ImportWatch Core dataset covers approximately 75–90 countries with at least one flagged good. The Child Labor Report covers 130+ countries. Running this actor without filters returns every country present in ImportWatch, sorted by risk score, giving you a complete global picture.

What is the difference between ImportWatch and LaborShield data? ImportWatch is sourced from TVPRA Section 105 statutory reporting and links goods to US import trade data and HS tariff codes. LaborShield is a DOL program focused on supply chain risk assessment and remediation, providing compliance action recommendations. This actor joins both and also includes Child Labor Report advancement assessments from TVPRA Section 402(b) reporting.

Does this actor support UFLPA compliance screening? Yes. The UFLPA's rebuttable presumption covers goods manufactured wholly or in part in Xinjiang or by entities on the UFLPA Entity List. This actor surfaces all DOL-flagged forced labor goods for China with their HS codes, which directly corresponds to the product categories CBP uses to assess whether the rebuttable presumption applies to an inbound shipment.

How accurate is the risk score? The risk score is a structured, rule-based calculation using seven DOL-sourced signals: goods count, forced labor severity, dual-exploitation goods, TVPRA advancement level, sector spread, HS code exposure, and LaborShield compliance action volume. It is designed for triage and prioritization, not as a substitute for a formal legal risk assessment. All contributing factors are listed transparently in the riskFactors array of each record.

How is this different from commercial supply chain risk platforms like EcoVadis or Sourcemap? Commercial platforms combine audit data, certification data, and news monitoring alongside government data, and charge $5,000–$50,000+ per year. This actor provides structured access to the full DOL ILAB government dataset — the same underlying data many commercial platforms license — for under $2 per full global run, with no subscription commitment. It does not include factory-level audit scores or real-time news monitoring.

Can I filter by specific HS tariff codes from my customs declarations? Yes. Enter a 4-digit HS code (e.g., 8471 for computers) or a 2-digit chapter prefix (e.g., 84 for all machinery) in the hsCode field. The actor performs prefix matching against the ImportWatch_Goods_HS lookup table and returns all countries where goods matching those codes are flagged.

How often is the underlying DOL data updated? DOL publishes ImportWatch and LaborShield data on an irregular basis — typically annually or when new TVPRA reporting is submitted. The dataset publication dates visible in the existing README (Sep 2025 for ImportWatch Core, Jan 2026 for LaborShield) reflect the most recently published versions. The actor always queries the live DOL API, so it returns the most current data available at the time of each run.

Can I schedule this actor to run automatically on a quarterly basis? Yes. Apify's built-in scheduler lets you configure this actor to run on any cron schedule — for example, the first Monday of each quarter. Combined with the Google Sheets or webhook integration, this creates a fully automated quarterly supply chain labor risk update with no manual intervention.

Is it legal to use this data for import screening and ESG reporting? Yes. This actor accesses only official U.S. government data published by the Department of Labor under the DOL Open Data Portal. The data is expressly published for compliance and research purposes. Use for UFLPA screening, CSDDD due diligence, and ESG disclosure is consistent with the DOL's stated purpose for these datasets.

What happens if the DOL API is temporarily unavailable? The actor implements 4-retry exponential backoff on all API calls, with delays of 2s, 4s, 8s, and 16s between attempts. If a dataset is completely unreachable after 4 retries, the actor logs a warning and continues building records from the datasets that did respond — partial enrichment rather than a full failure.

Can I use the output in an automated customs pre-screening workflow? Yes, via the Apify API or webhooks. The structured output — with country, countryCode, and goods[].hsCodeMatches — is designed for integration into customs management systems. Match your import declaration's HS codes against the hsCode fields in the output to flag shipments requiring additional documentation before CBP arrival.

Does the actor work without a DOL API key? Yes, in dry run mode only. With dryRun: true (the default when no key is provided), the actor returns two representative country profiles. For any real compliance work, a free DOL API key is required. Registration takes under two minutes at dataportal.dol.gov/registration.

Help us improve

If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:

  1. Go to Account Settings > Privacy
  2. Enable Share runs with public Actor creators

This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom integrations, enterprise compliance workflows, or bulk processing requirements, reach out through the Apify platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try ILAB Supply Chain - Forced & Child Labor Risk?

Start for free on Apify. No credit card required.

Open on Apify Store