# Awin Merchant Promotions & Transactions BYOC Scraper (`viralanalyzer/awin-merchant-products-byoc`) Actor

Fetch transaction data, advertiser partnerships, promotions, and vouchers from Awin via official Publisher API (BYOC).

- **URL**: https://apify.com/viralanalyzer/awin-merchant-products-byoc.md
- **Developed by:** [viralanalyzer](https://apify.com/viralanalyzer) (community)
- **Categories:** E-commerce, Marketing
- **Stats:** 0 total users, 0 monthly users, 0.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

## 🚀 Awin Merchant Promotions & Transactions BYOC Scraper

Official publisher integration for Awin. Programmatically retrieve transactions, voucher codes, promotions, and approved merchant partnerships (BYOC).

Integração oficial para afiliados Awin. Recupere programaticamente transações, cupons de desconto, ofertas e programas de anunciantes parceiros.

---

### 🌟 Features / Funcionalidades

- **Transactions / Transações (GET):** Pull historical transactions, click dates, transaction amounts, commission values, currency, and statuses.
- **Promotions / Cupons (POST):** Fetch all active, upcoming, or expiring vouchers, coupon codes, and promotional offers.
- **Programmes / Anunciantes (GET):** List advertiser relationships, status, click-through rates, validation periods, and commission structures.
- **PPE Enabled:** Pay-per-event pricing models to maximize cost-efficiency.
- **Owner-Skip:** Runs generated by the portfolio owner never pay execution fees.

---

### 📥 Input Schema / Dados de Entrada

| Field / Campo | Type / Tipo | Description / Descrição | Required / Obrigatório |
|---|---|---|---|
| `mode` | Select | `transactions`, `promotions`, or `programmes` | **Yes / Sim** |
| `publisherId` | String | Awin Affiliate/Publisher Account ID (e.g. 123456) | **Yes / Sim** |
| `accessToken` | String | Awin API Token (Secret) | **Yes / Sim** |
| `startDate` | String | Start date for transactions (YYYY-MM-DD). Defaults to 30 days ago | No / Não |
| `endDate` | String | End date for transactions (YYYY-MM-DD). Defaults to today | No / Não |
| `status` | Select | Filter by status (`all`, `pending`, `approved`, `declined`) | No / Não |
| `maxItems` | Integer | Max items to fetch (1-1000). Default: 100 | No / Não |

---

### 📤 Output Example / Exemplo de Saída

#### Transaction mode output / Saída de Transação:
```json
{
  "id": "11223344",
  "url": "https://api.awin.com/...",
  "advertiserId": 9999,
  "advertiserName": "Famous Brand Ltd",
  "clickDate": "2026-05-20T14:32:00",
  "transactionDate": "2026-05-20T14:35:10",
  "saleAmount": 59.90,
  "commission": 5.99,
  "currency": "EUR",
  "commissionStatus": "approved",
  "paymentId": 12345,
  "customParameters": null,
  "scrapedAt": "2026-05-26T17:28:00.000Z"
}
````

***

### 💡 Use Cases / Casos de Uso

- **Automated Coupon Portals:** Update your affiliate voucher databases daily with valid Awin promo codes.
- **Dashboard Reporting:** Feed internal Business Intelligence platforms with transaction amounts and daily commissions.
- **Partnership Health Auditing:** Track which advertisers are currently active in your network.

***

### 💳 Pricing & PPE / Precificação

- **Transactions Retrieval:** $0.02 per fetched transaction.
- **General Scraping / Listing:** $0.01 per item (promotions, advertiser).
- **Owner Mode:** Always free for the owner account (`rpTa37o1ctfdFWZk9`).

***

### Changelog

#### v1.0.0

- Initial production release.
- Fully supports Publisher API v1 endpoints (`/transactions/`, `/promotions`, `/programmes`).
- Comprehensive error diagnosis and Zero-Items guard protection.

# Actor input Schema

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

Mode of extraction: transactions (historical commission data), promotions (vouchers, discounts, and offers), or programmes (advertiser partnerships).

## `publisherId` (type: `string`):

Your Awin Affiliate/Publisher account ID (e.g. 123456). Found in the top right corner of your Awin dashboard.

## `accessToken` (type: `string`):

Your API token / Access Token. Generate it at Awin UI -> API Credentials -> Create API Token.

## `startDate` (type: `string`):

Start date for transactions. Required in YYYY-MM-DD format (or ISO). Defaults to 30 days ago.

## `endDate` (type: `string`):

End date for transactions. Required in YYYY-MM-DD format (or ISO). Defaults to today.

## `status` (type: `string`):

Filter transactions by status: all, pending, approved, declined.

## `maxItems` (type: `integer`):

Maximum number of records to return and push to dataset.

## Actor input object example

```json
{
  "mode": "transactions",
  "status": "all",
  "maxItems": 100
}
```

# Actor output Schema

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

Dataset containing all fetched results. Each item follows the dataset schema.

# 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 = {
    "mode": "transactions",
    "publisherId": "",
    "accessToken": "",
    "startDate": "",
    "endDate": "",
    "status": "all",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("viralanalyzer/awin-merchant-products-byoc").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 = {
    "mode": "transactions",
    "publisherId": "",
    "accessToken": "",
    "startDate": "",
    "endDate": "",
    "status": "all",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("viralanalyzer/awin-merchant-products-byoc").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 '{
  "mode": "transactions",
  "publisherId": "",
  "accessToken": "",
  "startDate": "",
  "endDate": "",
  "status": "all",
  "maxItems": 100
}' |
apify call viralanalyzer/awin-merchant-products-byoc --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Awin Merchant Promotions & Transactions BYOC Scraper",
        "description": "Fetch transaction data, advertiser partnerships, promotions, and vouchers from Awin via official Publisher API (BYOC).",
        "version": "1.0",
        "x-build-id": "lu8Uqa6FpJ9qaoEBM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/viralanalyzer~awin-merchant-products-byoc/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-viralanalyzer-awin-merchant-products-byoc",
                "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/viralanalyzer~awin-merchant-products-byoc/runs": {
            "post": {
                "operationId": "runs-sync-viralanalyzer-awin-merchant-products-byoc",
                "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/viralanalyzer~awin-merchant-products-byoc/run-sync": {
            "post": {
                "operationId": "run-sync-viralanalyzer-awin-merchant-products-byoc",
                "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": [
                    "mode",
                    "publisherId",
                    "accessToken"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "transactions",
                            "promotions",
                            "programmes"
                        ],
                        "type": "string",
                        "description": "Mode of extraction: transactions (historical commission data), promotions (vouchers, discounts, and offers), or programmes (advertiser partnerships).",
                        "default": "transactions"
                    },
                    "publisherId": {
                        "title": "Awin Publisher (Affiliate) ID",
                        "type": "string",
                        "description": "Your Awin Affiliate/Publisher account ID (e.g. 123456). Found in the top right corner of your Awin dashboard."
                    },
                    "accessToken": {
                        "title": "API Access Token",
                        "type": "string",
                        "description": "Your API token / Access Token. Generate it at Awin UI -> API Credentials -> Create API Token."
                    },
                    "startDate": {
                        "title": "Start Date",
                        "type": "string",
                        "description": "Start date for transactions. Required in YYYY-MM-DD format (or ISO). Defaults to 30 days ago."
                    },
                    "endDate": {
                        "title": "End Date",
                        "type": "string",
                        "description": "End date for transactions. Required in YYYY-MM-DD format (or ISO). Defaults to today."
                    },
                    "status": {
                        "title": "Transaction Status Filter",
                        "enum": [
                            "all",
                            "pending",
                            "approved",
                            "declined"
                        ],
                        "type": "string",
                        "description": "Filter transactions by status: all, pending, approved, declined.",
                        "default": "all"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of records to return and push to dataset.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
