# Content Humanizer (`akash9078/ai-content-humanizer`) Actor

Transform AI-generated text into natural, human-like content with ease. Perfect for creators, marketers, and businesses seeking authentic, engaging, and SEO-friendly content.

- **URL**: https://apify.com/akash9078/ai-content-humanizer.md
- **Developed by:** [Akash Kumar Naik](https://apify.com/akash9078) (community)
- **Categories:** AI, SEO tools, Other
- **Stats:** 152 total users, 5 monthly users, 94.4% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.00005 / actor start

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/actors/running/actors-in-store.md#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

## AI Content Humanizer — Make AI Text Sound Human (Mistral + Nvidia NIM + blader/humanizer)

Transform robotic AI-generated content into natural, engaging human-like text. Built for the 2026 reality: **Mistral free-tier limits + reliable Nvidia NIM fallback + the blader/humanizer 35-pattern method**.

### What it does

**AI Content Humanizer** converts machine-generated text into natural, human-sounding content via a 2-layer resilient pipeline:

1. **Primary: Nvidia NIM** — `openai/gpt-oss-20b` (default, free endpoint Available), `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning` (fallback) via `https://integrate.api.nvidia.com/v1` (OpenAI-compatible, `NVIDIA_API_KEY`)
2. **Backup: Mistral** — `mistral-small-latest`, `open-mistral-7b`, `mistral-tiny`, `open-mixtral-8x7b`, `mistral-medium-latest`, `mistral-large-latest`

Nvidia NIM is primary because Mistral's free tier is heavily rate-limited (429s). If the Nvidia chain fails, the actor falls back to Mistral (with retry + backoff); an explicit Mistral `model` reverses the order. You can also select a Mistral model directly.

> Verified 2026-09-04: NIM lists 81 models, but only `openai/gpt-oss-20b` (free endpoint Available) and `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning` are entitled for a standard key — others (llama-nemotron, kimi, palmyra, mistral-large-2, ...) return 404 "Not found for account". `openai/gpt-oss-120b` went end-of-life 2026-09-03 (free endpoint Deprecated, API returns 410 Gone) and was removed.

### Why

- **No more 403s**: free-tier safe default `mistral-small-latest` + automatic fallback chain
- **Bypass AI detectors** via the blader/humanizer method: 35 patterns from Wikipedia's "Signs of AI writing" (inflated claims, sales language, stock AI words, em-dash abuse, chatbot artifacts, filler) with a two-pass draft-and-check rewrite
- **Match your voice** via optional `voiceSample` — provide 2-3 paragraphs of your writing and the rewrite follows its rhythm and quirks
- **Preserve meaning** 100% — same facts, human voice, never invents names/numbers/dates/citations
- **SEO / AIO / GEO ready** — natural flow ranks better in search and AI answers

### Input

```json
{
  "content": "Machine learning algorithms utilize statistical methods...",
  "model": "openai/gpt-oss-20b",
  "nvidiaModel": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning"
}
```

| Field | Required | Description |
|-------|----------|-------------|
| `content` | yes | AI text to humanize (also accepts `contents[0]` or `text` for legacy) |
| `model` | no | Primary model. Default `openai/gpt-oss-20b` (Nvidia NIM). Use a `mistral-*` id to lead with Mistral instead |
| `nvidiaModel` | no | Override Nvidia NIM model (`openai/gpt-oss-20b` or `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning`) |
| `voiceSample` | no | 2-3 paragraphs of your own writing for voice matching (max 4000 chars, takes priority over style rules) |

All models available:

- Nvidia NIM: `openai/gpt-oss-20b` *(default)*, `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning` *(fallback)*
- Mistral (backup): `mistral-small-latest`, `open-mistral-7b`, `mistral-tiny`, `open-mixtral-8x7b`, `mistral-medium-latest`, `mistral-large-latest`

### Output

Pushed to dataset:

```json
{
  "humanized": "You know how ML algorithms are like that super observant friend...",
  "modelUsed": "mistral-small-latest",
  "provider": "mistral",
  "method": "blader-humanizer-2.11.2",
  "duration": 2.8,
  "originalLength": 191,
  "humanizedLength": 761
}
```

`provider` is `mistral` or `nvidia`. `modelUsed` is the actual model that succeeded (may differ from input if fallback occurred). `method` tracks the humanizer skill version embedded in the system prompt.

### How it works

1. **Input** → truncate to 12k chars if needed, prepend `voiceSample` (max 4k chars) when provided
2. **Humanize** with the blader/humanizer system prompt (35 AI-writing patterns, two-pass draft-and-check, no invented facts, em-dash ban)
3. **Try Nvidia NIM chain first** (`openai/gpt-oss-20b` → `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning`, retry with backoff on 429/5xx). On failure, fall back to Mistral chain (preferred → env `MISTRAL_MODEL` → free-tier chain, same retry policy)
4. **Charge** `PAY_PER_EVENT api-call $0.005` only after success
5. **Push** to dataset

Explicit Mistral `model` reverses the order (Mistral first, Nvidia backup).

### Environment Variables

| Var | Required | Description |
|-----|----------|-------------|
| `MISTRAL_API_KEY` | At least one of Mistral/Nvidia | `@MISTRAL_API_KEY` secret |
| `NVIDIA_API_KEY` | At least one | `@NVIDIA_API_KEY` secret (`nvapi-...`) |
| `NVIDIA_BASE_URL` | no | Default `https://integrate.api.nvidia.com/v1` |
| `MISTRAL_MODEL` | no | Override default Mistral model |
| `NVIDIA_MODEL` | no | Override default Nvidia model |

> **Free-tier tip:** `mistral-large-latest` requires paid plan → `403 tier_not_allowed`. Keep default `mistral-small-latest` or enable Nvidia fallback.

### Local dev

```bash
apify secrets add MISTRAL_API_KEY <key>
apify secrets add NVIDIA_API_KEY <nvapi-key>
apify run --purge
## or: MISTRAL_API_KEY=xxx NVIDIA_API_KEY=nvapi-... node src/main.js
```

Tested: `mistral-small-latest 98→750 (3s)`, `mistral-large → fallback to small 191→761 (2.8s)`, `openai/gpt-oss-120b 211→334 (2.2s)`, large 2471→3378 (8s).

### Technical specs

- **Engine**: Node 20, `apify@3.4.4`, `@mistralai/mistralai@2.1.2`, native `fetch` for NIM
- **Prompts**: blader/humanizer v2.11.2 method (35 AI-writing patterns, two-pass rewrite, voice matching)
- **Temperature**: 0.7, top\_p 0.9, max\_tokens 8192
- **Memory**: 256 MB
- **Pricing**: $0.005 / successful humanization

### Credits

- Humanization method: [blader/humanizer](https://github.com/blader/humanizer) v2.11.2 (MIT) — installed in this repo under `.agents/skills/humanizer` via `npx skills add blader/humanizer`. The actor embeds a condensed version of its 35 patterns in the system prompt (`src/main.js`).
- Pattern source: Wikipedia's ["Signs of AI writing"](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing), maintained by WikiProject AI Cleanup.

### Data security

- No retention after processing, GDPR compliant

***

**Keywords**: AI humanizer, humanize AI text, Mistral, Nvidia NIM, gpt-oss-20b, AI to human text, content humanization

# Actor input Schema

## `content` (type: `string`):

The AI-generated or robotic text content that needs to be humanized

## `model` (type: `string`):

Primary model. Nvidia NIM (requires NVIDIA\_API\_KEY, default): openai/gpt-oss-20b, nvidia/nemotron-3-nano-omni-30b-a3b-reasoning. Mistral backup: mistral-small-latest (free tier), open-mistral-7b, mistral-tiny, open-mixtral-8x7b, mistral-medium-latest, mistral-large-latest (paid, auto-falls back)

## `nvidiaModel` (type: `string`):

Override the Nvidia NIM model. Verified working for this key: openai/gpt-oss-20b, nvidia/nemotron-3-nano-omni-30b-a3b-reasoning. Requires NVIDIA\_API\_KEY secret. Note: most other catalog models (incl. retired gpt-oss-120b) return 404/410 for this key.

## `voiceSample` (type: `string`):

2-3 paragraphs of your own writing. The model matches its rhythm, word choice, punctuation, and quirks (blader/humanizer voice matching). The sample takes priority over default style rules.

## Actor input object example

```json
{
  "content": "Machine learning algorithms utilize statistical methods to analyze datasets and identify patterns. These computational systems process information through neural networks that simulate human cognitive functions.",
  "model": "openai/gpt-oss-20b"
}
```

# Actor output Schema

## `humanizedContent` (type: `string`):

The transformed natural, human-like text (dataset field: humanized)

# 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 = {
    "content": "Machine learning algorithms utilize statistical methods to analyze datasets and identify patterns. These computational systems process information through neural networks that simulate human cognitive functions.",
    "model": "openai/gpt-oss-20b"
};

// Run the Actor and wait for it to finish
const run = await client.actor("akash9078/ai-content-humanizer").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 = {
    "content": "Machine learning algorithms utilize statistical methods to analyze datasets and identify patterns. These computational systems process information through neural networks that simulate human cognitive functions.",
    "model": "openai/gpt-oss-20b",
}

# Run the Actor and wait for it to finish
run = client.actor("akash9078/ai-content-humanizer").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 '{
  "content": "Machine learning algorithms utilize statistical methods to analyze datasets and identify patterns. These computational systems process information through neural networks that simulate human cognitive functions.",
  "model": "openai/gpt-oss-20b"
}' |
apify call akash9078/ai-content-humanizer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,akash9078/ai-content-humanizer"
        }
    }
}

```

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/pHsn4UfYFDlpuzSQN/builds/RtJEUc2b01GVumpbU/openapi.json
