# Gravatar Profile Lookup (`b2b_lead_generation/gravatar-profile-lookup`) Actor

Look up Gravatar profiles in bulk from emails or hashes. Export clean names, avatars, job titles, and linked accounts to JSON, CSV, or Excel.

- **URL**: https://apify.com/b2b_lead_generation/gravatar-profile-lookup.md
- **Developed by:** [B2B Lead Generation](https://apify.com/b2b_lead_generation) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

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

## Gravatar Profile Lookup

![Gravatar Profile Lookup cover](https://images.bigibyte.com/cdn-cgi/image/width=1260,height=540,fit=cover,format=webp/apify-actors-covers/gravatar-profile-lookup-cover.png)

Retrieve publicly available Gravatar profile information using email addresses or existing email hashes. Collect profile names, usernames, avatars, locations, professional details, linked accounts, and other available information. Export organized results in JSON, CSV, Excel, or other supported formats.

### What It Does

This actor looks up Gravatar profiles using email addresses or MD5 email hashes. It processes each input, retrieves the corresponding public profile information, and saves the available details as structured dataset records.

Results include profile information, contact details, avatar images, professional information, and linked accounts when available. Duplicate hashes are automatically handled, and failed lookups are recorded without interrupting the entire run.

### Key Features

- Look up profiles using email addresses or MD5 hashes.
- Process multiple inputs in one run.
- Extract display names and usernames.
- Collect profile URLs and avatar information.
- Retrieve available location and professional details.
- Extract linked accounts and contact information.
- Capture profile background details when available.
- Prevent duplicate profile lookups.
- Export data in multiple formats.

### How It Works

Provide email addresses or existing MD5 email hashes as input. The actor processes each entry, identifies its corresponding profile hash, and retrieves the available Gravatar profile information.

Each successful lookup is saved as a structured dataset record. Duplicate hashes are handled to avoid unnecessary repeated results, while failed lookups are recorded separately.

### Input Example

```json id="m5tq91"
{
    "mode": "profile",
    "hashes": [
        "205e460b479e2e5b48aec07710c08d50"
    ],
    "requestDelaySecs": 1
}
```

### Output Example

```json id="p8xj32"
{
    "hash": "22bd03ace6f176bfe0c593650bcf45d8",
    "requestHash": "205e460b479e2e5b48aec07710c08d50",
    "profileUrl": "https://gravatar.com/beau",
    "preferredUsername": "beau",
    "thumbnailUrl": "https://0.gravatar.com/avatar/22bd03ace6f176bfe0c593650bcf45d8",
    "photos": [
        {
            "value": "https://0.gravatar.com/avatar/22bd03ace6f176bfe0c593650bcf45d8",
            "type": "thumbnail"
        }
    ],
    "displayName": "Beau Lebens",
    "pronouns": "he/him",
    "aboutMe": "Lead of WooCommerce, at Automattic.",
    "currentLocation": "Golden, CO",
    "job_title": "Lead, WooCommerce",
    "company": "Automattic",
    "contactInfo": [
        {
            "type": "contactform",
            "value": "https://beau.blog/about"
        }
    ],
    "emails": [
        {
            "primary": "true",
            "value": "beau@automattic.com"
        }
    ],
    "accounts": [],
    "profileBackground": {
        "url": "https://2.gravatar.com/bg/1428/5eb8482783a9b095bc8c43399f845ad2",
        "color": "#7a866a",
        "opacity": 1,
        "primaryColor": "#566039"
    },
    "scraped_at": "2026-10-26T00:00:00+00:00"
}
```

### Output Fields

| Field | Description |
|---|---|
| hash | Gravatar profile hash |
| requestHash | Hash used for the lookup |
| profileUrl | Public profile URL |
| preferredUsername | Profile username |
| thumbnailUrl | Profile avatar URL |
| photos | Available profile images |
| displayName | Profile display name |
| pronouns | Available profile pronouns |
| aboutMe | Profile biography |
| currentLocation | Profile location |
| job_title | Professional job title |
| company | Associated company |
| contactInfo | Available contact information |
| emails | Email information included in the profile |
| accounts | Linked external accounts |
| profileBackground | Profile background information |
| scraped_at | Date and time the profile was collected |

### Use Cases

- **Profile Enrichment:** Add publicly available profile names, usernames, and avatars to existing datasets.
- **CRM Management:** Improve contact records with available Gravatar profile information.
- **Professional Research:** Explore publicly listed job titles, companies, locations, and linked accounts.
- **Data Verification:** Check whether provided email hashes correspond to available Gravatar profiles.
- **Dataset Building:** Collect structured profile information for research and data analysis.

### Frequently Asked Questions

**What information can this actor retrieve?**

It collects available Gravatar profile details, including display names, usernames, avatars, biographies, locations, professional information, and linked accounts.

**Can I search using email addresses and hashes?**

Yes. You can provide email addresses or existing MD5 email hashes to look up corresponding profiles.

**Can I process multiple profiles in one run?**

Yes. Provide multiple email addresses or hashes to process several profile lookups in a single run.

**Does every email address return a profile?**

No. A profile is returned only when the corresponding information is available. Unavailable profiles or failed lookups are handled separately.

**How are duplicate inputs handled?**

The actor deduplicates profile lookups by hash to avoid collecting the same profile multiple times.

**Does the actor collect profile images?**

Yes. It captures available avatar URLs, photo information, and profile background details.

**What happens when a lookup fails?**

The actor continues processing and stores an error record with the available input and error information.

**Can I schedule automatic profile lookups?**

Yes. You can configure Apify schedules to run the actor automatically at your preferred intervals.

**Which export formats are supported?**

You can export collected datasets in JSON, CSV, Excel, and other formats supported by Apify.

### Trademark Notice

Gravatar, Automattic, and their associated names, logos, and trademarks belong to their respective owners. They are referenced only to identify the data source. This documentation does not imply any affiliation, sponsorship, endorsement, or partnership.

### Disclaimer

This is an independent data collection tool and is not affiliated with or officially endorsed by Gravatar, Automattic, or their owners. The actor retrieves profile information made available through Gravatar. Users are responsible for ensuring that their collection, storage, and use of personal information comply with applicable laws and website policies.

### Is Web Scraping Legal?

This actor collects publicly accessible Gravatar profile information without bypassing login screens, paywalls, or technical security measures. However, how collected information can be used depends on applicable laws and the source website's policies.

- **Personal Data:** Profile information may include names, email addresses, locations, and other personal details. Ensure compliance with applicable data protection laws, including GDPR and CCPA where relevant.
- **Copyrighted Content:** Profile biographies, images, and other creative materials may be protected by intellectual property laws. Avoid unauthorized reproduction or redistribution.
- **Platform Terms and Rate Limits:** Collect information responsibly, avoid excessive requests, and respect applicable website policies and published rate limits.
- **Disclaimer:** This information is provided for general guidance only and does not constitute legal advice. Consult a qualified legal professional for specific compliance questions.

For a detailed explanation, see Apify's legal overview: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

# Actor input Schema

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

What to scrape. Profile mode resolves each email or hash against Gravatar public profile JSON.

## `emails` (type: `array`):

Email addresses to hash locally (MD5 of lowercase trimmed email), one per line.

## `hashes` (type: `array`):

Already-hashed Gravatar ids (MD5 hex), one per line.

## `requestDelaySecs` (type: `number`):

Seconds to wait between requests.

## `userAgent` (type: `string`):

User-Agent header sent with each request.

## `timeoutSecs` (type: `integer`):

Overall run budget in seconds.

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

Per-request timeout in seconds.

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

Optional proxy. Leave off unless you need it.

## Actor input object example

```json
{
  "mode": "profile",
  "emails": [],
  "hashes": [
    "205e460b479e2e5b48aec07710c08d50"
  ],
  "requestDelaySecs": 1,
  "userAgent": "ActorResearch/1.0",
  "timeoutSecs": 300,
  "requestTimeoutSecs": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Dataset rows in the overview table.

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

Full dataset for this run.

## `items` (type: `string`):

Dataset items as JSON.

# 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 = {
    "emails": [],
    "hashes": [
        "205e460b479e2e5b48aec07710c08d50"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("b2b_lead_generation/gravatar-profile-lookup").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 = {
    "emails": [],
    "hashes": ["205e460b479e2e5b48aec07710c08d50"],
}

# Run the Actor and wait for it to finish
run = client.actor("b2b_lead_generation/gravatar-profile-lookup").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 '{
  "emails": [],
  "hashes": [
    "205e460b479e2e5b48aec07710c08d50"
  ]
}' |
apify call b2b_lead_generation/gravatar-profile-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,b2b_lead_generation/gravatar-profile-lookup"
        }
    }
}
```

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/LGJack2TSLvqFf4pP/builds/8eQhCydLVb3AVHfDE/openapi.json
