# Testoni Product Url Listing (`getdataforme/testoni-product-url-listing`) Actor

The Testoni Product Url Listing Apify actor efficiently scrapes and lists product URLs from Testoni's website, providing comprehensive data including images, stock status, and release dates....

- **URL**: https://apify.com/getdataforme/testoni-product-url-listing.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** AI, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.00 / 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.

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

***

## README.md

### Testoni Product Url Listing

#### Introduction

The **Testoni Product Url Listing** is an Apify Actor designed to efficiently scrape and list product URLs from the Testoni website. It provides detailed information about each product, including images, stock status, and release dates, making it invaluable for market research and competitive analysis.

#### Features

- **Comprehensive Data Extraction**: Captures extensive details such as product names, URLs, images, and stock status.
- **Customizable Scraping Limits**: Allows setting a maximum number of items to scrape per run.
- **High-Quality Output**: Ensures reliable and structured data output for easy analysis.
- **Flexible Configuration**: Supports multiple URL inputs for targeted scraping.
- **Efficient Performance**: Optimized for speed and accuracy in data collection.

#### Input Parameters

| Parameter   | Type    | Required | Description                                                                 | Example                                  |
|-------------|---------|----------|-----------------------------------------------------------------------------|------------------------------------------|
| `Urls`      | array   | Yes      | The URLs for the spider to scrape. Must be valid HTTP/HTTPS links.          | `["https://www.testoni.com/en/products"]` |
| `item_limit`| integer | No       | Maximum items to scrape per actor run. Set to 0 for no limit.               | `10`                                     |

#### Example Usage

##### Input JSON

```json
{
  "Urls": [
    "https://www.testoni.com/en/products/amedeo-11-calf-leather-bd07011/?o%5B2%5D=3"
  ],
  "item_limit": 10
}
```

##### Output JSON

```json
[
  {
    "product_name": "Amedeo 11",
    "product_url": "https://www.testoni.com/en/products/amedeo-11-calf-leather-bd07011/?o%5B2%5D=3",
    "product_image": "https://www.testoni.com/file/product/product_container/ss25/amedeo/amedeo11-bd07011-w0008-g3a-1.webp",
    "all_images": [
      "https://www.testoni.com/file/product/product_container/ss25/amedeo/amedeo11-bd07011-w0008-g3a-1.webp",
      "https://www.testoni.com/file/product/product_container/ss25/amedeo/amedeo11-bd07011-w0008-g3a-2.webp",
      "https://www.testoni.com/file/product/product_container/ss25/amedeo/amedeo11-bd07011-w0008-g3a-3.webp",
      "https://www.testoni.com/file/product/product_container/ss25/amedeo/amedeo11-bd07011-w0008-g3a-4.webp",
      "https://www.testoni.com/file/product/product_container/ss25/amedeo/amedeo11-bd07011-w0008-g3a-5.webp"
    ],
    "number_of_colors": 2,
    "number_of_sizes": 0,
    "discounted_status": false,
    "product_detail": "Named after founder Amedeo Testoni, the Amedeo 11 shoulder bag draws inspiration from his vision. Its decorative spiral metal hardware reinterprets Testoni's shoemaking technique, resulting in a contemporary fusion of craftsmanship and modern style.",
    "craftsmanship": "Calf Leather",
    "stock": 1,
    "is_oos": false,
    "release_date": "2025-01-02 01:00:00",
    "actor_id": "pT2fWUtGyr75TF6UF",
    "run_id": "l0JwVgI3Qcg1OhLlI"
  }
]
```

#### Use Cases

- **Market Research and Analysis**: Gather comprehensive product data for market insights.
- **Competitive Intelligence**: Monitor competitor offerings and pricing strategies.
- **Price Monitoring**: Track price changes over time to identify trends.
- **Content Aggregation**: Compile product information for content creation.
- **Academic Research**: Collect data for studies on e-commerce trends.
- **Business Automation**: Integrate with systems for automated inventory management.

#### Installation and Usage

1. Search for "Testoni Product Url Listing" in the Apify Store.
2. Click "Try for free" or "Run".
3. Configure input parameters as needed.
4. Click "Start" to begin extraction.
5. Monitor progress in the log.
6. Export results in your preferred format (JSON, CSV, Excel).

#### Output Format

The output is a JSON array of product objects, each containing:

- `product_name`: Name of the product.
- `product_url`: URL of the product page.
- `product_image`: Main image URL.
- `all_images`: Array of all available images.
- `number_of_colors`: Number of color options.
- `number_of_sizes`: Number of size options.
- `discounted_status`: Boolean indicating if the product is discounted.
- `product_detail`: Detailed description of the product.
- `craftsmanship`: Material used in the product.
- `stock`: Current stock level.
- `is_oos`: Out-of-stock status.
- `release_date`: Product release date.
- `actor_id` and `run_id`: Unique identifiers for tracking.

#### Error Handling

The Actor handles common errors such as invalid URLs or network issues by logging them. Ensure all input URLs are valid to minimize errors. If an error occurs, check the log for details and adjust inputs accordingly.

#### Rate Limiting and Best Practices

- **Rate Limiting**: Adhere to Testoni's website terms of service regarding request frequency.
- **Best Practices**: Use a reasonable `item_limit` to avoid overloading the server and ensure efficient data collection.

#### Limitations and Considerations

- The Actor requires valid URLs for operation. Ensure all inputs are correctly formatted.
- Performance may vary based on network conditions and server response times.
- Be mindful of legal and ethical considerations when scraping websites.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: [Get Data For Me](https://getdataforme.com/contact/)

We're here to help you get the most out of this Actor!

***

# Actor input Schema

## `Urls` (type: `array`):

The urls for the spider.

## `item_limit` (type: `integer`):

Maximum items to scrape per actor run. Set to 0 for no limit.

## Actor input object example

```json
{
  "item_limit": 10
}
```

# 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("getdataforme/testoni-product-url-listing").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("getdataforme/testoni-product-url-listing").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 '{}' |
apify call getdataforme/testoni-product-url-listing --silent --output-dataset

```

## MCP server setup

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

```

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/pT2fWUtGyr75TF6UF/builds/h19p94gh17Zaa7k3U/openapi.json
