# Find a tech stack, or companies using a technology, with PredictLeads

PredictLeads' Technology Detections API answers two questions: which technologies one company runs, and which companies run one technology. A company's tech stack is one `GET https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/companies/{domain}/technology_detections` at $0.04 per response. The companies using a technology come from `GET https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/discover/technologies/{technology}/technology_detections` at $0.04 per record, and each call answers first with a 402, a price quote you pay and retry, with no account or API key.

## At a glance

- **Company tech stack:** `GET https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/companies/{domain}/technology_detections`, $0.04 per response
- **Companies using a technology:** `GET https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/discover/technologies/{technology}/technology_detections`, $0.04 per record returned
- **Technology lookup:** `GET https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/technologies?fuzzy_name=...`, $0.12 per record
- **Parameters:** date filters on both detection routes; `company_location`, `company_sizes` and `company_naics_codes` on the discover route; `limit` and `page` on all three
- **Payment:** a 402 price quote, paid over x402 (Base USDC) or MPP (Tempo USDC) and retried. Prepaid Credits are also sold.
- **Response:** JSON with a `data` list of `technology_detection` objects; company and technology names sit in `included`
- **Limits:** one company or one technology per request, up to 1000 items per page
- **Full purchase flow:** [the buyer skill](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/SKILL.md)

## Read one company's tech stack

1. Send the request with the company's domain and a `limit`:

   ```bash
   curl -i "https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/companies/stripe.com/technology_detections?limit=3"
   ```

   The storefront answers `402` with `payment.amountUsd` and a `protocols` block offering each rail. Nothing is charged yet.

2. Pay the quote with an x402 or MPP client and resend the same GET with the proof attached. The response, trimmed to the first detection, looks like this:

   ```json
   {
     "data": [{
       "id": "<id>",
       "type": "technology_detection",
       "attributes": {
         "first_seen_at": "2026-10-21T23:34:45Z",
         "last_seen_at": "2026-10-21T23:34:45Z",
         "behind_firewall": true,
         "score": 0.25,
         "source_count": 1,
         "department_onet_codes": ["27-1025.00"],
         "location_data": [{"city": "New York", "state": "New York", "country": "United States"}]
       },
       "relationships": {
         "technology": {"data": {"id": "<id>", "type": "technology"}},
         "company": {"data": {"id": "<id>", "type": "company"}},
         "seen_on_job_openings": {"data": [{"id": "<id>", "type": "job_opening"}]}
       }
     }],
     "included": [{"id": "<id>", "type": "technology", "attributes": {"name": "SketchUp"}}],
     "meta": {"schema_version": "3.3", "record_state": "active", "message_type": "ok"}
   }
   ```

   This example returned three detections and paid $0.04. Its `meta.message` can suggest other domains to query, such as a subsidiary's.

3. Match each detection's `relationships.technology.data.id` to the `technology` object in `included` to read its `name`.

## Find companies using a technology

1. Put the technology's name or ID in the path, add filters, and set `limit` to the number of companies you want:

   ```bash
   curl -i "https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/discover/technologies/salesforce/technology_detections?company_location=United%20States&limit=2"
   ```

   The 402 quotes the most the call can cost, and you pay only for the records it returns, at $0.04 each. `limit` sets the most records a page returns; without it, a page holds up to 30.

2. Pay and retry. Each `data` item is one company's detection, in the same shape as above, ordered by `first_seen_at`, newest first. The matched technology appears in `included` with a `meta.fuzzy_score`:

   ```json
   {"id": "<id>", "type": "technology", "attributes": {"name": "Salesforce"}, "meta": {"fuzzy_score": "1.0"}}
   ```

   This example paid $0.08 for two records.

3. Match each detection's `relationships.company.data.id` to the `company` object in `included`, which carries the company's `domain`, `company_name` and `ticker`.

## Look a technology up in the tracked list

When a name could match several products, find the exact technology first and use its `id` in the discover path:

```bash
curl -i "https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/technologies?fuzzy_name=salesforce&order_by=fuzzy_score_desc&limit=1"
```

Each record carries `id`, `name`, `domain`, `categories`, `parent_categories`, `description` and `pricing_data`. Set `limit=1`: the default page is 100 records, which costs $12. `GET https://agents.predictleads.com/zcj/7qwk7p6m9p1w/api/v3/technologies/{id_or_fuzzy_name}` returns a single technology at $0.12 per response.

## Filter the results

`first_seen_at` is when PredictLeads first detected the technology at the company, the start of the detection. `last_seen_at` is when it was last confirmed there.

| To return | Parameter | Value |
| --- | --- | --- |
| Detections that began after a date | `first_seen_at_from` | ISO 8601 date, such as `2026-01-01` |
| Detections that began before a date | `first_seen_at_until` | ISO 8601 date |
| Detections still confirmed after a date | `last_seen_at_from` | ISO 8601 date |
| Detections last confirmed before a date | `last_seen_at_until` | ISO 8601 date |
| Companies in a country or US state (discover only) | `company_location` | A country name, or a state name or abbreviation, URL-encoded |
| Companies by headcount (discover only) | `company_sizes` | Comma-separated from `1`, `2-10`, `11-50`, `51-200`, `201-500`, `501-1000`, `1001-5000`, `5001-10000`, `10001+` |
| Companies by industry (discover only) | `company_naics_codes` | Comma-separated NAICS codes |

## Boundaries

- One domain per company request and one technology per discover request. There is no batch call.
- `seen_on_subpages`, `seen_on_job_openings`, `seen_on_dns_records` and `seen_on_reviews` list at most five sources each, newest first. `source_count` gives the total.
- `meta.count` appears only when `page` is sent, and on the discover route it is an estimate.
- An unpaid 402 charges nothing, so it is safe to stop there.
- A card pays a single call only at $0.50 or more. For smaller calls by card, buy Credits (from $0.50) and draw each call from the balance; [the buyer skill](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/SKILL.md) covers buying them.

## Errors

| Response | Meaning | Action |
| --- | --- | --- |
| `402` with a `payment` block | The price quote | Pay and retry the same request, or stop |
| `404` | No record for that company or technology | Check the domain, or look the technology up first |
| `422` | A parameter failed validation | Fix the value, such as a `company_sizes` entry outside the list |
| `429` | Too many requests | Wait the `Retry-After` seconds, then retry |
| `401 bearer_required` | A Credits purchase without an agent credential | Register at [auth.md](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/auth.md), or pay per call |
| `usage_exhausted` | The Credits balance is used up | Top up with `POST https://agents.predictleads.com/zcj/7qwk7p6m9p1w/extend` |

## Frequently asked questions

### Does the PredictLeads technographics API need an API key?

No. Each call is paid on its own through the 402 quote over x402 or MPP, with no account. An agent credential is needed only to buy prepaid Credits.

### How much does it cost to find companies using Salesforce?

The discover route bills $0.04 per record returned, so a page of 30 records, for example, costs $1.20. Set `limit` to the number you need, and add `company_location`, `company_sizes` or `company_naics_codes` to keep each record relevant.

### What do first_seen_at and last_seen_at mean on a technology detection?

`first_seen_at` is when the detection began, the first time the technology was seen at the company. `last_seen_at` is the most recent time it was confirmed. Filter on `last_seen_at_from` to keep only detections confirmed recently.

### Can I see how a technology was detected?

Each detection's `relationships` point to the subpages, job openings, DNS records, reviews or connection where it was seen, and `behind_firewall` is `false` when the technology was found in a website JS or HTML tag. The Extended Technology Detections Dataset, at $0.04 per response, adds the clues behind a detection.

### How much data does the technology detection API cover?

The dataset holds about 2 billion technology adoptions detected since 2018, at about 99 million companies, and PredictLeads tracks some 240,000 technologies.

## Keep reading

- [Buyer skill](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/SKILL.md): the full purchase flow
- [How to pay](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/payment.md): rails, Credits and top-ups
- [Technology Detections API reference](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/services/technology-detections/openapi.json)
- [Technologies API reference](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/services/technologies/openapi.json)
- [Error reference](https://agents.predictleads.com/zcj/7qwk7p6m9p1w/errors.md)

---

Updated 2026-10-28. All PredictLeads guides: https://agents.predictleads.com/guides.md. Storefront: https://agents.predictleads.com/zcj/7qwk7p6m9p1w/llms.txt.
