# Note.com Creator Scraper \[$1/1K💰] | Emails | Followers (`ahmed_jasarevic/note-creator-scraper`) Actor

Scrape note.com creators by keyword or hashtag and extract public emails, follower counts, bios, social links and recent posts. Build Japanese creator lead lists for outreach and PR.

- **URL**: https://apify.com/ahmed_jasarevic/note-creator-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 creator scrapeds

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Note.com Creator Scraper

Scrape note.com creators by keyword or hashtag and extract public contact emails, follower counts, bios, social links and recent posts — a Japanese creator lead list from public pages.

### Build Japanese Creator Lead Lists For Outreach And PR

- Find Japanese creators by niche keyword or hashtag and collect public emails
- Recruit freelance writers, illustrators and bloggers for content projects
- Source creators for PR, product seeding and influencer campaigns
- Map a niche community by follower count, posting activity and social links
- Enrich a CRM with note.com profiles, websites and recent post titles

### How It Works

![How the Note.com Creator Scraper turns a Japanese keyword or hashtag into a dataset of creators with public emails, followers and recent posts.](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-note-creator-scraper.webp)

The Actor runs note.com searches for your keywords, hashtags or exact queries, opens the matching articles and scans their public text for email addresses. It then reads each creator's profile for follower counts, bio, website and social links, and optionally checks each email domain.

Each row is one creator with profile stats, a primary email, every email found with its source and status, social profiles, recent matched posts and the keywords that matched. Export as JSON, CSV or Excel, or read it through the Apify API.

### Find note.com Creators By Keyword Or Hashtag

Four discovery modes can be combined:

- `keywords` — search terms such as `AI 副業`, `フリーランス ライター`, `推し活` or `美容 ブログ`; each becomes a web query restricted to `site:note.com`
- `hashtags` — note hashtags with or without `#`, such as `仕事依頼`, `お仕事の依頼`, `フリーランス`, `ライター` or `インフルエンサー`
- `searchQueries` — exact queries for full control, e.g. `site:note.com "AI" "お仕事の依頼"`
- `startUrls` — direct note.com article or profile URLs; profiles are always saved, even when `requireEmail` is on

`maxSearchPagesPerQuery` defaults to 2 (about 10 results per page) and caps at 10. `maxArticles` defaults to 100 and caps at 1,000. `maxCreators` defaults to 200 and caps at 500.

### Extract Public Emails, Followers And Social Links

Email discovery is built for deliverability, not guesswork:

- Emails are extracted only from public article text, profile bios and structured page data — never guessed or pattern-generated
- `requireEmail` (off by default) drops search-derived creators with no email; direct profile URLs are still saved
- `emailDomains` accepts an allowlist such as `gmail.com`, `co.jp` or `company.co.jp`; subdomains match too
- `verifyEmails` (on by default) checks email domains, flags disposable and role addresses, caches results per domain and sends no email
- `emailStatus` is `valid`, `unknown`, `unverified` or `no_mx`; `emailType` is `business`, `webmail` or `disposable`
- `minFollowers` drops creators below a threshold; creators whose follower count cannot be read are also dropped when the threshold is above 0

### Build A Japanese Creator Database With Recent Posts

`includeRecentNotes` (on by default) attaches up to `maxRecentNotes` matched articles per creator (default 5, max 20). Each note carries its title, URL, publish date, whether an email was found in it, and the emails found there. `matchedKeywords` records which of your terms matched the creator's articles or bio.

`onlyNew` skips creators already saved by an earlier run of the Actor; the state is stored in the Actor's storage. `maxRunSeconds` is a soft limit: discovery and enrichment stop at the limit and the rows collected so far are saved.

### Input

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `keywords` | array of strings | No | `[]` | Search terms, e.g. `AI 副業`, `フリーランス ライター`. |
| `hashtags` | array of strings | No | `[]` | note hashtags, with or without `#`. |
| `searchQueries` | array of strings | No | `[]` | Exact queries; combined with keywords when both are set. |
| `startUrls` | array of strings | No | `[]` | note.com article or profile URLs; skips search. |
| `maxSearchPagesPerQuery` | integer | No | `2` | Search pages per query, about 10 results each. 1–10. |
| `maxArticles` | integer | No | `100` | Articles fetched and scanned for emails. 1–1,000. |
| `maxCreators` | integer | No | `200` | Creator rows saved per run. 1–500. |
| `requireEmail` | boolean | No | `false` | Drop search-derived creators without an email. Direct profiles are always saved. |
| `emailDomains` | array of strings | No | `[]` | Allowlist such as `gmail.com` or `co.jp`. Empty = all domains. |
| `minFollowers` | integer | No | `0` | Drop creators below this follower count. |
| `includeRecentNotes` | boolean | No | `true` | Attach matched articles to each creator row. |
| `maxRecentNotes` | integer | No | `5` | Recent posts per creator. 0–20. |
| `verifyEmails` | boolean | No | `true` | Check email domains and flag disposable or role addresses. No email is sent. |
| `onlyNew` | boolean | No | `false` | Skip creators saved by an earlier run (state in Actor storage). |
| `concurrency` | integer | No | `20` | Parallel operations. 1–20. |
| `requestTimeoutSecs` | integer | No | `20` | Timeout per operation. 1–120. |
| `maxRunSeconds` | integer | No | `300` | Soft run limit; saves rows collected so far. 1–1,800. |
| `proxyConfiguration` | object | No | `{"useApifyProxy":false}` | Optional proxy; note.com usually works without one. |

### Output

One row per creator.

| Field | Description |
| --- | --- |
| `creatorId`, `name`, `profileUrl` | note.com creator identity and canonical profile. |
| `bio`, `followers`, `following`, `noteCount`, `magazineCount`, `isOfficial` | Profile stats as published. |
| `email`, `emailStatus`, `emailType` | Primary email and its validation state. |
| `emails` | Every email found: `email`, `domain`, `type`, `role`, `disposable`, `status`, `mxHosts`, `context`, `source`, `sourceUrl`. |
| `socials` | `platform`, `url` and `handle` for each external profile. |
| `website` | Website parsed from the profile or bio. |
| `recentNotes` | `title`, `url`, `publishedAt`, `hasEmail` and `emails` for each matched post. |
| `matchedKeywords` | Keywords or hashtags that matched the creator. |
| `source`, `sourceUrls` | `search` or `direct`, plus up to 20 profile/article URLs. |
| `profileFound`, `scrapedAt` | Whether the profile resolved, and the extraction timestamp. |

### Example Input

```json
{
  "keywords": ["AI 副業", "フリーランス ライター"],
  "hashtags": ["仕事依頼"],
  "maxSearchPagesPerQuery": 2,
  "maxCreators": 100,
  "requireEmail": true,
  "verifyEmails": true,
  "includeRecentNotes": true
}
```

### Example Output

```json
{
  "creatorId": "kinu885",
  "name": "Kinu｜AIイラストと発信づくり",
  "profileUrl": "https://note.com/kinu885",
  "bio": "AIで自分らしい発信をつくる。AIイラスト・ChatGPT・プロンプト制作を中心にnoteを運用中。",
  "followers": 2408,
  "following": 1188,
  "noteCount": 237,
  "magazineCount": 6,
  "isOfficial": false,
  "email": "kinu.aiworks@gmail.com",
  "emailStatus": "valid",
  "emailType": "webmail",
  "emails": [
    {
      "email": "kinu.aiworks@gmail.com",
      "domain": "gmail.com",
      "type": "webmail",
      "role": false,
      "disposable": false,
      "status": "valid",
      "mxHosts": ["gmail-smtp-in.l.google.com"],
      "context": "お仕事のご相談・ご依頼は、メールまたはXのDMより",
      "source": "article",
      "sourceUrl": "https://note.com/kinu885/n/n348c011540c6"
    }
  ],
  "socials": [
    { "platform": "x", "url": "https://x.com/Kinu_aith", "handle": "Kinu_aith" },
    { "platform": "youtube", "url": "https://www.youtube.com/@Kinu_ai", "handle": "@Kinu_ai" },
    { "platform": "instagram", "url": "https://www.instagram.com/kinu.ai/", "handle": "kinu.ai" }
  ],
  "website": null,
  "recentNotes": [
    {
      "title": "お仕事のご依頼について",
      "url": "https://note.com/kinu885/n/n348c011540c6",
      "publishedAt": "2025-08-30T11:38:02.000Z",
      "hasEmail": true,
      "emails": ["kinu.aiworks@gmail.com"]
    }
  ],
  "matchedKeywords": ["AI イラスト"],
  "source": "search",
  "sourceUrls": ["https://note.com/kinu885"],
  "profileFound": true,
  "scrapedAt": "2026-10-25T08:00:00.000Z"
}
```

### Schedule Creator Discovery And Outreach Workflows

- **Weekly niche discovery** — run the same keywords weekly with `onlyNew: true` to collect only new creators.
- **Campaign shortlists** — filter by `minFollowers`, `emailStatus` and `emailType` before exporting to a CRM.
- **PR and partnerships** — send the CSV to Google Sheets, Airtable, HubSpot or a mail tool through the Apify API, webhooks, Zapier or Make.
- **Monitoring** — re-run monthly to catch creators who add a contact email to their profile or a new post.

### Related Actors

- [Note Creator Search Scraper](https://apify.com/scrapingmonkey/note-creator-search-scraper) — note.com creator profiles by keyword without email extraction.
- [Instagram Email Scraper - Creator & Business Contacts](https://apify.com/zaver.api/instagram-email-contact-extractor) — public Instagram emails and phones.
- [Instagram Email Scraper — Creator & Business Emails](https://apify.com/jurassic_jove/instagram-email-scraper) — Instagram creator contact discovery.
- [TikTok Email Scraper — Creator & Influencer Emails](https://apify.com/jurassic_jove/tiktok-email-scraper) — TikTok creator emails and socials.
- [TikTok Search Scraper: Keywords, Hashtags, Creators](https://apify.com/xmolodtsov/tiktok-search-scraper) — creator discovery by keyword or hashtag.

### FAQ

#### Why use this Actor instead of the official note.com API?

note.com does not publish a public API for creator email discovery. This Actor collects publicly visible search, article and profile data and adds pagination, email extraction, domain validation, de-duplication, `onlyNew` state and a stable output schema.

#### What are the alternatives to this Actor?

`scrapingmonkey/note-creator-search-scraper` returns note.com creator profiles by keyword but does not extract or verify emails. Instagram and TikTok email scrapers cover other platforms. This Actor is the one that combines note.com search, article email extraction and domain validation in a single dataset.

#### Are the emails public?

Yes. The Actor only extracts addresses that creators publish in public article text, their bio or structured page data. It does not guess addresses, buy databases or access anything behind a login.

#### Why is `email` null for some creators?

Not every creator publishes a contact address. With `requireEmail: false` (the default) those creators are still saved with `email: null`, which is useful for profile research. Set `requireEmail: true` to keep only creators with an email; direct profile URLs are always saved.

#### What do the email statuses mean?

`valid` means the domain can receive mail and the address passed validation; `unknown` means validation was inconclusive; `unverified` means domain checking was disabled; `no_mx` means the domain cannot receive mail. `verifyEmails` only checks the domain — it never sends a message.

#### Can I scrape a specific creator or article?

Yes. Put note.com profile or article URLs in `startUrls`. Search is skipped and the listed profiles/articles are processed directly.

#### How does `onlyNew` work?

The Actor stores seen creator IDs in its Actor storage. On later runs with `onlyNew: true`, creators already saved are skipped, so a weekly schedule returns only new leads.

#### How much does a run cost?

$0.001 per saved creator and $0.0005 per verified email, plus a $0.00005 start event. The minimum charge per run is $0.10. A 100-creator run with 40 emails costs about $0.12.

### For AI Agents & LLM Apps

Returns note.com creators with public emails, follower stats, socials and recent posts as one row per creator.

Minimal input:

```json
{ "keywords": ["AI 副業"], "maxCreators": 25 }
```

Direct profile lookup:

```json
{ "startUrls": ["https://note.com/kinu885"] }
```

Hashtag search with email filter:

```json
{ "hashtags": ["仕事依頼"], "requireEmail": true, "maxCreators": 50 }
```

Output fields: `creatorId`, `name`, `profileUrl`, `bio`, `followers`, `following`, `noteCount`, `magazineCount`, `isOfficial`, `email`, `emailStatus`, `emailType`, `emails`, `socials`, `website`, `recentNotes`, `matchedKeywords`, `source`, `sourceUrls`, `profileFound`, `scrapedAt`.

Behaviors an agent should know:

- `startUrls` skips search and processes the listed profiles/articles directly.
- Direct profiles are saved even when `requireEmail` is true; the filter applies to search-derived creators.
- `requireEmail: true` drops creators with no email and reduces billed creator rows.
- `minFollowers` above 0 also drops creators whose follower count could not be read.
- `verifyEmails` checks the email domain only and sends no email; it does not guarantee inbox delivery.
- `onlyNew` uses the Actor's storage, so it only skips creators seen by earlier runs of this Actor.
- `maxRunSeconds` is a soft limit: the run stops discovery and saves what it has.
- Billing: $0.001 per saved creator plus $0.0005 per verified email; minimum run charge $0.10.

### Legal & Compliance Disclaimer

This Actor is independent and is not affiliated with, endorsed by, or sponsored by note.com or its operator. It collects only publicly visible note.com pages; it does not log in, bypass a paywall or access private data. Output contains personal data such as names, bios and public email addresses. If you are in Japan or targeting Japanese creators, comply with the Act on the Protection of Personal Information (APPI) and Japan's anti-spam rules; elsewhere, comply with applicable data-protection and anti-spam law (for example GDPR or CAN-SPAM). Do not use the emails for unsolicited bulk outreach that violates those laws, and honor opt-out requests promptly.

### SEO Keywords

note.com scraper, note creator scraper, note.com creator search, japanese creator email list, note influencer list, japanese influencer database, note.com api, note creator emails, japanese email list, creator lead generation japan, note hashtag search, freelance writer list japan, japanese pr outreach, note.com followers export, creator contact finder, japanese content creators, note article scraper, japan influencer marketing

# Actor input Schema

## `keywords` (type: `array`):

Search terms, for example AI 副業, フリーランス ライター, 推し活, 美容 ブログ. Each keyword becomes a web query restricted to site:note.com. Articles are then scanned for public contact emails.

## `hashtags` (type: `array`):

Note hashtags to search as keywords, with or without #. Useful hashtags: 仕事依頼, お仕事の依頼, フリーランス, ライター, ブロガー, インフルエンサー.

## `searchQueries` (type: `array`):

Optional exact queries. Use this if you want full control, for example: site:note.com "AI" "お仕事の依頼". When provided together with keywords, all queries are combined.

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

Process specific note articles or creator profiles without search. Accepts https://note.com/user/n/nKEY, https://note.jp/n/nKEY and https://note.com/user. Direct profiles are always saved even when requireEmail is on.

## `maxSearchPagesPerQuery` (type: `integer`):

How many search result pages to read per query. 1 page = about 10 results.

## `maxArticles` (type: `integer`):

Maximum note articles fetched and scanned for emails. Each article is a small HTTP request, no browser.

## `maxCreators` (type: `integer`):

Maximum creator rows saved to the dataset. One creator-scraped event is charged per saved row. Default is high enough to save most creators found by a normal search.

## `requireEmail` (type: `boolean`):

When on, omit creators where no public contact email was found. Off by default, so every creator with a profile or article is saved; email is null when none was found.

## `emailDomains` (type: `array`):

Optional allowlist, for example gmail.com, co.jp, company.co.jp. Empty means all domains. Subdomains match too.

## `minFollowers` (type: `integer`):

Drop creators below this follower count. Creators whose follower count could not be read are dropped when this is above 0.

## `includeRecentNotes` (type: `boolean`):

Add up to maxRecentNotes matched articles to each creator row.

## `maxRecentNotes` (type: `integer`):

Maximum matched articles attached to each creator.

## `verifyEmails` (type: `boolean`):

Check each email domain for MX records and flag disposable or role addresses. Results are cached per domain. No email is sent.

## `onlyNew` (type: `boolean`):

Skip creators saved by an earlier run of this actor. State is stored in the actor's key-value store.

## `concurrency` (type: `integer`):

Parallel HTTP requests for article and profile pages. Higher is faster but more likely to hit rate limits.

## `requestTimeoutSecs` (type: `integer`):

Timeout for each HTTP request.

## `maxRunSeconds` (type: `integer`):

Stop discovery and enrichment after this many seconds and save the rows collected so far.

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

Optional Apify proxy. Note.com pages usually work without a proxy. Enable it if the search engine starts returning 403 or 429.

## Actor input object example

```json
{
  "keywords": [
    "AI",
    "美容",
    "旅行ブログ"
  ],
  "hashtags": [
    "仕事依頼",
    "AI",
    "ブロガー"
  ],
  "searchQueries": [],
  "startUrls": [
    "https://note.com/hiroyuki20/n/n4b7930c18960"
  ],
  "maxSearchPagesPerQuery": 2,
  "maxArticles": 100,
  "maxCreators": 200,
  "requireEmail": false,
  "emailDomains": [],
  "minFollowers": 0,
  "includeRecentNotes": true,
  "maxRecentNotes": 5,
  "verifyEmails": true,
  "onlyNew": false,
  "concurrency": 20,
  "requestTimeoutSecs": 20,
  "maxRunSeconds": 300,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

One row per note.com creator, with public contact emails, profile stats, socials and matched posts.

## `summary` (type: `string`):

Run status, saved and skipped row counts, requests made and storage links. Read it from the key-value store using key OUTPUT.

# 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 = {
    "keywords": [
        "AI 副業",
        "フリーランス ライター"
    ],
    "hashtags": [
        "仕事依頼"
    ],
    "startUrls": [
        "https://note.com/hiroyuki20/n/n4b7930c18960"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/note-creator-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 = {
    "keywords": [
        "AI 副業",
        "フリーランス ライター",
    ],
    "hashtags": ["仕事依頼"],
    "startUrls": ["https://note.com/hiroyuki20/n/n4b7930c18960"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/note-creator-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 '{
  "keywords": [
    "AI 副業",
    "フリーランス ライター"
  ],
  "hashtags": [
    "仕事依頼"
  ],
  "startUrls": [
    "https://note.com/hiroyuki20/n/n4b7930c18960"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/note-creator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/note-creator-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/G0LUsAnLHDgXqTdNG/builds/th1gluhPFPp61t8bI/openapi.json
