# Comet Price, Stock & Shipping Checker (`eg0722/my-actor`) Actor

Compare Comet offers by Italian postal code: product price, stock, shipping and total in EUR. Check up to 20 URLs per run. Live examples tested on Samsung, Dyson and Lenovo; experimental coverage. Export structured results. $0.01 per valid quote. No orders placed.

- **URL**: https://apify.com/eg0722/my-actor.md
- **Developed by:** [Emanuele Gamba](https://apify.com/eg0722) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 verified shipping quotes

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

### Why use Comet shipping quotes?

**Check the product price and estimated shipping together** before using a Comet offer in your competitor research. A low shelf price can be less useful when delivery costs differ. This experimental tool provides structured, timestamped evidence for one Italian postal code per run.

Use it to check a shortlist of competing offers, collect inputs for your own pricing spreadsheet, or feed an existing analysis workflow. It does not change your selling prices or find matching products for you.

### Try one product first

1. Open the Input tab and enter your five-digit Italian postal code.
2. Leave products omitted to use the S25 example, or supply a direct Comet URL and the exact model/variant terms.
3. Set a small run spending limit, then start the Actor.
4. Inspect the Output result and its evidence. Use Export to download the results for your own analysis.
5. If no validated quote is available, inspect the OUTPUT summary in Storage. An unavailable quote is not a zero shipping price.

### Example workload and cost

Twenty valid quotes cost USD 0.20 in result events. Twenty valid quotes every day for 30 days would cost USD 6.00 in result events. These are arithmetic examples, not a subscription or a promise that every product will return a result. Check the platform pricing before scheduling repeated runs.

### Support

Report reproducible problems in the [Issues tab](https://apify.com/eg0722/my-actor/issues). Include the public product URL, postal code and model terms; never include credentials or private delivery details.

### Coverage and technical details

Experimental batch shipping estimates for direct Comet product pages. Not affiliated with Comet. Each product is quoted separately in a temporary guest cart; this is not a combined basket or whole-market comparison.

### Input

Supply postalCode (five Italian digits) and optionally products: an array of up to 20 objects. Each object requires url (a direct https://www.comet.it/ product page ending in -prdtt) and requiredTerms (model and variant words to check). excludedTerms is optional. Duplicate URLs are rejected. Omit products to run the tested Samsung S25 example.

```json
{"postalCode":"10095","products":[{"url":"https://www.comet.it/windtre-samsung-galaxy-s25-ultra-256gb-blue-black-WIH00347V-prdtt","requiredTerms":["S25","256GB"],"excludedTerms":["Ultra","Plus","FE"]}]}
```

### Results

One dataset row per validated offer: postalCode, quote (price, shipping, stock, condition, timestamped evidence), metrics, runId and scope. The OUTPUT record in key-value storage summarizes successful and unavailable products and whether the budget stopped the run.

### Pricing and limits

USD 0.01 per validated result, USD 10 per 1,000. No start event or automatic dataset-item event is configured. Unavailable quotes emit no verified-quote event. The Actor checks the remaining result budget before each product. Up to four merchant requests per product, 80 per batch; no retries or paid proxies.

### Scope

Only direct Comet product pages are accepted. Product support depends on consistent page and guest-checkout data. Model/variant, price, shipping, stock and condition must pass checks. Some products may be unavailable or unsupported. The S25 example has been verified live; offline batch tests do not establish coverage of the whole catalogue.

No orders, logins, stock reservation or complete-address verification. Confirm the final offer with the merchant. For repeated checks, save your input as an Apify task and configure a schedule in your own account, subject to its usage charges.

# Actor input Schema

## `postalCode` (type: `string`):

Italian five-digit CAP for all product quotes.

## `products` (type: `array`):

Optional list with url, requiredTerms (model and variant), and optional excludedTerms. Only direct www.comet.it product pages. Omit for the S25 example.

## Actor input object example

```json
{
  "postalCode": "10095"
}
```

# Actor output Schema

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

Up to 20 independent product quotes with postalCode, quote, metrics, runId and scope.

# 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 = {
    "postalCode": "10095"
};

// Run the Actor and wait for it to finish
const run = await client.actor("eg0722/my-actor").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 = { "postalCode": "10095" }

# Run the Actor and wait for it to finish
run = client.actor("eg0722/my-actor").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 '{
  "postalCode": "10095"
}' |
apify call eg0722/my-actor --silent --output-dataset

```

## MCP server setup

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

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/P7JxCuuMoHepdhS4T/builds/j0var5KOHZR3YRqda/openapi.json
