# Intigriti Scraper (`rl1987/intigriti-scraper`) Actor

Scrapes publicly visible Intigriti data: the public bug bounty/VDP program directory, the platform researcher leaderboard, and public researcher profiles.

- **URL**: https://apify.com/rl1987/intigriti-scraper.md
- **Developed by:** [R.L.](https://apify.com/rl1987) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 program directory rows

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**Intigriti Scraper** extracts publicly visible data from [Intigriti](https://www.intigriti.com),
the European bug bounty / vulnerability disclosure platform, without logging in. It supports
three modes: the **public program directory** (all open bug bounty and VDP programs, with
industry, program type, and bounty range), the **platform researcher leaderboard** (top ranked
ethical hackers, all-time or last-90-days), and **public researcher profiles** (reputation, rank,
submission stats, skills, achievements, and program contributions). Run it on the Apify platform
for scheduling, API access, webhooks, and dataset export.

Only anonymous, publicly-accessible Intigriti data is scraped — no login, no session cookies, no
authenticated Intigriti "researcher API" or "company API" token is used or required, and no
private/invite-only program data or non-public submission content is accessed.

### Why use Intigriti Scraper?

- **Bug bounty market research** — track how many programs Intigriti hosts, in which industries,
  and at what bounty ranges, over time.
- **Competitive/vendor security posture** — see whether a specific company runs a public VDP or
  bug bounty program on Intigriti, and what its scope/type looks like.
- **Researcher community analysis** — see who the top-ranked ethical hackers are and how active
  they are, for recruiting, community-building, or research purposes.
- **Lead lists** — feed structured program/company data into a sales or research pipeline.

### How to use Intigriti Scraper

1. Click **Try for free** (or **Run**) on this Actor's page.
2. Pick a **Mode**: `programs`, `leaderboard`, or `researchers`.
3. For `programs`, optionally set a **Search query**, **Industry**, or **Program type** filter.
4. For `leaderboard`/`researchers`, optionally set **Timeframe** (`alltime`/`ninetydays`) and
   **Severity**. For `researchers`, optionally supply specific **Researcher usernames** — if left
   empty, the top researchers from the public leaderboard are used automatically, and you can
   narrow that list with **Researcher handle search** (a partial, case-insensitive match).
5. Set **Max items** (0 = unlimited, where applicable).
6. Click **Start** and watch results land in the dataset in real time.

### Input

| Field | Type | Applies to | Description |
|---|---|---|---|
| `mode` | string | all | `programs`, `leaderboard`, or `researchers`. |
| `maxItems` | integer | all | Max items to scrape (0 = unlimited). Default `50`. |
| `searchQuery` | string | programs | Free-text search against the program directory. |
| `industry` | string | programs | Filter by industry name (e.g. `Software`). |
| `programType` | string | programs | `Bug bounty program` or `Responsible disclosure`. |
| `programsIncludeScope` | boolean | programs | Fetch each program's target-asset scope (1 extra request/program, shared with `programsIncludeBountyTable`/`programsIncludeProgramStats`). Default `false`. |
| `programsIncludeBountyTable` | boolean | programs | Fetch each program's per-severity bounty tier table (shares the request above). Default `false`. |
| `programsIncludeProgramStats` | boolean | programs | Add submission/payout counters, flags, and a public recent-activity feed (shares the request above). Default `false`. |
| `programsIncludeLeaderboard` | boolean | programs | Fetch each program's public per-program leaderboard (1 extra request/program, shared with `programsIncludeResponseTimes`). Default `false`. |
| `programsIncludeResponseTimes` | boolean | programs | Fetch each program's public 90-day average response-time stats (shares the request above). Default `false`. |
| `startPage` | integer | programs | 0-indexed directory page to start from. Default `0`. |
| `timeframe` | string | leaderboard, researchers | `alltime` or `ninetydays`. Default `alltime`. |
| `severity` | integer | leaderboard, researchers | Which public leaderboard board to fetch: `1` = all severities, `2` = high-to-exceptional severity only. Default `1`. |
| `usernames` | array | researchers | Specific handles to scrape. Empty = use the public leaderboard. |
| `researchersSearchQuery` | string | researchers | Case-insensitive partial-handle match against the public leaderboard (only used when `usernames` is empty). |
| `proxyConfiguration` | object | all | Optional proxy config. No proxy used by default (see Tips). |

See the **Input** tab for the full schema with defaults.

### Output

Each dataset item is one program, leaderboard entry, or researcher profile, depending on `mode`.

Program example:

```json
{
  "itemType": "program",
  "programId": "d3bee5a5-9107-4e71-8d94-ab5098f2005c",
  "programName": "Dutch Lottery VDP",
  "companyHandle": "nederlandseloterij",
  "companyName": "Nederlandse Loterij",
  "industryName": "Media and Entertainment",
  "programType": "Responsible disclosure",
  "minBountyValue": 0,
  "maxBountyValue": 0,
  "bountyCurrency": "EUR",
  "programUrl": "https://app.intigriti.com/programs/nederlandseloterij/dutchlotteryvdp/detail"
}
```

Program example with `programsIncludeScope` + `programsIncludeBountyTable` enabled (fields
truncated for brevity):

```json
{
  "itemType": "program",
  "programName": "NVIDIA Public Bug Bounty",
  "companyHandle": "nvidia",
  "companyName": "NVIDIA",
  "scope": [
    {
      "assetIdentifier": "NVCC",
      "assetType": "other",
      "tier": 3,
      "inScope": true,
      "description": "NVCC is the CUDA Compiler Driver..."
    }
  ],
  "bountyTiers": {
    "4": {
      "currency": "USD",
      "low": { "min": 300, "max": 300 },
      "medium": { "min": 2000, "max": 2000 },
      "high": { "min": 4000, "max": 4000 },
      "critical": { "min": 15000, "max": 15000 },
      "exceptional": { "min": 15000, "max": 15000 }
    }
  }
}
```

`scope` is empty (`[]`) and `bountyTiers` is empty (`{}`) when the program's public detail
payload couldn't be fetched (see Tips below) -- the row is never dropped or the run crashed.

Program example with `programsIncludeProgramStats` + `programsIncludeLeaderboard` +
`programsIncludeResponseTimes` enabled (fields truncated for brevity):

```json
{
  "itemType": "program",
  "programName": "NVIDIA Public Bug Bounty",
  "programStats": {
    "submissionCount": 0,
    "acceptedSubmissionCount": 0,
    "totalPayout": null,
    "averagePayout": null,
    "awardRep": true,
    "allowCollaboration": true,
    "skipTriage": false,
    "hasUpdates": false,
    "statusId": 3,
    "confidentialityLevelId": 4,
    "recentActivity": [
      { "timestamp": 1786866308, "activityTypeId": 9, "researcherHandle": "0xlazyaudit", "researcherIdentityChecked": false, "companyName": null }
    ],
    "recentContributors": [
      { "handle": "ngosytuan", "identityChecked": true }
    ]
  },
  "topResearchers": [
    { "rank": 1, "handle": "predato97", "reputation": null, "streak": null, "identityChecked": true }
  ],
  "responseTimes90d": {
    "firstRespondedSeconds": 1017067,
    "handledByTriageSeconds": 1480674,
    "handledByCompanySeconds": 3520787
  }
}
```

Leaderboard example:

```json
{
  "itemType": "leaderboard-entry",
  "rank": 1,
  "handle": "vampire01",
  "profileUrl": "https://app.intigriti.com/profile/vampire01",
  "reputation": 18692,
  "streak": 5,
  "identityChecked": true
}
```

Researcher profile example:

```json
{
  "itemType": "researcher-profile",
  "handle": "predato97",
  "userId": "c75a78e5-6b9e-4593-8463-6311c9a95342",
  "profileUrl": "https://app.intigriti.com/profile/predato97",
  "reputation": 150,
  "rank": 1220,
  "streak": 4,
  "totalSubmissions": 13,
  "acceptedSubmissions": 10,
  "rejectedSubmissions": 2,
  "validSubmissionRatio": 100,
  "website": "hackerone.com/predator_97",
  "twitter": "predator_97x",
  "recentActivity": [
    { "timestamp": 1785956622, "activityTypeId": 2, "newStatusId": 3, "programName": "NVIDIA Public Bug Bounty", "companyName": "Nvidia" }
  ],
  "lastContributionPrograms": [
    { "programName": "NVIDIA Public Bug Bounty", "programUrl": "https://app.intigriti.com/programs/nvidia/nvidiapublicbugbounty/detail" }
  ],
  "achievements": [
    { "id": "ten_valid_submission", "goal": 10, "progress": 12, "isUnlocked": true, "unlockedAt": 1785441062 }
  ],
  "highlightedAchievements": ["program_top_one", "program_top_ten", "high_severity"],
  "externalAccounts": [
    { "platform": "hackerone", "handle": "predator_97", "verified": true, "allTimeRank": 1179, "allTimeReputation": 2310 }
  ],
  "certifications": [],
  "skills": ["api", "cloud_hacking", "mobile_hacking", "web_hacking", "supply_chain", "source_code_review"],
  "industries": ["software", "retail", "financial_services_and_insurance"]
}
```

`researchers` mode fetches this from the same public JSON APIs the real profile page itself
calls (not by scraping HTML) -- see `intigriti_api_notes.md` for the full endpoint writeup.
`achievements` is the **complete** achievement catalog (not just the "highlighted" ones), and
`recentActivity` is a full per-program submission/status-change timeline.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the
**Storage → Dataset** tab or via the API.

### Data table

| Field | Modes | Description |
|---|---|---|
| `itemType` | all | `program`, `leaderboard-entry`, or `researcher-profile`. |
| `programName`, `companyName`, `industryName`, `programType` | programs | Program naming and taxonomy. |
| `minBountyValue`, `maxBountyValue`, `bountyCurrency` | programs | Advertised bounty range. |
| `programUrl` | programs, researchers | Link to the program's public detail page. |
| `scope` | programs | Target assets (`assetIdentifier`, `assetType`, `tier`, `inScope`, `description`). Only when `programsIncludeScope` is enabled. |
| `bountyTiers` | programs | Per-tier payout ranges by severity (`low`/`medium`/`high`/`critical`/`exceptional`) plus `currency`. Only when `programsIncludeBountyTable` is enabled. |
| `programStats` | programs | Submission/payout counters, flags, recent public activity feed, recent contributors. Only when `programsIncludeProgramStats` is enabled. |
| `topResearchers` | programs | Top researchers ranked on this specific program. Only when `programsIncludeLeaderboard` is enabled. |
| `responseTimes90d` | programs | 90-day average first-response/triage/decision times, in seconds. Only when `programsIncludeResponseTimes` is enabled. |
| `rank`, `handle`, `reputation` | leaderboard, researchers | Ranking and points. |
| `totalSubmissions`, `acceptedSubmissions`, `rejectedSubmissions`, `validSubmissionRatio` | researchers | Exact submission track record. |
| `recentActivity` | researchers | Full per-program submission/status-change timeline with timestamps. |
| `lastContributionPrograms`, `topContributionPrograms` | researchers | Programs the researcher has contributed accepted findings to. |
| `achievements`, `highlightedAchievements` | researchers | Complete achievement catalog (`id`, `goal`, `progress`, `isUnlocked`, `unlockedAt`) plus the highlighted subset. |
| `externalAccounts` | researchers | Linked external-platform (HackerOne/Bugcrowd) rank & reputation, where verified. |
| `certifications`, `skills`, `industries` | researchers | Certifications and self-selected skill/industry interest tags. |

### Pricing

This Actor uses Apify's **Pay-per-event** pricing. You are charged per scraped row, not per
platform compute unit:

| Event | Price | Mode |
|---|---|---|
| Program directory row | $0.0015 | `programs` |
| Program scope/bounty/stats detail | $0.0025 | `programs` (only when `programsIncludeScope`, `programsIncludeBountyTable`, and/or `programsIncludeProgramStats` are enabled; charged once per program, not per flag) |
| Program leaderboard/response-time detail | $0.002 | `programs` (only when `programsIncludeLeaderboard` and/or `programsIncludeResponseTimes` are enabled; charged once per program, not per flag) |
| Leaderboard entry | $0.0007 | `leaderboard` |
| Researcher profile | $0.003 | `researchers` (full activity timeline, complete achievement catalog, linked external-platform stats included at no extra charge) |

Since these pages are lightweight JSON/HTML (no browser rendering needed), a typical run of a
few hundred items usually finishes in well under a minute of compute.

### Tips

- The public platform leaderboard API caps results at 100 rows per (timeframe, severity)
  combination — `leaderboard` and the auto-populated part of `researchers` mode are capped
  there, not by `maxItems`.
- Combine `searchQuery`, `industry`, and `programType` to narrow the program directory before
  paginating through all pages. `searchQuery` calls the same public Algolia search index the
  site's own search box uses (confirmed live: an empty query returns all 180 programs, while
  `searchQuery: "bank"` narrows that to 18 -- Delen Private Bank, Monzo Bank, TrueLayer,
  Revolut, Belfius, and more).
- `researchers` mode is fastest when you already know the handles you want (`usernames`) — it
  then skips the leaderboard lookup entirely. To find a researcher by partial name instead,
  leave `usernames` empty and set `researchersSearchQuery` — it filters the public leaderboard's
  up-to-100 rows by substring match on handle, same as that page's own filter box.
- `programsIncludeScope`/`programsIncludeBountyTable`/`programsIncludeProgramStats` fetch each
  program's public detail page
  (`app.intigriti.com/api/core/public/programs/<companyHandle>/<handle>`) — this can occasionally
  return no data for a given program (bot-detection on that endpoint blocks a handful of
  programs consistently; not transient), in which case the row still ships with `scope: []` /
  `bountyTiers: {}` / `programStats: null` and a warning is logged, rather than failing the run.
  See `intigriti_api_notes.md` in the repo for endpoint details.

### Cyber recon toolkit

Part of the **Cyber recon toolkit** — OSINT, attack-surface recon, and vulnerability-intel data collection for security research:

- [Bugcrowd Scraper](https://apify.com/rl1987/bugcrowd-scraper) — Scrapes public Bugcrowd data: disclosed submissions, program directory, leaderboard.
- [HackerOne Scraper](https://apify.com/rl1987/hackerone-scraper) — Scrapes public HackerOne data: Hacktivity disclosed reports, program directory, researcher leaderboard.
- [CVE Scraper](https://apify.com/rl1987/cve-scraper) — CVE.org vulnerability info scraper.
- [TLSX - TLS Data Gathering and Analysis](https://apify.com/rl1987/pd-tlsx) — Fast, configurable TLS grabber for TLS-based data collection and analysis.
- [BGP.HE.NET Recon Scraper](https://apify.com/rl1987/bgphenet-scraper) — Scrapes ASN, prefix, IP, and DNS recon data from bgp.he.net.
- [gau - Get All URLs](https://apify.com/rl1987/gau-wrapper) — Fetch known URLs from Wayback Machine, Common Crawl, AlienVault OTX, and URLScan.
- [Git Email Extractor](https://apify.com/rl1987/git-email-extractor) — Shallow-clones git repos and extracts contributor emails from commit history.
- [Wappalyzer Technology Lookup](https://apify.com/rl1987/wappalyzer-tech-lookup) — Detect the technology stack behind any website using Wappalyzer.
- [Meta Tags Scraper](https://apify.com/rl1987/meta-tags-scraper) — Web page metadata scraper (meta tags, Open Graph, Twitter Card).
- [Universal Contact Extractor](https://apify.com/rl1987/universal-contact-extractor) — Extract phone numbers, emails and social media URLs from web pages.
- [Web Text Extractor](https://apify.com/rl1987/web-text-extractor) — Extract clean text or Markdown content from web pages.

### Did you find this useful?

⭐ Rate this actor on Apify! Your feedback helps other users find it and helps us keep improving it.

### FAQ & disclaimers

This Actor scrapes only publicly accessible Intigriti data — the public program directory
(`intigriti.com/researchers/bug-bounty-programs`), the public platform leaderboard, public
per-program leaderboards/response-time stats, and public researcher profile data (all served
by unauthenticated JSON endpoints that intigriti.com's own frontend itself calls). It does not
log in, does not use or require an Intigriti API token, and does not access private/invite-only
program details or non-public vulnerability report content. Intigriti does not currently
publish a public disclosed-report ("Hacktivity"-style) feed, so that data is not available to
scrape and is not included here — re-verified with a full real-browser network capture, see
`intigriti_api_notes.md`. Use this Actor in accordance with Intigriti's Terms of Service.
Website/API structures can change — if the Actor stops returning data, please open an issue on
the Actor's Issues tab. Need a custom variant (different fields, sites, or pipelines)? Reach out
via Apify's custom development services.

# Actor input Schema

## `mode` (type: `string`):

What public Intigriti data to scrape.

## `maxItems` (type: `integer`):

Maximum number of items to scrape. Set to 0 for unlimited (programs mode walks every page; leaderboard/researchers are capped at 100, the public leaderboard API's own server-side limit, see notes below).

## `searchQuery` (type: `string`):

Free-text keyword search against the public program directory's name/company/description fields (e.g. "bank"), via the same Algolia index the site's own search box uses. Only used in `programs` mode. Combine with `industry`/`programType` to narrow further.

## `industry` (type: `string`):

Filter programs by industry name exactly as shown on the site (e.g. "Software", "Retail", "Financial Services and Insurance"). Only used in `programs` mode.

## `programType` (type: `string`):

Filter by program type.

## `programsIncludeScope` (type: `boolean`):

For each program, fetch its detail page's public scope data (in-scope target assets: domains, apps, etc., each with an asset type and bounty tier) and add it as a `scope` field. Costs 1 extra HTTP request per program (and triggers the `program-scope-detail` charge event once per program where detail was fetched) and adds latency, so it's off by default. Only used in `programs` mode.

## `programsIncludeBountyTable` (type: `boolean`):

For each program, fetch its detail page's public bounty table (payout ranges per tier, broken down by low/medium/high/critical/exceptional severity) and add it as a `bountyTiers` field. Costs 1 extra HTTP request per program, shared with `programsIncludeScope`/`programsIncludeProgramStats` if any are enabled (only one extra request per program either way; triggers the `program-scope-detail` charge event once per program where detail was fetched). Off by default. Only used in `programs` mode.

## `programsIncludeProgramStats` (type: `boolean`):

For each program, add a `programStats` field (submission/accepted counts, total/average payout, award-rep/collaboration/skip-triage flags, and a public recent-activity feed + recent contributor list) parsed from the same public program-detail payload as `programsIncludeScope`/`programsIncludeBountyTable`. Shares the same 1 extra HTTP request per program (only one extra request per program regardless of how many of these three flags are on; triggers the `program-scope-detail` charge event once per program where detail was fetched). Off by default. Only used in `programs` mode.

## `programsIncludeLeaderboard` (type: `boolean`):

For each program, fetch its public per-program leaderboard (top researchers ranked on that specific program) and add it as a `topResearchers` field. Costs 1 extra HTTP request per program, shared with `programsIncludeResponseTimes` if both are enabled (triggers the `program-activity-detail` charge event once per program where at least one of the two succeeded). Off by default. Only used in `programs` mode.

## `programsIncludeResponseTimes` (type: `boolean`):

For each program, fetch its public 90-day average response-time stats (time to first response, time to triage, time to decision, in seconds) and add it as a `responseTimes90d` field. Costs 1 extra HTTP request per program, shared with `programsIncludeLeaderboard` if both are enabled (triggers the `program-activity-detail` charge event once per program where at least one of the two succeeded). Off by default. Only used in `programs` mode.

## `startPage` (type: `integer`):

0-indexed program directory page to start from. Only used in `programs` mode.

## `timeframe` (type: `string`):

Leaderboard ranking window. Only used in `leaderboard`/`researchers` mode.

## `severity` (type: `integer`):

Which of the public platform leaderboard's two ranked boards to fetch (matches the site's own leaderboard-type dropdown): `1` = all severities (default, ranked by total reputation), `2` = high-to-exceptional-severity findings only. Only used in `leaderboard`/`researchers` mode.

## `usernames` (type: `array`):

Specific researcher handles (as in https://app.intigriti.com/profile/<handle>) to fetch public profile data for. If left empty in `researchers` mode, the top researchers from the public platform leaderboard are used instead.

## `researchersSearchQuery` (type: `string`):

Case-insensitive partial-handle search, only used when `usernames` is left empty in `researchers` mode. Fetches the public leaderboard (up to 100 researchers) and keeps only handles containing this text -- the same substring match the leaderboard page's own "Filter text" box does client-side (there is no server-side researcher-name-search API; confirmed via a real browser network capture, see intigriti\_api\_notes.md).

## `proxyConfiguration` (type: `object`):

Optional proxy configuration. Intigriti's public marketing/app pages did not show datacenter-IP blocking during testing, so no proxy is used by default. Enable a proxy group if you start seeing blocks.

## Actor input object example

```json
{
  "mode": "programs",
  "maxItems": 50,
  "programType": "",
  "programsIncludeScope": false,
  "programsIncludeBountyTable": false,
  "programsIncludeProgramStats": false,
  "programsIncludeLeaderboard": false,
  "programsIncludeResponseTimes": false,
  "startPage": 0,
  "timeframe": "alltime",
  "severity": 1,
  "usernames": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `items` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("rl1987/intigriti-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("rl1987/intigriti-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call rl1987/intigriti-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rl1987/intigriti-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YfdCrXgQULwrgrCEG/builds/lE77WeeWpmAtj7kDv/openapi.json
