# Opensea Collection Activity Scraper (`argusapi/opensea-collection-activity-scraper`) Actor

A super advanced Opensea collection activity/events scraper capable of fetching 1000 events in under 5 seconds using $0, with pagination and more!

- **URL**: https://apify.com/argusapi/opensea-collection-activity-scraper.md
- **Developed by:** [ArgusAPI](https://apify.com/argusapi) (community)
- **Categories:** Automation, E-commerce
- **Stats:** 50 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

$20.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

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

#### What does the Opensea Collection Activity/Event Scraper do?

Our Opensea Collection Activity/Events scraper lets you quickly monitor / index events on the Opensea marketplace. This unofficial Opensea API, is super efficient at scraping data for you and costs you near to nothing while being able to fetch you **THOUSANDS** events in a **few seconds**. This scraper, fetches all sale, listing, transfer and offer events on an Opensea collection. This is very useful for monitoring trends on collections, and or indexing to create complex datasets for trading or just data analysis in general.

#### Features
- Scrape **all** events - listings, sales, transfers, offers (collection, traits, induvidual offers)
- Pagination/Cursor (You have the **whole Opensea database** at your expenditure, go back as far as 2018 if you need to)
- **Impeccable speed + lowest costs** you will ever find (refer to the benchmark below)
- Uncached data - All data is updated and **bypasses** Opensea's caching mechanisms
- Clean and easy to use JSON responses
- Intiuitive Inputs, configure what type of events to scrape, and how many events you want to scrape as well as pagination + proxy support
- Well documented + tutorial

#### Benchmark (How much does it cost + Speed)
You can scrape a **1000 events** in around **5 seconds**, using aproximately **0.0004** computing credits which is **$0** according to Apify. Dont belive us? Refer to the screen shot below. This scraper makes widescale data collection accessible to all.

![Image](https://i.imgur.com/nZ0Onki.png)

#### Tutorial + Documentation (How to use this scraper)
Github tutorial / documnetation (includes examples):
[https://github.com/ArgusAPI/opensea-collection-activity-scraper/](https://github.com/ArgusAPI/opensea-collection-activity-scraper/)


Video tutorial coming soon.

For extra support join our discord [here](https://discord.gg/m5psNeqkaQ)

#### How to use event data from Opensea 
- Get new listings which are fat fingered or are under floor price
- Monitor new events and find upcoming market trends
- Index all collection activity and create complex datasets
- Analyse trends from different users and wallets
- Detect collections with fake volume (botted collections with fake volume)

#### Input parameters 
````

{
"collectionURL": "https://opensea.io/collection/clonex",
"scrapeEventCount": 100,
"scrapeEventTypeAuctionCreated": false,
"scrapeEventTypeAuctionSuccess": false,
"scrapeEventTypeCollectionOffer": false,
"scrapeEventTypeOffer": true,
"scrapeEventTypeTransfer": false
}

````
For more information read our github, mentioned in the tutorial/documentation section

#### Is it legal to use this scraper?
Yes, scraping public data is legal.

#### Ouput / Response 
You will get a dataset containing the output of this actor. The length of the dataset will depend on the amount of results you've set/got. You can download those results as an Excel, HTML, XML, JSON, and CSV document. The recommended output is JSON, but any export will work fine.

Here's an example of scraped Opensea Collection Event data you'll get if you decide to scrape 1 events from the collection "boredapeyatchclub" (This is only 1 event, but you can scrape hundreds of thousands).

We recommend reading the documentation on what different keys and values in responses mean, but it should be pretty explanatory. Note that different event types have different responses.
```json
[
  {
    "events": [
      {
        "eventType": "trait_offer",
        "eventTimestamp": "2023-02-07T22:40:03.677149",
        "offerEventData": {
          "fromAccount": {
            "address": "0x5705b71c9581208fbab754562447185b6895f3ac",
            "username": "3ArabsCapital",
            "id": "VXNlclR5cGU6Mzk3ODg5NzQ=",
            "isCompromised": false
          },
          "payment": {
            "priceFormatted": "65.00001 WETH",
            "price": "65.00001",
            "symbol": "WETH",
            "ethValue": "65.00001",
            "usdValue": "108170.41664160000533000082",
            "quantity": "1"
          },
          "traitCriteria": {
            "traitType": "Eyes",
            "traitTypeValue": "Blue Beams"
          }
        }
      }
    ],
    "pageData": {
      "lastCursor": "YXJyYXljb25uZWN0aW9uOmV2ZW50X3RpbWVzdGFtcD1sdDoyMDIzLTAyLTA3IDIyOjQwOjAzLjY3NzE0OSZldmVudF90eXBlPWx0OnRyYWl0X29mZmVyJnBrPWx0Ojk4Mjc0NzE4MTE=",
      "hasNextPage": true
    },
    "error": "None"
  }
]
````

Refer to the documentation on github for a more documentation on the different responses.

#### Proxies

The scraper works fine without proxies, though there is a chance you can get ratelimited if running concurrent requests.

For more information view: https://docs.apify.com/proxy

#### Integrations

The Opensea Collection Activity Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Or you can use webhooks to carry out an action whenever an event occurs, e.g. get a notification whenever a new listing is created on a certain collection.

#### Using scraper with ApifyAPI

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package.

Check out the Apify API reference docs for full details or click on the API tab for code examples.

#### Feedback / Support / Community

We recommend joining our discord to stay updated with our new products or if you need support.  [Click here to join](https://discord.gg/m5psNeqkaQ)

# Actor input Schema

## `collectionURL` (type: `string`):

Leave empty for first request

## `proxies` (type: `object`):

Select proxies to be used by your crawler.

## `scrapeEventTypeAuctionSuccess` (type: `boolean`):

If set to True, the scraper will scrape events with event type: sale

## `scrapeEventTypeAuctionCreated` (type: `boolean`):

If set to True, the scraper will scrape events with event type: listing

## `scrapeEventTypeTransfer` (type: `boolean`):

If set to True, the scraper will scrape events with event type: transfer

## `scrapeEventTypeCollectionOffer` (type: `boolean`):

If set to True, the scraper will scrape events with event type: collection\_offer & trait\_offer

## `scrapeEventTypeOffer` (type: `boolean`):

If set to True, the scraper will scrape events with event type: offer

## `selectedCursor` (type: `string`):

Leave empty for first request, read the tutorial for more information regarding this parameter

## `scrapeEventCount` (type: `integer`):

How many events to scrape per request

## Actor input object example

```json
{
  "collectionURL": "https://opensea.io/collection/boredapeyachtclub",
  "proxies": {
    "useApifyProxy": false
  },
  "scrapeEventCount": 100
}
```

# 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 = {
    "collectionURL": "https://opensea.io/collection/boredapeyachtclub",
    "proxies": {
        "useApifyProxy": false
    },
    "scrapeEventCount": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("argusapi/opensea-collection-activity-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 = {
    "collectionURL": "https://opensea.io/collection/boredapeyachtclub",
    "proxies": { "useApifyProxy": False },
    "scrapeEventCount": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("argusapi/opensea-collection-activity-scraper").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 '{
  "collectionURL": "https://opensea.io/collection/boredapeyachtclub",
  "proxies": {
    "useApifyProxy": false
  },
  "scrapeEventCount": 100
}' |
apify call argusapi/opensea-collection-activity-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Opensea Collection Activity Scraper",
        "description": "A super advanced Opensea collection activity/events scraper capable of fetching 1000 events in under 5 seconds using $0, with pagination and more!",
        "version": "0.0",
        "x-build-id": "lOrSavW8aelj79v3B"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/argusapi~opensea-collection-activity-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-argusapi-opensea-collection-activity-scraper",
                "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/argusapi~opensea-collection-activity-scraper/runs": {
            "post": {
                "operationId": "runs-sync-argusapi-opensea-collection-activity-scraper",
                "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/argusapi~opensea-collection-activity-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-argusapi-opensea-collection-activity-scraper",
                "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": [
                    "scrapeEventCount",
                    "collectionURL"
                ],
                "properties": {
                    "collectionURL": {
                        "title": "Opensea Collection URL",
                        "type": "string",
                        "description": "Leave empty for first request",
                        "default": "https://opensea.io/collection/boredapeyachtclub"
                    },
                    "proxies": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your crawler."
                    },
                    "scrapeEventTypeAuctionSuccess": {
                        "title": "Scrape Sale Events",
                        "type": "boolean",
                        "description": "If set to True, the scraper will scrape events with event type: sale"
                    },
                    "scrapeEventTypeAuctionCreated": {
                        "title": "Scrape Listing Events",
                        "type": "boolean",
                        "description": "If set to True, the scraper will scrape events with event type: listing"
                    },
                    "scrapeEventTypeTransfer": {
                        "title": "Scrape Transfer Events",
                        "type": "boolean",
                        "description": "If set to True, the scraper will scrape events with event type: transfer"
                    },
                    "scrapeEventTypeCollectionOffer": {
                        "title": "Scrape Collection Offer Events",
                        "type": "boolean",
                        "description": "If set to True, the scraper will scrape events with event type: collection_offer & trait_offer"
                    },
                    "scrapeEventTypeOffer": {
                        "title": "Scrape Offer Events",
                        "type": "boolean",
                        "description": "If set to True, the scraper will scrape events with event type: offer"
                    },
                    "selectedCursor": {
                        "title": "Cursor",
                        "type": "string",
                        "description": "Leave empty for first request, read the tutorial for more information regarding this parameter"
                    },
                    "scrapeEventCount": {
                        "title": "Event Scrape Count",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "How many events to scrape per request",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
