Privacy notice
See also terms · privacy · corrections & takedowns.
This notice explains what personal data toolgrep handles, why, who else processes it and what your rights are under the UK GDPR and the Data Protection Act 2018.
Who is responsible
The controller of your personal data is Yuncedria Technologies Inc., which operates toolgrep. For anything about your data, email info@toolgrep.com.
The short version
- There are no user accounts, passwords, advertising or tracking cookies, and no third-party analytics scripts.
- We do not store your IP address. To limit repeat submissions we store a keyed hash of it, which cannot be turned back into the address without our secret key.
- Email addresses are optional. We only send emails you have triggered or asked for; there are no newsletters.
- We do not sell personal data.
What we collect and why
Browsing and searching (website, API, MCP)
- Your browser's or client's User-Agent header is reduced to a coarse class such as
browser,claude,cursor,scriptorbot. We do not keep the header itself for browsing. - Usage events go to Cloudflare Workers Analytics Engine: the event type (search, listing shown, listing viewed, MCP call), the surface (website, API, MCP), the client class, the listing concerned, the MCP tool name and a short hash of the normalised search text. These events contain no IP address, no full User-Agent and no search text.
- For each listing we keep daily counters (views, times shown, MCP calls, clicks through to the product's site, and times shown per client class). These say nothing about who you are and are shown to the listing's owner.
- Search text is sent to Cloudflare Workers AI to find semantically similar products. If a listing on the Pro plan appears in your results, the normalised text of your search (lower case, at most 120 characters) is stored with the day, client class and surface, and shown to that listing's owner as "query insights". Please do not put personal information in searches.
- To answer repeat searches faster, the search's embedding is kept in Cloudflare's cache for up to 24 hours and the matching listing ids for 5 minutes. The cache key is a SHA-256 hash, so the search text itself is not part of it.
- Cloudflare, which hosts toolgrep, processes your IP address and request details to deliver and protect the service. Logging is turned on for toolgrep: Cloudflare Workers Logs record every request with its URL and other request and response details, plus our application's log messages, and keep them for up to 7 days. Search text sent in a URL, such as
/search?q=…on the website or/api/products?q=…on the API, is therefore in these logs.
Submitting a product
When you submit a URL through the website, the API or the MCP tool submit_product, we store:
- the URL, where it came from (website, API or MCP), the outcome and the time;
- a keyed hash of your IP address (HMAC-SHA-256 with a server secret), used only to limit submissions to 10 per hour per address. It cannot be reversed without the secret, but it still identifies repeat submissions from one address, so we treat it as personal data. Hashes stored before this keyed method were deleted;
- your User-Agent header (first 300 characters), to spot abuse;
- your email address, if you give one. It is stored with your submission and never shown publicly. If your submission creates a new listing, the address is also stored with the listing and we email you when it goes live, with a link to claim it; if the first crawl fails and someone submits the site again later, that email still goes to you. If the site was already listed or submitted, you get no email.
Listings we import in bulk are recorded without any email address, IP hash or User-Agent.
Reporting a listing
The "Report a problem" form on each listing stores the kind of report (outdated, wrong, should be removed), the details you write, the client class and the time. If you give your email address it is stored with the report, and only toolgrep staff see it. For "wrong" and "should be removed" reports, the details and your email address are emailed to toolgrep's administrator. If the listing has been claimed and its owner has set a contact email, the owner is also told, with the details you wrote (so don't put your address there) but never the address from the email field (at most one notice per listing every 6 hours). The MCP tool report_outdated stores the listing, the optional reason and the client class.
Claiming and managing a listing
- To verify control of a domain we look up a DNS TXT record through Cloudflare's DNS-over-HTTPS resolver and fetch the domain's
/.well-known/toolgrep.txtfile or homepage. If you choose the email method, we send a one-hour link to the address you enter, which must be on that domain. - An owner is a random identifier with a creation and last-seen time; we keep a record of each verification (token, method, time). We do not ask for your name.
- You can set a contact email for report notices on the dashboard and remove it at any time. It is used for nothing else. It is also removed when toolgrep removes an owner from the listing, or when the listing is claimed again from a different sign-in.
- Listing edits and Pro notes for agents are business information published on the listing. If you create a stats API key, we store only a hash of it.
Paying for Pro
Checkout and the billing portal are hosted by Stripe, which collects your email address, payment details and billing details under its own privacy policy. We never receive your card details. We store the Stripe customer, subscription and checkout session identifiers, the plan, the subscription status and the end of the current period, linked to the listing and owner identifier, and we send Stripe the listing and owner identifiers and the plan with each checkout.
Emails
We send only these emails: claim links to an address on a listing's domain, the "your listing is live" notice to a submitter, report notices to a listing's contact email, and report alerts to toolgrep's administrator. For each email we keep a log of the recipient address, subject, provider, message id, any error and the time.
Websites we crawl
toolgrep-bot reads public pages of listed products (the homepage, /pricing, /docs, /llms.txt and, for Pro listings, up to 10 extra pages chosen by the owner) and stays away from sites that block it with Disallow: / in robots.txt. The page text is sent to Cloudflare Workers AI to extract product facts; we keep the extracted facts, a hash of the text and crawl metadata (status, final URL, size, pages fetched). We aim to describe products, not people. If a listing contains personal data about you, use the takedown process.
Each crawl runs as a Cloudflare Workflow, and Cloudflare saves the result of every step of the run. That saved state includes the listing's product fields, its owner's notes and the text of the fetched pages, but not the submitter or contact email addresses we store. Cloudflare keeps it for 1 day after a run ends, or 3 days if the run failed.
Cookies
| Name | Purpose | Lifetime |
|---|---|---|
tg_owner | Signed session for listing owners, set after you verify a domain. Contains only your owner identifier and an expiry time. HttpOnly, SameSite=Lax. "Sign out on this browser" on the your listings page deletes it. | 90 days |
tg_admin | Signed session for toolgrep's administrator only. | 12 hours |
Both are strictly necessary for the feature you are using, and visitors who do not claim a listing get no cookie from toolgrep. Cloudflare may set its own security cookies (such as __cf_bm) when its bot protection is active, and Stripe sets its own cookies on its checkout and billing pages.
Legal bases
- Legitimate interests: running, securing and improving a public product directory, limiting abuse, counting usage, crawling public business information, handling reports and sending the notices described above.
- Contract: providing Pro to the owner who buys it.
- Legal obligation: keeping billing records and responding to legal requests.
Who else processes your data
| Provider | What for |
|---|---|
| Cloudflare, Inc. | Hosting (Workers), database (D1), crawl runs (Workflows), search index (Vectorize), AI models (Workers AI) for extraction and search, search cache, usage events (Analytics Engine), logs (Workers Logs), DNS-over-HTTPS lookups for domain verification, and sending email (Email Sending, the default provider). |
| Stripe | Pro payments, subscriptions and the billing portal. |
| Resend, Inc. | Sending email, only if we have configured it: as the first choice, or as a fallback when Cloudflare Email Sending fails. |
Listing owners receive report notices and, on Pro, the search texts described above. We may disclose data where the law requires it. These providers may process data outside the UK, including in the United States.
How long we keep it
- Analytics Engine usage events: three months (Cloudflare's retention for that product).
- Workers Logs (request URLs, including search text sent in a URL, and application log messages): up to 7 days.
- Crawl run state in Cloudflare Workflows (listing fields, owner notes and fetched page text, without the submitter or contact email addresses we store): 1 day after each run ends, 3 days if it failed.
- Search cache: embeddings up to 24 hours, matching listing ids 5 minutes.
- Owner session cookie: 90 days; email claim links: one hour; claim tokens: valid for 7 days.
- Everything else (submissions with email address, IP hash and User-Agent, reports, the email log, owner and verification records, daily counters, query insights and subscription records) is not deleted on a schedule. Deleting a listing removes its reports, counters, query insights, crawl history, verifications and subscription records. When you ask, we remove your email address and the data stored with it as described under "Your rights".
- Stripe keeps payment records under its own policy and legal obligations.
Your rights
You can ask for access to your personal data, and for it to be corrected, deleted, restricted or given to you in a portable format, and you can object to processing based on legitimate interests. Email info@toolgrep.com with the email address you used and, if it helps, the listing or URL concerned; we find your records by that email address. We will reply within one month.
For an erasure request we use an admin tool that, for that email address:
- deletes our log of the emails we sent to it;
- removes it, together with the IP hash and User-Agent stored with it, from your submissions;
- removes it from listings, where it was the submitter or contact email;
- replaces it with "[erased]" in reports;
- can delete the owner account linked to it through a contact email, after removing that account from its listings and deleting its verification records. Any Pro subscription on those listings stops renewing and ends at the end of the paid period.
Billing records (Stripe customer and subscription identifiers) are kept for accounting. Daily counters do not identify you and stay. Cloudflare's logs and Workflow state expire on their own (see above). We keep a pseudonymous note of each erasure, a short hash of the address with the number of records changed, so that a repeat request can be matched. Owners can also remove their contact email, edit or hide a listing and cancel Pro from the listing's dashboard at any time, and use "Sign out on this browser" on the your listings page.
If you are unhappy with how we handle your data, you can complain to the Information Commissioner's Office: ico.org.uk.
Children
toolgrep is a directory of software products and is not aimed at children.
Changes
We will update this notice when what we collect changes; the current version is always on this page.