# Trendyol Seller Products, Price and Stock Export (official API) (`cexxz34/tr-trendyol-satici-urunler`) Actor

Exports your own Trendyol products, prices and stock through the official Trendyol Marketplace API. Flags out-of-stock, low stock, locked and violating items. Needs your seller ID, API key and secret.

- **URL**: https://apify.com/cexxz34/tr-trendyol-satici-urunler.md
- **Developed by:** [Arda Cem](https://apify.com/cexxz34) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 variant listeds

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?

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

## Trendyol Satıcı Ürünleri, Fiyat ve Stok Dışa Aktarımı (resmî API)

Trendyol'da satış yapıyorsanız, kendi ürünlerinizin barkod, fiyat ve stok listesini Trendyol'un **resmî Marketplace API'si** üzerinden alın. Stoksuz, az stoklu, kilitli ve ihlal bildirilen ürünler ayrıca işaretlenir.

Bu actor Trendyol web sitesini taramaz, bot korumasını aşmaya çalışmaz. Yalnız sizin kendi satıcı hesabınızın API kimlik bilgileriyle, kendi ürün verinizi okur.

### Ne yapar?

- Satıcı hesabınızdaki onaylı ürünleri sayfa sayfa okur (sayfa başına 100).
- Her varyant (barkod) için satış fiyatı, liste fiyatı, müşterinin gördüğü fiyat, KDV oranı, stok, satış durumu, kilit ve arşiv bilgisini verir.
- `outOfStock`, `lowStock`, `locked`, `hasViolation` ve genel `alert` alanları ile sorunlu ürünleri öne çıkarır.
- "Yalnız uyarılar" ile sadece sorunlu varyantları döndürür.
- Günlük zamanlanmış çalıştırma ile stok ve kilit kontrolü yapabilirsiniz.

### Kimlik bilgilerini nereden alırım?

Trendyol satıcı panelinde **Hesap Bilgilerim > Entegrasyon Bilgileri** bölümünde Satıcı ID, API Key ve API Secret görünür. Bu bilgiler yalnız ana kullanıcı (admin) ile giriş yapıldığında görünür. API anahtarı ve gizli anahtar Apify'da şifreli saklanır; çıktıya veya günlüğe yazılmaz.

Kimlik bilgilerini boş bırakırsanız actor, "demo" olarak işaretli örnek veri döndürür ve ücret almaz.

### Girdi

| Alan | Açıklama |
|---|---|
| `sellerId` | Satıcı ID (yalnız rakam). Boşsa demo veri döner |
| `apiKey` | API anahtarı (gizli) |
| `apiSecret` | API gizli anahtarı (gizli) |
| `status` | `onSale`, `archived`, `locked`, `blacklisted` veya boş (hepsi) |
| `maxVariants` | Döndürülecek en fazla varyant. Varsayılan: 1000 |
| `lowStockThreshold` | Az stok eşiği. Varsayılan: 5 |
| `onlyAlerts` | Yalnız uyarı içeren varyantlar |

### Fiyat

Kullandıkça öde (pay-per-event). Döndürülen her varyant bir `variant-listed` olayıdır. Demo veri ve hatalı çalıştırmalar ücretlendirilmez.

### Sınırlar

- Yalnız **kendi satıcı hesabınızın** ürünlerini okur. Rakip veya genel Trendyol verisi vermez.
- Trendyol API'sinin kurallarına bağlıdır: sayfa başına en fazla 100 kayıt ve sınırlı istek sayısı. Hız sınırı (HTTP 429) alınırsa actor kısa beklemelerle yeniden dener.
- Alan adları Trendyol'un yayınlanmış belgelerine göre yazıldı. Gerçek bir satıcı hesabıyla uçtan uca doğrulama, bu actor'ü ilk kullanan kişi tarafından yapılmalıdır; bir alan beklenenden farklı gelirse boş (`null`) kalır.
- Fiyat ve stoğu **değiştirmez**, yalnız okur.
- Trendyol kimlik bilgileri değişirse (yenilenirse) girdiyi güncelleyin.

### Kişisel veri

Ürün, fiyat ve stok verisi okunur. Müşteri ve sipariş verisi okunmaz. Kimlik bilgileri şifreli saklanır ve dışarı gönderilmez; yalnız `apigw.trendyol.com` adresine Basic kimlik doğrulama ile iletilir.

***

## Trendyol Seller Products, Price and Stock Export (official API)

If you sell on Trendyol, get the barcode, price and stock list of your own products through Trendyol's **official Marketplace API**. Out-of-stock, low-stock, locked and violating items are flagged.

This actor does not crawl the Trendyol website and does not try to bypass bot protection. It reads your own product data using the API credentials of your own seller account.

### What it does

- Reads the approved products of your seller account page by page (100 per page).
- Returns for every variant (barcode): sale price, list price, price seen by the customer, VAT rate, stock, on-sale state, lock and archive information.
- Flags `outOfStock`, `lowStock`, `locked`, `hasViolation` and an overall `alert`.
- "Alerts only" returns just the problematic variants.
- Schedule it daily to check stock and locks.

### Where do I find the credentials?

In the Trendyol seller panel under **Account Information > Integration Information** you find the Seller ID, API Key and API Secret (visible only to the main admin user). The API key and secret are stored encrypted in Apify and are never written to the output or the log.

If you leave the credentials empty, the actor returns sample rows labeled as demo and charges nothing.

### Input

| Field | Description |
|---|---|
| `sellerId` | Seller ID (digits only). Empty returns demo data |
| `apiKey` | API key (secret) |
| `apiSecret` | API secret (secret) |
| `status` | `onSale`, `archived`, `locked`, `blacklisted` or empty (all) |
| `maxVariants` | Maximum variants to return. Default: 1000 |
| `lowStockThreshold` | Low-stock threshold. Default: 5 |
| `onlyAlerts` | Only variants with an alert |

### Pricing

Pay per event. Each returned variant is one `variant-listed` event. Demo data and failed runs are not charged.

### Limitations

- Reads only **your own seller account**. It does not provide competitor or general Trendyol data.
- Subject to Trendyol's API rules: at most 100 records per page and limited request rates. On HTTP 429 the actor retries with short waits.
- Field names follow Trendyol's published documentation. End-to-end verification with a real seller account has to be done by the first user; a field that comes back different stays empty (`null`).
- Read-only: it does not change prices or stock.
- If you regenerate your Trendyol credentials, update the input.

### Personal data

Product, price and stock data is read. No customer or order data is read. Credentials are stored encrypted and sent only to `apigw.trendyol.com` using Basic authentication.

# Actor input Schema

## `sellerId` (type: `string`):

Trendyol satıcı panelinde Hesap Bilgilerim > Entegrasyon Bilgileri bölümündeki Satıcı ID. Boş bırakırsanız örnek (demo) veri döner. / Seller ID from Account > Integration Info. Leave empty for demo data.

## `apiKey` (type: `string`):

Entegrasyon Bilgileri bölümündeki API Key. Şifreli saklanır. / API Key from Integration Info. Stored encrypted.

## `apiSecret` (type: `string`):

Entegrasyon Bilgileri bölümündeki API Secret. Şifreli saklanır. / API Secret from Integration Info. Stored encrypted.

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

Yalnız bu durumdaki ürünler. Boş: hepsi. / Only products in this state. Empty: all.

## `maxVariants` (type: `integer`):

Döndürülecek en fazla varyant (barkod) sayısı. / Maximum variants (barcodes) to return.

## `lowStockThreshold` (type: `integer`):

Stok bu değere eşit veya altındaysa 'lowStock' işaretlenir. / Stock at or below this value is flagged lowStock.

## `onlyAlerts` (type: `boolean`):

Yalnız stoksuz, az stoklu, kilitli veya ihlal bulunan varyantları döndür. / Return only out-of-stock, low-stock, locked or violating variants.

## Actor input object example

```json
{
  "status": "",
  "maxVariants": 1000,
  "lowStockThreshold": 5,
  "onlyAlerts": false
}
```

# Actor output Schema

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

Dataset with one item per variant.

## `files` (type: `string`):

Key-value store with SUMMARY (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("cexxz34/tr-trendyol-satici-urunler").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("cexxz34/tr-trendyol-satici-urunler").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 cexxz34/tr-trendyol-satici-urunler --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cexxz34/tr-trendyol-satici-urunler"
        }
    }
}
```

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/BHzvsQKFxuI328D1i/builds/L0BHDpplYWSxf7yYl/openapi.json
