Data freshness
The External API is a read-through layer over E1’s internal systems. Data you read through the API reflects the state of those systems at the time of the request, modulo the caching and sync behaviours described below.
Supplier API (Speci-finder results)
- Project, tender, and builder data is sourced from the live E1 platform at request time, so changes made in E1 are visible on the next poll.
- The assigned user’s Speci-finder keywords are also read from the live platform, so if a supplier updates their keywords in E1, the next API call reflects the change.
- Matching runs at request time against whichever tenders are currently open. A tender that closes (past quote due date) stops appearing in results immediately.
What “currently open” means
A tender is returned only if its quotes are not past due and fall within a near-term window. The window is scoped server-side; partners do not pass a date to control it.
A tender that was open yesterday but closed this morning will not be returned today. This is intentional: the API is designed to surface actionable matches, not historical ones.
Why your response might be empty
A 200 OK with data: [] means the query succeeded and nothing matched. The most common reasons:
- No keywords. The assigned user has not configured any Speci-finder keywords in E1 yet.
- Nothing currently open. Any tenders that matched have already closed.
- No matches. Keywords are set but none matched any currently-open tender.
None of these are error conditions. The integration should display an empty state to the end user and poll again on the usual cadence.
Recommended polling cadence
Daily is sufficient for most supplier workflows — keywords change infrequently and new tenders are surfaced throughout the day. Hourly is reasonable if your product shows real-time match notifications. Anything faster than hourly is over-engineering: upstream data does not change on a sub-minute cadence.