---
name: consolidated-screening-list-ingestion
description: "How to get ITA Consolidated Screening List data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load the keyless ITA screening list into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/consolidated-screening-list
Provider: https://www.trade.gov/consolidated-screening-list
Checked against the provider's documentation: 2026-11-02

## Access
- The complete CSV, TSV and JSON files download without an account or key.
- The search API needs a free developer-portal account, product subscription and subscription key.

## Request
```bash
curl -O 'https://data.trade.gov/downloadable_consolidated_screening_list/v1/consolidated.csv'
```

## Format
CSV rows with source list, entity and program identifiers, type, names and aliases, addresses, restriction details, dates, citizenship and birth data, vessel fields and official source URLs.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""ITA Consolidated Screening List CSV -> pandas -> Parquet. No key."""
import io
import requests
import pandas as pd

URL = "https://data.trade.gov/downloadable_consolidated_screening_list/v1/consolidated.csv"
r = requests.get(URL, timeout=120)
r.raise_for_status()
df = pd.read_csv(io.BytesIO(r.content), low_memory=False)
df.to_parquet("consolidated_screening_list.parquet", index=False)
print(len(df), "active screening records from", df["source"].nunique(),
      "source lists", "with", df["name"].notna().sum(), "named records")
```
Run by us on 2026-11-02 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 26186 active screening records from 12 source lists with 26186 named records

## Limits
- Rate limit: Not stated.
- The API contains active entities only; use the originating agencies for historical research.
- The downloadable files are complete snapshots and can be materially larger than a filtered API response.

## Quirks
- List fields vary by source, so many columns are blank for records whose originating list does not supply that attribute.
- Names, aliases, addresses and other multi-value fields are serialized into single CSV cells; preserve the source and source_information_url columns.
- A match is a lead for further checks, not a final identity or legal determination; consult the official source list and Federal Register.

## Terms and attribution
- ITA allows API clients to search, display, analyze, retrieve and view intentionally public data subject to its terms.
- API-based services should show ITA's specified non-endorsement notice and must not falsely represent modified content as ITA content.
- Terms page: https://developer.trade.gov/terms-of-service

## Sources
- https://www.trade.gov/consolidated-screening-list: "All the tools are updated automatically every day at 5:00 AM EST/EDT."
- https://www.trade.gov/consolidated-screening-list: "enables computers to freely access the CSL in an open, machine-readable format."
- https://www.trade.gov/data: "The API only contains active entities on the list."
- https://developer.trade.gov/terms-of-service: "The CSL is one tool offered to assist users in identifying potentially sanctioned companies, entities, or persons and is not a substitute for undertaking appropriate due diligence."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
