Endoflife Date Scraper
Pricing
from $2.99 / 1,000 results
Endoflife Date Scraper
Track software lifecycle and end-of-support dates instantly. Filter by product, version, or upcoming EOL windows and export clean JSON, CSV, or Excel dat
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Product Lifecycle Scraper: EOL Dates for Software Versions
Track end-of-life and end-of-support dates across software versions without maintaining a manual spreadsheet. Pick your preferred mode, set an item limit, and export clean data directly to JSON, CSV, or Excel.
Use Cases
- Release tracking: Keep tabs on Python or Node.js release cycles and see exactly when security support ends.
- Dependency review: Paste a list of software names and pull cycle information in a single run.
- Patch windows: Compare
latestandlatestReleaseDatebefore you freeze a production build. - Inventory cleanup: Extract all available product identifiers, then run a second pass on the ones your stack depends on.
- EOL-soon report: Automatically filter for software versions whose end-of-life dates fall within a specific timeframe (e.g., the next 180 days).
- Scheduled exports: Set up automated runs on a timer and download fresh CSV or Excel reports straight to your workflow.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | all_products | Choose from all_products, product_cycles, single_cycle, or eol_soon. |
products | array | python, nodejs | Slugs for product_cycles, single_cycle, and eol_soon (one per line). Ignored when mode is set to all_products, which loads every product. |
cycles | array | 3.12 | Cycle names for single_cycle. Each product gets paired with each cycle. |
eolWithinDays | integer | 180 | In eol_soon mode, keeps cycles whose EOL date is today or within this many days ahead. |
maxItems | integer | 100 | Data-row limit (maximum 1000). Error rows do not count toward this cap. |
requestDelaySecs | number | 1 | Pause between requests in seconds to keep execution smooth and steady. |
timeoutSecs | integer | 300 | Stop starting new requests after this duration (maximum 3600 seconds). |
requestTimeoutSecs | integer | 30 | Timeout limit for individual requests. |
proxyConfiguration | object | Off (useApifyProxy false) | Optional proxy configuration. |
Example Input
{"mode": "product_cycles","products": ["python", "nodejs"],"maxItems": 100,"eolWithinDays": 180,"requestDelaySecs": 1,"timeoutSecs": 300,"requestTimeoutSecs": 30,"proxyConfiguration": { "useApifyProxy": false }}
Extracted Data Output
Extracted records are stored directly in the default dataset. A standard Python cycle output looks like this:
{"product": "python","cycle": "3.15","releaseDate": "2026-10-09","eol": "2031-10-31","latest": "3.15.0","latestReleaseDate": "2026-10-09","lts": false,"support": "2028-10-09","scraped_at": "2026-10-12T00:00:00Z"}
| Field | Type | Description |
|---|---|---|
product | string | The software product name or slug requested. |
cycle | string | Release cycle version. |
releaseDate | string | Cycle release date. |
eol | string or boolean | EOL date, or a boolean indicator if applicable. |
latest | string | Latest patch version available. |
latestReleaseDate | string | Release date of the latest patch. |
lts | boolean or string | LTS (Long Term Support) flag or end date string. |
support | string or boolean | End date of active support. |
scraped_at | string | UTC timestamp when the record was processed. |
error | string | Returned on failed requests with status details and messaging. |
all_products mode loads every product on endoflife.date and exports one fully populated row per release cycle (cycle, releaseDate, eol, latest, support), up to maxItems. product_cycles mode does the same for only the slugs you list. single_cycle mode maps specific products to selected cycle versions. eol_soon filters results to dates falling between today and today plus eolWithinDays.
Duplicate product|cycle combinations in the same run are automatically deduplicated.
How It Works
- Processes your input preferences and constructs the list of requested items.
- Executes requests sequentially with your custom User-Agent header.
- Pauses according to your configured
requestDelaySecssettings between tasks. - Handles unexpected errors gracefully with exponential backoff retries.
- Processes results as a stream and trims items when reaching
maxItems. - Non-200 responses or malformed data are logged as error entries while allowing the overall run to finish smoothly.
- Results are pushed to the dataset in batched outputs.
FAQ
Can I export data as CSV or Excel? Yes! You can export your run results from the dataset as JSON, CSV, or Excel directly from the Apify platform.
What happens if a product name is invalid? If a software slug isn't found, the scraper outputs a clean error row with status details without stopping or crashing the entire run.
How many rows can I pull per run?
maxItems defaults to 100 rows and can be increased up to a maximum of 1,000 per run.
Which dates are included in eol_soon mode?
It filters for cycles where eol is an active date ranging from today through today plus your specified eolWithinDays setting (default: 180 days). Passed dates and boolean values are excluded.
Trademark Notice
Product names, logos, and trademarks mentioned in this documentation belong to their respective owners. Their inclusion is strictly for identification purposes and does not imply affiliation, endorsement, or sponsorship.
Disclaimer
This scraper is an independent software tool designed for automated data processing. Users are responsible for ensuring that their data collection activities comply with applicable terms of service and usage regulations.
Is Web Scraping Legal?
This Actor only collects publicly available data without bypassing access controls. Scraping public data is generally legal, but how you use it matters:
- Personal data: If results include personal details, data privacy regulations such as GDPR or CCPA may apply. Only collect and process personal data when you have a clear legal ground or legitimate interest.
- Copyright: Content and intellectual property may be protected by copyright law. Avoid republishing full copyrighted materials without proper permissions.
- Terms of use: Respect website usage terms, request limits, and attribution guidelines.
- Legal advice: This summary is provided for general informational purposes and does not constitute formal legal advice. Consult legal counsel if you have specific regulatory concerns.
Learn more by reading Apify's full guide: Is web scraping legal?