Open Tender and RFP Finder avatar

Open Tender and RFP Finder

Pricing

from $2.55 / 1,000 notice rows

Go to Apify Store
Open Tender and RFP Finder

Open Tender and RFP Finder

Find open public tenders and RFPs by keyword, CPV code, and country. One row per notice with buyer, deadline, estimated value, codes, and link, from UK Contracts Finder, UK Find a Tender, EU TED, and CanadaBuys. No API key. Only new notices on a schedule. Clay ready.

Pricing

from $2.55 / 1,000 notice rows

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

What's new (October 2026)

  • US federal notices from SAM.gov. Add your own free sam_gov_api_key and the run also reads SAM.gov contract opportunities, as the us_sam_gov portal: NAICS codes in category_codes, the response deadline, the agency, the place of performance state, the contracting officer email, and a new set_aside field. Off until you give a key; with a key and an empty portals, it joins the other four.

No price change. Existing fields and saved inputs work as before.

Find open public tenders and RFPs (requests for proposal) that match your keywords, CPV codes, and countries. You get one row per notice with the buyer, the response deadline, the estimated value, the category codes, the buyer contact email, and a link to the notice. The notices come from four official public notice portals: UK Contracts Finder, UK Find a Tender, EU TED (Tenders Electronic Daily, the EU journal of public procurement), and CanadaBuys. Rows are flat, so they export to CSV or drop into a Clay table.

Features

  • Four portals in one row layout. UK Contracts Finder and UK Find a Tender (UK central and local government, NHS, and other UK public bodies), EU TED (public bodies in the 27 EU countries plus Norway, Iceland, Switzerland, and other countries that post on TED), and CanadaBuys (Government of Canada).
  • Keyword match with the evidence. Each row lists the keywords found in its title or description. EU TED matches keywords over the full notice text in every language, and those rows say portal_full_text.
  • Filters that run before you pay. CPV code prefixes, buyer countries, a publication window, a minimum estimated value, exclude keywords, and open notices only. Filtered notices are never billed.
  • Deadline first. deadline_at in UTC and days_to_deadline on every row, so you can sort by what closes soonest.
  • Scheduling. Only new results skips notices an earlier run with the same state key returned, and skipped notices are free. Run it daily as an Apify schedule for a new bids feed.
  • No API key. Every portal is an official open data API or file, read directly.

How it reads the portals

PortalSourceLicence
UK Contracts FinderOCDS search API, tender stage, contractsfinder.service.gov.ukOpen Government Licence v3.0
UK Find a TenderOCDS release packages API, tender stage, find-tender.service.gov.ukOpen Government Licence v3.0
EU TEDSearch API v3, contract notices and calls for competition, api.ted.europa.euEU open data reuse policy
CanadaBuysOpen tender notices data file, canadabuys.canada.ca/opendataOpen Government Licence, Canada
US SAM.govGet Opportunities Public API v2, api.sam.gov, on your own keyUS government work, public domain

Requests go direct. A portal that refuses a request is retried once through the Apify proxy. The run summary (key-value store record RUN_SUMMARY) lists, per portal, notices read, notices matched, requests, and any error.

Input

FieldTypeDefaultWhat it does
keywordsarrayWords or phrases to find in the title or description. Empty: every open notice in the window
exclude_keywordsarrayDrop a notice that contains any of these
cpv_prefixesarrayKeep notices with a CPV code that starts with one of these, for example 72 or 48000000. CanadaBuys uses UNSPSC codes, so a CPV filter leaves it out
countriesarrayTwo letter buyer country codes, for example GB, DE, CA. A portal that covers none of them is skipped
portalsarrayall four (five with a SAM.gov key)uk_contracts_finder, uk_find_a_tender, eu_ted, canada_buys, us_sam_gov
published_within_daystext, whole number"14"Publication window, 1 to 90 days, today included
only_opentext, true or false"true"Drop notices whose deadline has passed
min_valuestringDrop notices valued below this number, in the notice currency. Notices with no value are kept
max_noticestext, whole number"100"Notice rows per run, newest first, up to 5,000
only_newtext, true or false"false"Skip notices an earlier run with the same state_key returned
sam_gov_api_keystring, secretYour own free SAM.gov public API key. Without it, US SAM.gov is skipped and the run says so
state_keystringNames the seen list; one key per schedule
max_charge_usdstringStop before a row would pass this amount

Every field takes text, as Clay sends it: "true", "30", a comma separated list, or a JSON array. Number and true or false fields are text fields, so from the API send "30" and "true" in quotes; Apify refuses a bare number or a bare true before the run starts. Text that is not a number or true or false (for example "ten") gets the free input row described under Error handling.

Output

FieldExample
portaluk_find_a_tender
notice_id, notice_urlocds-h6vhtk-078bf8, https://www.find-tender.service.gov.uk/Notice/099063-2026
title, description_excerptSlit-lamp Simulator and all associated parts and software
buyer_name, buyer_country, buyer_regionNHS Education for Scotland, GB, UKM
delivery_regions["UKM"]
published_at, deadline_at, days_to_deadline2026-10-20, 2026-11-20T13:00:00.000Z, 30.2
estimated_value, currency250000, GBP
category_codes, category_code_scheme, category_description["33100000"], CPV, Medical equipments
contract_type, procedure, notice_type, notice_statusgoods, Open procedure, tender, active
sme_suitabletrue (UK portals)
buyer_contact_emailthe address the notice publishes for questions and bids
set_asideUS SAM.gov only: the set aside the notice names, for example a small business set aside
matched_keywords, match_source["software"], title_or_description
is_newtrue with Only new results on
row_status, error_reason, billable_events_jsonok, null, {"notice-row":1}

When nothing matches, the run returns one free row with row_type no_results and the reason, so a scheduled run always has a row.

Pricing

Pay per event. You pay only these events; the Apify platform and proxy costs of your run are paid by Mamba Labs.

EventFree planBronzeSilverGold
Notice row (notice-row)$0.003$0.00285$0.0027$0.00255
Actor start (apify-actor-start), once per run$0.002$0.002$0.002$0.002

Free rows: the no results row and notices skipped by Only new results. A run of 100 notices costs about 0.30 USD on the free plan prices. On the Apify free plan the actor stops at 1.50 USD of evaluation a month (about 500 notice rows); any paid Apify plan removes that cap.

Usage examples

Apify Console or API

{ "keywords": ["software", "cloud hosting", "data platform"], "countries": ["GB", "IE"], "published_within_days": "7" }
{ "keywords": [], "cpv_prefixes": ["72", "48"], "portals": ["eu_ted"], "countries": ["DE", "NL"], "min_value": "100000" }
{ "keywords": ["marketing", "communications"], "portals": ["canada_buys"], "max_notices": "200" }

Clay

Add an HTTP API or Apify column with your keywords, then filter rows on days_to_deadline and estimated_value. buyer_name and buyer_contact_email give you the buyer to research before you bid.

Daily new bids feed

Save the input as an Apify task with only_new true and a state_key, then schedule it daily. Each run returns only the notices published since the last one.

MCP

The MCP server @mambalabsdev/mcp-open-tender-rfp-finder exposes this actor as a tool for Claude and other MCP clients.

Error handling

SituationWhat you get
A portal is down or refuses every requestThe other portals still return rows; the failed portal and its HTTP status are in RUN_SUMMARY.per_portal and, when nothing matched, in error_reason
Every portal failsOne free row with row_status blocked and each portal's reason
Nothing matchesOne free row with row_status no_results
Only new results finds nothing newOne free row with row_status no_change
Max charge reachedThe run stops before the next billable row and says why in the status message
Input that does not parse, for example "ten" for Max noticesOne free row with row_status error naming the field. Nothing is charged beyond the run start

Limitations

  • US federal opportunities (SAM.gov) are not covered in this version. The SAM.gov Opportunities API answered HTTP 404 to every test request on 2026-10-21 (public demo key, direct and through the Apify proxy), so it could not be verified.
  • UK Contracts Finder returns at most 100 notices per request; the actor splits a full window into smaller windows and reads each.
  • EU TED keyword matching is TED's own full text search over every language, so a row can match a keyword its English title does not contain (match_source portal_full_text).
  • US SAM.gov needs your own key and returns no estimated value. Its search response links the description rather than carrying it, so keywords match the title only, and a CPV filter leaves SAM.gov out (it uses NAICS). US state and local portals such as Bonfire are not covered.
  • CanadaBuys publishes no estimated value, so estimated_value is empty and min_value keeps every CanadaBuys row. Its closing times carry no time zone and are read as UTC.
  • Many notices publish no estimated value; min_value keeps them.
  • Titles and descriptions are in the language the buyer wrote them. EU TED rows carry TED's English title.
  • The buyer contact email is the address the notice publishes for bids. Use it for questions about that notice.
  • Each portal's terms and licence govern reuse of its notices.

More from Mamba Labs

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Answer Visibility TrackerRJZvzKniYK4nswcMg
AI List Extractor for Any WebsiteD5hOdIez45M0NX5jD
AI Tooling DetectorEwkHhmqiuJgRoVEbE
Amazon Product, Price, and Stock TrackerMtJPZoyjJ3IeqTFyo
API Deprecation and Breaking Change MonitorpHsbS3xXUK8Jqutz5
App Store and Google Play Review MonitorMaCMEhGrbchxQZ92G
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Bluesky Posts ScraperKldSjS7wjoeZ7vQGm
Brand Sponsor FinderPPgK6xrgOmvL7Nrys
Bulk WHOIS and RDAP Domain Age LookupMTrkG5FLU6SjqLdJY
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Careers Page Jobs, 17 ATS BoardsizP0rfIgf5YaRZfIh
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Role Email, Phone and Address Finder4mMncKaJykiq94grz
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License Search, CA, TX, WA, OR, LAWBYK3CPI2kdeq4bP1
CRM Contact Job Change CheckerL8UbEmMJC1XYPSZOb
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Email List Verifier, Bring Your Own KeyCzVJ4NlaCKk80xpgE
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness Finder, US and AustraliaLIpwlgfE3LaQBaXd4
Facebook Posts ScraperT6jxIeq4ua0SLXnqG
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GDPR Cookie Banner and Consent CheckerTrKyOS0KBoGC35nbr
GitHub Followers and Following ExportSGNxDmFb9v3tRDaFI
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Center Scraper by Domain1eOwxhBVxzvOXAm4s
Google Maps Places ScraperSuvHCNJ7pIuw6gn54
Google Trends ScraperOeDzaACKmBYJXzHZk
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
Healthcare Provider NPI EnricherMrgbHzcpDq3mOv9Df
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Search Across TikTok, Instagram and YouTubetpkedmloIIWtXx6sg
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Journalist and Media List BuildermAfizsZC8qRoR0ecS
Launch Directory List BuildercRq3bmvEZxZtioQ7U
Lead File Import CheckerRwlGVXTf46LqZdUgt
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Jobs FeedSH6N0d8cz46BhCC8B
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Companies from Seed Domainse2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
MCP Server Change and Health MonitorIeqjWF9U0BdDQFY08
Media URL TranscriberSyfr7Ya3EsHgWfrB6
Meta Ad Library Ads by Company, Graph APIJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
New Hire FindercKuc38p4nYHNF3IW8
Newly Registered Companies, UK, Norway, Finland, Franceg2WfZhWvCtc57g2Jo
News and Media Mention Monitorgol1PPUKrsIk4QLBd
Newsletter Sponsor TrackerqSwpqxD1TiPZpLQHv
Open Tender and RFP FinderkPTGz6t6TFoUUyfaO
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
Partner and Member Directory ExtractorZX0XJPPUvnFJxeC1a
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person LinkedIn URL ResolverssuyPV8LnEsL8qbnb
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Personal Email to Company ResolverAefT5Ye6YNPFQwJBf
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Podcast Guest and Host Findero2MGSvgbSLeeXOsIo
Product Hunt Daily Launches with Maker DomainsO4VX63drWK9Y9x641
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Recent Funding Rounds FeedKueVp9MOz7iOoAgDp
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reddit Search and Thread Scraper4Gsth5cP2Xt9V2xDN
Reporting Window FinderuINxR7a1IW8qUTRUX
Research Topic Institutions and AuthorsOH8ANqt7bCKbo72Gk
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Shopify App Store and Chrome Web Store ListingsgaY0BzkLyN77mD3wI
Site Crawler for Links and TableslLLJ6JxZ4XqN8ULz0
Substack Newsletter and Posts ScraperUEFsdwiPLmPNVy9xd
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
Tennis Match Datav3OX6zxXHZOf2yurO
Threads Posts by Keyword, Exact Match2OT8K8RiEEWtaj2MW
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
US and UK Contract Award Winners by CompanyzhEtllASykOcx9hJ8
US Import Records Buyer FinderVIMafpKF5ggOw0COU
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
Website Accessibility Checker, WCAG 2.2 AAP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel from Company Domain6hSpD3kd2s2IQ4VSs
Zillow Listing DetailsyG4zM0Enfsw2NefJ1

Built by Mamba Labs.