# ConanCenter Scraper (`crawlerbros/conan-center-scraper`) Actor

Scrape ConanCenter - the official package index for the Conan C/C++ package manager. Search or browse packages, fetch exact recipes with license, dependencies and supported binary configurations, or pull curated trending lists.

- **URL**: https://apify.com/crawlerbros/conan-center-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Open source
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## ConanCenter Scraper

Scrape [ConanCenter](https://conan.io/center) — the official public package index for [Conan](https://conan.io), the open-source C and C++ package manager. Search or browse packages by name, fetch exact recipes with full version history, or pull curated trending lists (most popular, recently updated, newly added). Pure HTTP against ConanCenter's own package-index API and its server-rendered recipe pages — no auth, no proxy, no cookies.

### What this actor does

- **Three modes:** `search` (substring name search), `byName` (exact recipe + version lookup), `trending` (curated lists)
- **Filters:** supported OS, supported CPU architecture, supported compiler, license substring, topic substring, exclude deprecated packages
- **Sorting:** name or most-recently-updated
- **Empty fields are omitted** — you only ever see fields with real data

### Output per package

- `name`, `version`, `conanReference` (`name/version`)
- `description`, `homepage`
- `status` — recipe status as reported by ConanCenter (normally `ok`)
- `deprecated` — `true`/`false`, when ConanCenter has flagged this recipe
- `licenses[]` — SPDX identifier(s)
- `topics[]`
- `recipeRevision`, `lastUpdatedDate`
- `supportedOS[]`, `supportedArch[]`, `supportedCompilers[]`, `supportedLinkage[]` (`shared`/`static`), `binaryConfigCount`
- `dependencies[]` — other Conan packages this recipe requires (union across all binary configs)
- `allVersions[]`, `versionCount` — every published version of this recipe (mode=search/byName)
- `conanCenterUrl`, `sourceUrl`
- `recipeSourceUrl` — link to this version's `conanfile.py` in the conan-center-index GitHub repo, when resolvable
- **mode=trending only:** `totalDownloads` (category=popular). Every trending record is enriched with the same full recipe-detail fields listed above (license, topics, binary support, etc.) via an extra per-item fetch — not just the thin name/version the ConanCenter homepage exposes.
- `recordType: "package"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byName` / `trending` |
| `searchQuery` | string | – | Substring match on package name (mode=search) |
| `names` | array | – | Exact names, `name/version`, or `name@version` (mode=byName) |
| `category` | string | `popular` | `popular` / `updated` / `new` (mode=trending) |
| `os` | string | – | Filter to packages supporting this OS |
| `arch` | string | – | Filter to packages supporting this architecture |
| `compiler` | string | – | Filter to packages with a binary config built with this compiler (`gcc`/`clang`/`apple-clang`/`msvc`/`Visual Studio`) |
| `linkage` | string | – | Filter to packages with a binary config built as `shared` or `static` |
| `license` | string | – | Substring match on license identifier |
| `topic` | string | – | Substring match on topic tags |
| `excludeDeprecated` | bool | `false` | Drop packages ConanCenter has marked deprecated |
| `sortBy` | string | `name` | `name` / `lastUpdated` |
| `maxItems` | int | `20` | Hard cap (1–200) — each record needs its own recipe-page fetch |

#### Example: JSON libraries for Linux

```json
{
  "mode": "search",
  "searchQuery": "json",
  "os": "Linux",
  "sortBy": "name",
  "maxItems": 25
}
```

#### Example: exact recipes by name/version

```json
{
  "mode": "byName",
  "names": ["zlib", "openssl/3.0.0", "fmt"]
}
```

### Use cases

- Audit which C/C++ libraries support a target OS/architecture before adopting them
- Track a dependency tree across ConanCenter recipes
- Monitor newly-added or trending packages in the C/C++ ecosystem
- Build a license-compliance report across your project's Conan dependencies

### FAQ

**Does this require a Conan account or API key?** No — ConanCenter's package index and recipe pages are fully public.

**Why does `mode=byName` accept `name/version`?** ConanCenter recipes can have many published versions; without a version you get the latest, and each recipe page lists every version it has ever published (see `allVersions`).

**Are all binary configurations listed individually?** No — `supportedOS`/`supportedArch`/`supportedCompilers` are deduplicated summaries; `binaryConfigCount` tells you how many distinct prebuilt binary configurations ConanCenter has for that version.

**Why is `recipeSourceUrl` missing on some records?** ConanCenter only tracks a version-to-source-folder mapping for a subset of a recipe's published versions (typically the more recent ones). When the resolved version isn't in that mapping, the field is omitted rather than guessing the wrong GitHub folder.

# Actor input Schema

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

What to fetch.

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

Substring matched against package names, e.g. `json` matches `nlohmann_json`, `rapidjson`, `jsoncpp`.

## `names` (type: `array`):

Exact ConanCenter recipe names. Accepts `name`, `name/version`, or `name@version`, e.g. `zlib`, `openssl/3.0.0`.

## `category` (type: `string`):

Curated list to fetch from the ConanCenter homepage.

## `os` (type: `string`):

Only include packages with at least one binary config for this OS.

## `arch` (type: `string`):

Only include packages with at least one binary config for this architecture.

## `compiler` (type: `string`):

Only include packages with at least one binary config built with this compiler.

## `linkage` (type: `string`):

Only include packages with at least one binary config built with this linkage type.

## `license` (type: `string`):

Substring match against the package's SPDX license identifier(s), e.g. `MIT`, `Apache`, `BSD`.

## `topic` (type: `string`):

Substring match against the package's topic/label tags, e.g. `compression`, `networking`.

## `excludeDeprecated` (type: `boolean`):

Drop packages ConanCenter has marked as deprecated.

## `sortBy` (type: `string`):

Order of emitted records (mode=search).

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

Hard cap on emitted records. Each record requires a dedicated recipe-page fetch, so keep this reasonable.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "zlib",
  "names": [],
  "category": "popular",
  "os": "",
  "arch": "",
  "compiler": "",
  "linkage": "",
  "excludeDeprecated": false,
  "sortBy": "name",
  "maxItems": 20
}
```

# Actor output Schema

## `packages` (type: `string`):

Dataset containing all scraped ConanCenter packages.

# 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 = {
    "mode": "search",
    "searchQuery": "zlib",
    "names": [],
    "category": "popular",
    "os": "",
    "arch": "",
    "compiler": "",
    "linkage": "",
    "excludeDeprecated": false,
    "sortBy": "name",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/conan-center-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 = {
    "mode": "search",
    "searchQuery": "zlib",
    "names": [],
    "category": "popular",
    "os": "",
    "arch": "",
    "compiler": "",
    "linkage": "",
    "excludeDeprecated": False,
    "sortBy": "name",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/conan-center-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 '{
  "mode": "search",
  "searchQuery": "zlib",
  "names": [],
  "category": "popular",
  "os": "",
  "arch": "",
  "compiler": "",
  "linkage": "",
  "excludeDeprecated": false,
  "sortBy": "name",
  "maxItems": 20
}' |
apify call crawlerbros/conan-center-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawlerbros/conan-center-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/nMhdjuKSLHYy1a9i8/builds/GOhzLNhwhEbHKb4GZ/openapi.json
