Tender Direct Notice Details Export
Pricing
from $50.00 / 1,000 results
Tender Direct Notice Details Export
This actor logs into Tender Direct & a specific URL & pulls the most important data from a Tenders Direct notice page, which the API export you pay for leaves out! This is incredibly valuable for those automating Tender Notices with Make.com Make sure to put your info in the environment variables.
Pricing
from $50.00 / 1,000 results
Rating
0.0
(0)
Developer

Dave K
Actor stats
0
Bookmarked
2
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Tenders Direct Notice Scraper
Apify Actor that scrapes tender notice details from Tenders Direct. The Actor handles authentication with persistent session storage and extracts notice details from individual notice pages.
Features
- Robust Authentication: Handles login with session persistence across runs
- Azure AD Support: Works with both standard login forms and Azure AD SSO flows
- Configurable Timeouts: Adjust navigation timeouts for different network conditions
- Debug Mode: Toggle browser visibility and debug screenshots for troubleshooting
- Flexible Input: Accepts single URLs or arrays of URLs in multiple formats
Input Configuration
The Actor accepts the following input fields (all optional except notice URLs):
Required
- noticeURL (array or string)
- One or more Tenders Direct notice URLs to scrape
- Accepts: single string, array of strings, or array of
{url: "..."}objects - Example:
["https://app.tendersdirect.co.uk/notice/12345"]
Authentication
-
email (string)
- Login email for Tenders Direct
- Falls back to
TD_EMAILenvironment variable if not provided - Example:
"your.email@company.com"
-
password (string, secret)
- Login password for Tenders Direct
- Falls back to
TD_PASSWORDenvironment variable if not provided - Stored securely and masked in UI
Timeouts
-
loginTimeout (integer, default: 25000)
- Maximum time in milliseconds to wait for login page navigation
- Increase for slow networks or Azure AD SSO flows
- Range: 5000-120000ms
-
noticeTimeout (integer, default: 30000)
- Maximum time in milliseconds to wait for notice page navigation
- Increase for large or slow-loading notice pages
- Range: 5000-120000ms
Debug Options
-
headless (boolean, default: true)
- Run browser in headless mode (no visible window)
- Set to
falsewhen debugging login issues locally
-
saveDebugScreenshots (boolean, default: true)
- Save screenshots and HTML to Key-Value Store when errors occur
- Useful for debugging but consumes storage
- Set to
falseto reduce storage usage in production
Example Input
Minimal (using environment variables)
{"noticeURL": ["https://app.tendersdirect.co.uk/notice/12345","https://app.tendersdirect.co.uk/notice/67890"]}
Note: Set TD_EMAIL and TD_PASSWORD in Actor environment variables.
Complete (all options)
{"noticeURL": ["https://app.tendersdirect.co.uk/notice/12345","https://app.tendersdirect.co.uk/notice/67890"],"email": "your.email@company.com","password": "your-password","loginTimeout": 45000,"noticeTimeout": 60000,"headless": true,"saveDebugScreenshots": true}
Output
The Actor pushes data to the default dataset with the following structure:
{"url": "https://app.tendersdirect.co.uk/notice/12345","title": "Notice Title","noticeDetailsHtml": "<div>...</div>","noticeDetailsText": "Plain text content...","scrapedAt": "2025-01-15T10:30:00.000Z"}
Local Development
Prerequisites
$npm install
Environment Setup
Create environment variables or provide them via input:
export TD_EMAIL="your.email@company.com"export TD_PASSWORD="your-password"
Run Locally
$npm start
Code Quality
# Format codenpm run format# Check formattingnpm run format:check# Lint codenpm run lint# Fix lint issuesnpm run lint:fix
Troubleshooting
Login Failures
- Set
headless: falseto see the browser and debug visually - Check debug screenshots in Key-Value Store (
login-fail.html,login-fail.png) - Increase
loginTimeoutif using Azure AD SSO (try 45000-60000ms) - Verify credentials are correct
Notice Extraction Failures
- Check debug screenshots (
notice-miss.html,notice-miss.png) - Increase
noticeTimeoutfor slow-loading pages - Verify the notice URL is correct and accessible when logged in
Session Issues
- The Actor saves session state to avoid repeated logins
- If experiencing auth issues, the session state is automatically refreshed on login
- Session state is stored in Actor's Key-Value Store as
storageState.json
Migration from Environment Variables
If you're currently using TD_EMAIL and TD_PASSWORD environment variables:
- Your Actor will continue working without changes (backward compatible)
- To migrate, add
emailandpasswordto your input JSON - Input fields take precedence over environment variables
- You can remove environment variables after migration
Technical Details
- Built with Crawlee and Playwright
- Uses Chromium browser
- Docker base image:
apify/actor-node-playwright-chrome:22-1.54.1 - Node.js with ES modules
Resources
- Apify Platform documentation
- Crawlee documentation
- Playwright documentation
- Apify SDK for JavaScript
Support
For issues or questions:
- Check debug screenshots in Key-Value Store
- Review Actor logs for error details
- Adjust timeout values for your network conditions