# HumanPages.ai - Hire Real Humans from Automation (`humanpages.ai/humanpages`) Actor

Search for and hire real humans when your automation hits a wall. Find people by skill, location, language, and equipment. Create job offers, post to the job board, track progress, and manage payments — all from your Apify workflow.

- **URL**: https://apify.com/humanpages.ai/humanpages.md
- **Developed by:** [HumanPages.ai](https://apify.com/humanpages.ai) (community)
- **Categories:** Automation, AI, Open source
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Human Pages Actor for Apify

> Hire real humans from your Apify automation workflows. When your scraper or agent hits something it can't automate — CAPTCHA, phone verification, judgment calls, physical tasks — delegate to a real person via Human Pages.

### What it does

This Actor connects your Apify workflows to [Human Pages](https://humanpages.ai), a hiring network where AI agents find and hire real humans. Use it to:

- **Search** for humans by skill, location, language, equipment, and rate
- **View profiles** with contact info, reputation, and work history
- **Create job offers** with USDC pricing and deadlines
- **Post to the job board** for humans to apply
- **Track jobs** and communicate with workers in real-time

### Quick start

#### 1. Search for humans

No API key needed for search:

```json
{
  "action": "search_humans",
  "skill": "photography",
  "location": "New York, New York, USA",
  "availableOnly": true
}
````

#### 2. Register your agent

Get an API key (auto-activated on PRO tier, free during launch):

```json
{
  "action": "register_agent",
  "agentName": "My Apify Agent",
  "agentDescription": "Automation agent that delegates physical tasks to humans",
  "contactEmail": "you@example.com"
}
```

Save the returned `apiKey` (starts with `hp_`) — it cannot be retrieved later.

#### 3. Create a job offer

```json
{
  "action": "create_job_offer",
  "apiKey": "hp_your_key_here",
  "humanId": "uuid-from-search",
  "title": "Take 5 product photos",
  "description": "Photograph these items on a white background, 1200x1200px minimum.",
  "priceUsdc": "15.00",
  "deadlineHours": 24
}
```

#### 4. Check job status

```json
{
  "action": "get_job_status",
  "apiKey": "hp_your_key_here",
  "jobId": "job-uuid"
}
```

### Actions reference

| Action | API Key? | Required fields | Description |
|--------|----------|-----------------|-------------|
| `search_humans` | No | — | Search by skill, location, language, equipment |
| `get_human_profile` | Yes | `humanId` | Full profile with contact info and wallets |
| `create_job_offer` | Yes | `humanId`, `title`, `description`, `priceUsdc` | Send a direct job offer |
| `get_job_status` | Yes | `jobId` | Check if a job is pending, accepted, or completed |
| `get_job_messages` | Yes | `jobId` | Read messages on a job |
| `send_job_message` | Yes | `jobId`, `message` | Send a message to the worker |
| `create_listing` | Yes | `title`, `description`, `priceUsdc` | Post a job to the public board |
| `get_listings` | No | — | Browse open job listings |
| `register_agent` | No | `agentName` | Register and get an API key |

### Use cases

- **CAPTCHA completion**: Your scraper hits a CAPTCHA — post a job, human solves it, scraper resumes
- **Data verification**: Agent extracts data, human verifies accuracy before downstream use
- **Physical tasks**: Need someone to pick up a package, take a photo, or check a location
- **Document review**: Contracts, invoices, or forms that need human judgment
- **Translation**: Find native speakers by language and location for context-aware translation

### Pricing

Human Pages charges per-action via USDC on Base:

- Profile view: $0.05
- Job offer: $0.25
- Listing: $0.50

During launch, registered agents get PRO tier free (15 offers/day, 50 views/day).

### Links

- [Human Pages](https://humanpages.ai)
- [Developer docs](https://humanpages.ai/dev)
- [MCP Server](https://www.npmjs.com/package/humanpages) (for Claude, GPT, and other AI agents)
- [GitHub](https://github.com/human-pages-ai/humanpages)

# Actor input Schema

## `action` (type: `string`):

Which Human Pages action to perform.

## `apiKey` (type: `string`):

Your Human Pages agent API key (starts with hp\_). Get one at humanpages.ai/dev or use the register\_agent action.

## `agentId` (type: `string`):

Your registered agent ID (required for job offers, messages, and profile views).

## `skill` (type: `string`):

Filter by skill (e.g., "photography", "driving", "notary", "translation").

## `location` (type: `string`):

Filter by location (e.g., "San Francisco, California, USA"). Use fully-qualified names for best geocoding.

## `language` (type: `string`):

ISO language code (e.g., "en", "es", "zh").

## `equipment` (type: `string`):

Filter by equipment (e.g., "car", "drone", "camera").

## `maxRate` (type: `integer`):

Maximum hourly rate in USD.

## `availableOnly` (type: `boolean`):

Only return currently available humans.

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

How to sort search results.

## `humanId` (type: `string`):

Human ID or username (for get\_human\_profile, create\_job\_offer).

## `jobId` (type: `string`):

Job ID (for get\_job\_status, get\_job\_messages, send\_job\_message).

## `title` (type: `string`):

Title for the job offer or listing.

## `description` (type: `string`):

Detailed description of what needs to be done.

## `priceUsdc` (type: `string`):

Payment amount in USDC (e.g., "10.00").

## `deadlineHours` (type: `integer`):

How many hours the human has to complete the job.

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

Job category for listings.

## `message` (type: `string`):

Message content (for send\_job\_message).

## `agentName` (type: `string`):

Display name for your agent (for register\_agent).

## `agentDescription` (type: `string`):

What your agent does (for register\_agent).

## `contactEmail` (type: `string`):

Contact email for the agent operator.

## Actor input object example

```json
{
  "action": "search_humans",
  "availableOnly": true,
  "sortBy": "completed_jobs",
  "deadlineHours": 24,
  "category": "GENERAL"
}
```

# Actor output Schema

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

Search results, job details, listing info, or registration response

# 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("humanpages.ai/humanpages").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("humanpages.ai/humanpages").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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 humanpages.ai/humanpages --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=humanpages.ai/humanpages",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "HumanPages.ai - Hire Real Humans from Automation",
        "description": "Search for and hire real humans when your automation hits a wall. Find people by skill, location, language, and equipment. Create job offers, post to the job board, track progress, and manage payments — all from your Apify workflow.",
        "version": "1.0",
        "x-build-id": "XlWCA4uHYobZNL0fN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/humanpages.ai~humanpages/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-humanpages.ai-humanpages",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/humanpages.ai~humanpages/runs": {
            "post": {
                "operationId": "runs-sync-humanpages.ai-humanpages",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/humanpages.ai~humanpages/run-sync": {
            "post": {
                "operationId": "run-sync-humanpages.ai-humanpages",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "action"
                ],
                "properties": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "search_humans",
                            "get_human_profile",
                            "create_job_offer",
                            "get_job_status",
                            "get_job_messages",
                            "send_job_message",
                            "create_listing",
                            "get_listings",
                            "register_agent"
                        ],
                        "type": "string",
                        "description": "Which Human Pages action to perform.",
                        "default": "search_humans"
                    },
                    "apiKey": {
                        "title": "Human Pages API Key",
                        "type": "string",
                        "description": "Your Human Pages agent API key (starts with hp_). Get one at humanpages.ai/dev or use the register_agent action."
                    },
                    "agentId": {
                        "title": "Agent ID",
                        "type": "string",
                        "description": "Your registered agent ID (required for job offers, messages, and profile views)."
                    },
                    "skill": {
                        "title": "Skill",
                        "type": "string",
                        "description": "Filter by skill (e.g., \"photography\", \"driving\", \"notary\", \"translation\")."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Filter by location (e.g., \"San Francisco, California, USA\"). Use fully-qualified names for best geocoding."
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "ISO language code (e.g., \"en\", \"es\", \"zh\")."
                    },
                    "equipment": {
                        "title": "Equipment",
                        "type": "string",
                        "description": "Filter by equipment (e.g., \"car\", \"drone\", \"camera\")."
                    },
                    "maxRate": {
                        "title": "Max Rate (USD/hr)",
                        "type": "integer",
                        "description": "Maximum hourly rate in USD."
                    },
                    "availableOnly": {
                        "title": "Available Only",
                        "type": "boolean",
                        "description": "Only return currently available humans.",
                        "default": true
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "completed_jobs",
                            "rating",
                            "experience",
                            "recent"
                        ],
                        "type": "string",
                        "description": "How to sort search results.",
                        "default": "completed_jobs"
                    },
                    "humanId": {
                        "title": "Human ID",
                        "type": "string",
                        "description": "Human ID or username (for get_human_profile, create_job_offer)."
                    },
                    "jobId": {
                        "title": "Job ID",
                        "type": "string",
                        "description": "Job ID (for get_job_status, get_job_messages, send_job_message)."
                    },
                    "title": {
                        "title": "Job Title",
                        "type": "string",
                        "description": "Title for the job offer or listing."
                    },
                    "description": {
                        "title": "Job Description",
                        "type": "string",
                        "description": "Detailed description of what needs to be done."
                    },
                    "priceUsdc": {
                        "title": "Price (USDC)",
                        "type": "string",
                        "description": "Payment amount in USDC (e.g., \"10.00\")."
                    },
                    "deadlineHours": {
                        "title": "Deadline (hours)",
                        "type": "integer",
                        "description": "How many hours the human has to complete the job.",
                        "default": 24
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "GENERAL",
                            "PHOTOGRAPHY",
                            "DELIVERY",
                            "TRANSLATION",
                            "DATA_ENTRY",
                            "RESEARCH",
                            "WRITING",
                            "DESIGN",
                            "TECH",
                            "LEGAL",
                            "FINANCE",
                            "OTHER"
                        ],
                        "type": "string",
                        "description": "Job category for listings.",
                        "default": "GENERAL"
                    },
                    "message": {
                        "title": "Message",
                        "type": "string",
                        "description": "Message content (for send_job_message)."
                    },
                    "agentName": {
                        "title": "Agent Name",
                        "type": "string",
                        "description": "Display name for your agent (for register_agent)."
                    },
                    "agentDescription": {
                        "title": "Agent Description",
                        "type": "string",
                        "description": "What your agent does (for register_agent)."
                    },
                    "contactEmail": {
                        "title": "Contact Email",
                        "type": "string",
                        "description": "Contact email for the agent operator."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
