# Civitai Scraper - AI Models, LoRAs, Images & Creator Leads (`scrapesage/civitai-scraper`) Actor

Scrape Civitai: AI models (Checkpoints, LoRAs, embeddings) with versions, download URLs, trained words, stats & license; community images with full generation prompts/params; and creator leads with socials, Patreon/Ko-fi & lead score. Filter, monitor new releases. No API key, no browser.

- **URL**: https://apify.com/scrapesage/civitai-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** AI, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Civitai Scraper — AI Models, LoRAs, Images, Prompts & Creator Leads

Scrape **[Civitai](https://civitai.com)**, the largest community platform for generative-AI models — **no API key, no browser, no login**. Pull the full **model catalog** (Checkpoints, LoRAs, embeddings, ControlNets, VAEs…) with **versions, download URLs, trained/trigger words, license terms and stats**; **community images** (with generation prompts/parameters when the uploader publishes them); and **creator leads** with socials, Patreon/Ko-fi links and a lead score.

Turn on **monitoring mode** and a scheduled run only surfaces **new models, images or creators** since last time.

### Why this Civitai scraper?

Other Civitai actors charge a start fee and return a thin model list. This one ships the **richest record in the category**, adds a **creator-lead layer no other Civitai actor has**, and runs on a clean, fast, keyless path with **no start fee**.

| Data | Other Civitai scrapers | This actor |
|---|---|---|
| Model name, type, base model, tags | ✅ | ✅ |
| Stats (downloads, favorites, rating, 👍) | partial | ✅ |
| **All versions** with files + **download URLs** | partial | ✅ |
| **Trained / trigger words** | partial | ✅ |
| **License / commercial-use terms** | ❌ | ✅ |
| **Sample images** attached to each model | partial | ✅ |
| Community **images mode** (prompt/CFG/steps/seed when public) | partial | ✅ |
| **Creator leads** (website, Patreon/Ko-fi, socials, lead score) | ❌ | ✅ |
| **Monitoring** — only new releases | ❌ | ✅ |
| No start fee · no API key · no browser | ❌ | ✅ |

### Use cases

- **Model discovery & trend tracking** — find the top/newest Checkpoints and LoRAs for any base model (SD 1.5, SDXL, Pony, Flux…), tag or creator, and watch what's trending.
- **Prompt engineering & datasets** — collect community images with their generation prompts, negative prompts, samplers, CFG, steps and seeds (Civitai now publishes this metadata selectively; add an `apiToken` for more coverage).
- **Creator outreach & lead gen** — turn prolific model authors into leads with their website, Patreon/Ko-fi/Boosty and social links plus a lead score.
- **AI research & curation** — build datasets of models, versions, base models and license terms for analysis or training.
- **Release monitoring** — get only new models/versions/images on a schedule and pipe them to Slack, a sheet or your app.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Civitai Scraper**, pick a **mode** (Models / Images / Creators), and set a search query or filters (type, base model, tag, sort).
3. Click **Start** and watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML or RSS — or pull results via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "mode": "models",
    "searchQuery": "realistic",
    "types": ["Checkpoint", "LORA"],
    "baseModels": ["SDXL 1.0"],
    "sort": "Most Downloaded",
    "period": "Month",
    "maxItems": 100,
    "maxImagesPerModel": 4,
    "emitCreatorLeads": true,
    "enrichCreatorProfiles": true,
    "monitorMode": false,
    "proxyConfiguration": { "useApifyProxy": true }
}
```

- **mode** — `models` (default), `images`, or `creators`.
- **searchQuery** — keyword (model name in Models mode, username in Creators mode).
- **modelIds / startUrls** — fetch specific models by id/URL, or paste model/user URLs.
- **username** — only this creator's models/images.
- **types / baseModels / tag** — model filters (Checkpoint, LORA…; SDXL 1.0, Pony, Flux.1 D…; a tag).
- **sort / period / nsfw** — ordering, time window, and whether to include NSFW.
- **maxItems** — total records (auto-paginates the API, 100/page).
- **maxImagesPerModel** — sample images (with prompts) per model (0 for none).
- **includeAllVersions** — full version history per model.
- **emitCreatorLeads / enrichCreatorProfiles** — also output creator leads, enriched with socials & monetization links.
- **monitorMode / monitorKey** — only new releases on repeat runs.
- **apiToken** — optional Civitai API key (higher limits); not required.
- **proxyConfiguration** — Apify datacenter proxy by default.

### Output

By default you get a clean table of **models**. Switch `mode` for **images** or **creators**, or toggle the dataset views.

A model record (`type: "model"`):

```json
{
    "type": "model",
    "id": 4201,
    "name": "Realistic Vision V6.0 B1",
    "modelType": "Checkpoint",
    "url": "https://civitai.com/models/4201",
    "nsfw": false,
    "tags": ["photorealistic", "realistic", "base model"],
    "creator": { "username": "SG_161222", "profileUrl": "https://civitai.com/user/SG_161222" },
    "allowCommercialUse": ["Image", "RentCivit"],
    "downloadCount": 2245272,
    "favoriteCount": 38210,
    "thumbsUpCount": 41200,
    "rating": 4.9,
    "popularityScore": 96,
    "versionCount": 12,
    "latestBaseModel": "SD 1.5",
    "latestDownloadUrl": "https://civitai.com/api/download/models/245598",
    "trainedWords": [],
    "latestVersion": {
        "id": 245598,
        "name": "V6.0 B1",
        "baseModel": "SD 1.5",
        "publishedAt": "2024-...",
        "files": [{ "name": "realisticVisionV60B1.safetensors", "sizeKB": 2082642, "format": "SafeTensor", "hashSHA256": "..." }],
        "sampleImages": [{ "url": "https://image.civitai.com/...", "prompt": "RAW photo, a portrait...", "sampler": "DPM++ SDE Karras", "cfgScale": 7, "steps": 25, "seed": 12345 }]
    },
    "scrapedAt": "2026-06-17T12:00:00.000Z"
}
```

An image record (`type: "image"`) carries the image `url`, dimensions, author, NSFW level, page URL and — when the uploader publishes generation metadata — `prompt`, `negativePrompt`, `sampler`, `cfgScale`, `steps`, `seed` and `modelUsed`. A creator record (`type: "creator"`) carries `username`, `modelCount`, `website`, `monetizationLinks` (Patreon/Ko-fi/Boosty), `socials`, `bio` and a 0–100 `leadScore`.

### Monitoring — only new releases

Turn on **monitorMode** and the actor remembers every model/image/creator id it has emitted (in a named key-value store keyed by **monitorKey**). On the next run with the same inputs it returns **only records it hasn't seen before** — ideal for tracking a creator, a base model, or a tag as new models drop.

It pairs with **[Apify Schedules](https://docs.apify.com/platform/schedules)**: the schedule starts the run on a cron, monitoring mode dedupes against prior runs — so a daily watch only ever surfaces fresh releases.

### Automate & schedule

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run daily/weekly to capture new models as they're published.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions when a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/civitai-scraper').call({
    mode: 'models',
    types: ['LORA'],
    baseModels: ['Flux.1 D'],
    sort: 'Newest',
    monitorMode: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} models`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new models or creator leads into your CRM/sheet.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a watched creator/base model ships a new model.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find the top new Flux LoRAs on Civitai and their trigger words" and let it run the scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **AI & developer data stack**:

- [hugging-face-scraper](https://apify.com/scrapesage/hugging-face-scraper) — Hugging Face models, datasets, Spaces & author leads
- [github-scraper](https://apify.com/scrapesage/github-scraper) — repos, profiles, commit data & developer leads
- [chrome-web-store-scraper](https://apify.com/scrapesage/chrome-web-store-scraper) — Chrome extensions, stats & developer contacts
- [google-play-scraper](https://apify.com/scrapesage/google-play-scraper) — Android apps, ratings, reviews & developer leads
- [app-store-scraper](https://apify.com/scrapesage/app-store-scraper) — iOS apps, ratings & reviews
- [product-hunt-scraper](https://apify.com/scrapesage/product-hunt-scraper) — product launches, makers & leads
- [steam-scraper](https://apify.com/scrapesage/steam-scraper) — game store prices, reviews & charts
- [youtube-scraper](https://apify.com/scrapesage/youtube-scraper) — channels, videos & creator leads

### Tips

- **Pick a single mode** for a clean, dense table (Models / Images / Creators). Use `emitCreatorLeads` to add creator leads alongside models/images.
- **Cost control**: set `maxImagesPerModel: 0` for lean model records, and use `maxItems` to cap a run.
- **Creator leads**: keep `enrichCreatorProfiles` on to capture Patreon/Ko-fi/Boosty and socials — it's the difference between a username and a contactable, monetizing creator.
- **Trends**: combine `sort: "Most Downloaded"` with `period: "Week"` to see what's hot right now; pair with **monitorMode** + a Schedule to track it.
- **Rate limits**: the actor uses a fresh proxy session per request to glide past Civitai's per-IP throttling; add an `apiToken` for extra headroom on big runs.

### FAQ

**Does it need a Civitai API key?** No. It uses Civitai's public REST API keyless. You can add an optional token for higher limits.

**Can I get download links?** Yes — each model version includes its `downloadUrl` and file details (size, format, hashes). Downloading large model files is up to you.

**Where do creator socials come from?** From each creator's own Civitai profile, where they list their website, Patreon/Ko-fi/Boosty, Twitter/X, Discord, etc. When a creator hasn't added any, the fields are simply absent.

**Can I export to Google Sheets, CSV or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new models?** Turn on `monitorMode` and create a [Schedule](https://docs.apify.com/platform/schedules); each run emits only new models/images/creators, and a [webhook](https://docs.apify.com/platform/integrations/webhooks) can push them onward.

**Is scraping Civitai legal?** This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws and Civitai's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

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

<b>Models</b> = AI models (Checkpoints, LoRAs, embeddings…) with versions, download URLs, trained words, stats & license (the default). <b>Images</b> = community images with full generation prompts & parameters. <b>Creators</b> = creator leads with socials, Patreon/Ko-fi links & lead score.

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

Keyword to search. In <b>Models</b> mode it searches model names; in <b>Creators</b> mode it searches usernames. Leave empty to browse by sort/filters.

## `modelIds` (type: `array`):

Fetch specific models by id or URL, e.g. <code>4201</code> or <code>https://civitai.com/models/4201</code>.

## `startUrls` (type: `array`):

Paste Civitai URLs: model pages (<code>civitai.com/models/\<id></code>) or user pages (<code>civitai.com/user/\<name></code>). Auto-routed by the selected mode.

## `username` (type: `string`):

Only models (or images) from this Civitai creator, e.g. <code>SG\_161222</code>.

## `types` (type: `array`):

Restrict to specific model types.

## `baseModels` (type: `array`):

Filter by base model, e.g. <code>SD 1.5</code>, <code>SDXL 1.0</code>, <code>Pony</code>, <code>Flux.1 D</code>, <code>Illustrious</code>.

## `tag` (type: `string`):

Filter models by a single tag, e.g. <code>anime</code>, <code>photorealistic</code>, <code>character</code>.

## `sort` (type: `string`):

How to order results. Model sorts: Highest Rated / Most Downloaded / Newest / Most Liked / Most Discussed / Most Collected. Image sorts use Most Reactions / Most Comments / Newest.

## `period` (type: `string`):

Window for sort metrics (e.g. Most Downloaded this Week vs All Time).

## `nsfw` (type: `boolean`):

Include NSFW models/images. Default off (SFW only).

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

Maximum models / images / creators to scrape. The API returns up to 100 per page and paginates automatically.

## `maxImagesPerModel` (type: `integer`):

How many sample images (with prompts/params) to attach to each model's latest version. 0 = none (smaller, cheaper records).

## `includeAllVersions` (type: `boolean`):

Attach the full version history (files, downloads, images) for each model, not just the latest version.

## `emitCreatorLeads` (type: `boolean`):

For every model/image scraped, also output one deduplicated creator-lead record (type = "creator") for its author.

## `enrichCreatorProfiles` (type: `boolean`):

Open each creator's Civitai profile to extract their external links — website, Patreon / Ko-fi / Boosty, Twitter/X, Instagram, YouTube, Discord, etc. — plus a 0–100 lead score. Adds one fast page per creator. (On by default in Creators mode.)

## `monitorMode` (type: `boolean`):

Remember every model / image / creator id across runs in a named key-value store and emit ONLY records not seen before — new models, new images, new creators. Perfect for tracking fresh releases. Works with Apify Schedules.

## `monitorKey` (type: `string`):

Names the memory used by monitoring mode. Use a distinct key per saved search so different watches keep separate state.

## `deduplicateResults` (type: `boolean`):

Skip records already emitted in this run (recommended).

## `apiToken` (type: `string`):

Optional Civitai API key for higher rate limits and access to more content. Not required — the actor works keyless.

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

Proxy settings. Civitai's API is clean on Apify datacenter proxy, so the default is datacenter (fast + cheap). A fresh proxy session per request handles the occasional rate-limit.

## Actor input object example

```json
{
  "mode": "models",
  "searchQuery": "realistic",
  "types": [],
  "sort": "Most Downloaded",
  "period": "AllTime",
  "nsfw": false,
  "maxItems": 100,
  "maxImagesPerModel": 4,
  "includeAllVersions": false,
  "emitCreatorLeads": false,
  "enrichCreatorProfiles": true,
  "monitorMode": false,
  "monitorKey": "default",
  "deduplicateResults": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped records in the default dataset. Filter on the `type` field or use the Models / Images / Creators dataset views.

# 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 = {
    "searchQuery": "realistic",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/civitai-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 = {
    "searchQuery": "realistic",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/civitai-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 '{
  "searchQuery": "realistic",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/civitai-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/civitai-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/HjjMpgmgLVXeoaQ5q/builds/4WWdFZfJ5IccuSCmo/openapi.json
