Zum Inhalt springen
Doku

Den Katalog Ihres Shops in Emailit pflegen, für Produktraster, Empfehlungen und Bestellpositionen.

Basis-URLhttps://api.emailit.com/v2AuthentifizierungFehlerRate Limits

Produkt erstellen oder aktualisieren

Fügt Ihrem Katalog ein Produkt hinzu oder aktualisiert es, wenn bereits ein Produkt mit derselben id existiert. Die id ist die Produkt-ID in Ihrem Shop, Sie können dasselbe Produkt also bei jeder Änderung erneut senden. Erfordert einen API-Schlüssel mit dem Scope full oder events. Bei einem Schlüssel mit dem Scope events enthält die Antwort nur object, id und external_id.

id ist immer erforderlich, title bei einem neuen Produkt. Felder werden nur geschrieben, wenn Sie sie senden: Ein Produkt, das Sie nur mit einem neuen Preis erneut senden, behält Titel, Kategorien, Bild und alles andere. Um viele Produkte auf einmal zu senden, verwenden Sie Produkte gesammelt erstellen oder aktualisieren.

Produktraster, Empfehlungen und Bestellpositionen in E-Mails lesen aus dem Katalog. Siehe Produkte, Gutscheine und der Warenkorb.

POST/products

Anfrage-Body

idstring | numberErforderlich

Die Produkt-ID in Ihrem Shop, bis zu 255 Zeichen. Zahlen werden als Strings gespeichert. Wird als external_id gespeichert. Sie können sie auch als external_id senden.

titlestring

Produktname, bis zu 500 Zeichen. Sie können ihn auch als name senden. Erforderlich bei einem neuen Produkt.

skustring

Artikelnummer (SKU), bis zu 255 Zeichen.

descriptionstring

Produktbeschreibung, bis zu 10.000 Zeichen.

urlstring

Produktseite in Ihrem Shop. Eine http- oder https-URL, bis zu 2.048 Zeichen.

image_urlstring

Produktbild. Eine http- oder https-URL, bis zu 2.048 Zeichen.

pricenumber | string

Aktueller Preis, als Zahl oder numerischer String wie "89.00". Kann nicht negativ sein. Wird mit bis zu 4 Nachkommastellen gespeichert.

compare_at_pricenumber | string

Preis vor einem Rabatt, im selben Format wie price. Wenn er höher als price ist, gilt das Produkt als reduziert.

currencystring

Dreistelliger Code nach ISO 4217, etwa USD oder EUR. Kleinbuchstaben werden akzeptiert. E-Mails formatieren die Preise des Produkts in dieser Währung oder in USD, wenn sie nicht gesetzt ist.

categoriesstring[]

Bis zu 50 Kategorienamen mit jeweils bis zu 191 Zeichen. Duplikate werden entfernt.

brandstring

Markenname, bis zu 191 Zeichen.

inventory_quantityinteger | null

Vorrätige Stückzahl. null bedeutet, dass Sie den Lagerbestand nicht erfassen. Produktraster in E-Mails lassen Produkte mit 0 aus.

statusstring

active oder archived. Neue Produkte sind active. Archivierte Produkte werden in Produkte auflisten standardmäßig ausgeblendet und in Produktrastern ausgelassen.

metadataobject

Ihre eigenen Schlüssel-Wert-Daten, bis zu 16 KB als JSON. Wenn Sie metadata senden, wird das gespeicherte Objekt ersetzt.

Rückgabe

201 Created mit dem Produkt-Objekt, wenn das Produkt neu ist, oder 200 OK, wenn ein bestehendes Produkt aktualisiert wurde. Gibt 422 zurück, wenn ein Feld ungültig ist.

POST/products
Terminal
curl -X POST https://api.emailit.com/v2/products \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "8123456789",
    "title": "Trail running shoe",
    "sku": "TRS-BLU-42",
    "url": "https://shop.example.com/products/trail-running-shoe",
    "image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
    "price": 89,
    "compare_at_price": 119,
    "currency": "USD",
    "categories": ["Shoes", "Running"],
    "brand": "Acme Outdoors",
    "inventory_quantity": 34
  }'
JSON
{
  "object": "product",
  "id": "prd_3r6HHUGUSl8yjYDscEA6aYA8wrA",
  "external_id": "8123456789",
  "sku": "TRS-BLU-42",
  "title": "Trail running shoe",
  "description": null,
  "url": "https://shop.example.com/products/trail-running-shoe",
  "image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
  "price": 89,
  "compare_at_price": 119,
  "currency": "USD",
  "categories": [
    "Shoes",
    "Running"
  ],
  "brand": "Acme Outdoors",
  "inventory_quantity": 34,
  "status": "active",
  "metadata": {},
  "created_at": "2026-10-08T14:21:07.512Z",
  "updated_at": "2026-10-08T14:21:07.512Z"
}

Produkt abrufen

Ruft ein Produkt über seine Emailit-ID oder über die Produkt-ID in Ihrem Shop ab. Erfordert einen API-Schlüssel mit dem Scope full.

GET/products/{id}

Pfadparameter

idstringErforderlich

Die Produkt-ID (prd_...) oder die Produkt-ID in Ihrem Shop (external_id). Shop-IDs mit Sonderzeichen müssen Sie URL-kodieren.

Das Produkt-Objekt

objectstring

Immer product.

idstring

Emailit-Produkt-ID (prd_...).

external_idstring

Die Produkt-ID in Ihrem Shop: die id, die Sie gesendet haben. Artikel in Bestellungen und Warenkörben verweisen über diese ID auf Produkte.

skustring | null

Artikelnummer (SKU).

titlestring

Produktname.

descriptionstring | null

Produktbeschreibung.

urlstring | null

Produktseite in Ihrem Shop.

image_urlstring | null

Produktbild.

pricenumber | null

Aktueller Preis.

compare_at_pricenumber | null

Preis vor einem Rabatt. Ein Produkt ist reduziert, wenn compare_at_price höher als price ist.

currencystring | null

Dreistelliger Code nach ISO 4217 für die Preise.

categoriesstring[]

Kategorienamen.

brandstring | null

Markenname.

inventory_quantityinteger | null

Vorrätige Stückzahl. null bedeutet, dass der Lagerbestand nicht erfasst wird. Produktraster in E-Mails lassen Produkte mit 0 aus.

statusstring

active oder archived. Produktraster in E-Mails lassen archivierte Produkte aus.

metadataobject

Ihre eigenen Schlüssel-Wert-Daten.

created_atstring

Zeitpunkt, zu dem das Produkt hinzugefügt wurde, im Format ISO 8601 in UTC.

updated_atstring

Zeitpunkt der letzten Änderung des Produkts, im Format ISO 8601 in UTC.

GET/products/{id}
Terminal
curl https://api.emailit.com/v2/products/prd_3r6HHUGUSl8yjYDscEA6aYA8wrA \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "object": "product",
  "id": "prd_3r6HHUGUSl8yjYDscEA6aYA8wrA",
  "external_id": "8123456789",
  "sku": "TRS-BLU-42",
  "title": "Trail running shoe",
  "description": "Lightweight shoe with a grippy sole for wet trails.",
  "url": "https://shop.example.com/products/trail-running-shoe",
  "image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
  "price": 89,
  "compare_at_price": 119,
  "currency": "USD",
  "categories": [
    "Shoes",
    "Running"
  ],
  "brand": "Acme Outdoors",
  "inventory_quantity": 34,
  "status": "active",
  "metadata": {
    "color": "blue"
  },
  "created_at": "2026-10-02T08:15:22.418Z",
  "updated_at": "2026-10-08T14:21:07.512Z"
}

Produkt aktualisieren

Aktualisiert ein Produkt, das bereits in Ihrem Katalog ist. Nur die Felder, die Sie senden, ändern sich. Die Produkt-ID in Ihrem Shop kann sich nicht ändern: Eine id im Body wird ignoriert. Erfordert einen API-Schlüssel mit dem Scope full oder events. Bei einem Schlüssel mit dem Scope events enthält die Antwort nur object, id und external_id.

Um Produkte mit demselben Aufruf zu erstellen und zu aktualisieren, verwenden Sie Produkt erstellen oder aktualisieren.

POST/products/{id}

Pfadparameter

idstringErforderlich

Die Produkt-ID (prd_...) oder die Produkt-ID in Ihrem Shop.

Anfrage-Body

Beliebige Felder von Produkt erstellen oder aktualisieren außer id: title, sku, description, url, image_url, price, compare_at_price, currency, categories, brand, inventory_quantity, status und metadata. Es gelten dieselben Regeln. categories und metadata werden vollständig ersetzt.

Rückgabe

200 OK mit dem aktualisierten Produkt-Objekt. Gibt 404 zurück, wenn kein Produkt zu id passt, und 422, wenn ein Feld ungültig ist.

POST/products/{id}
Terminal
curl -X POST https://api.emailit.com/v2/products/8123456789 \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "price": 79, "inventory_quantity": 20 }'
JSON
{
  "object": "product",
  "id": "prd_3r6HHUGUSl8yjYDscEA6aYA8wrA",
  "external_id": "8123456789",
  "sku": "TRS-BLU-42",
  "title": "Trail running shoe",
  "description": "Lightweight shoe with a grippy sole for wet trails.",
  "url": "https://shop.example.com/products/trail-running-shoe",
  "image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
  "price": 79,
  "compare_at_price": 119,
  "currency": "USD",
  "categories": [
    "Shoes",
    "Running"
  ],
  "brand": "Acme Outdoors",
  "inventory_quantity": 20,
  "status": "active",
  "metadata": {
    "color": "blue"
  },
  "created_at": "2026-10-02T08:15:22.418Z",
  "updated_at": "2026-10-09T10:02:41.205Z"
}

Produkte auflisten

Listet die Produkte in Ihrem Katalog auf, neueste zuerst. Ohne status werden nur aktive Produkte aufgelistet. Erfordert einen API-Schlüssel mit dem Scope full.

GET/products

Query-Parameter

pageinteger

Seitennummer für die Paginierung (Minimum: 1, Standardwert: 1).

limitinteger

Anzahl der zurückgegebenen Produkte (Minimum: 1, Maximum: 100, Standardwert: 25).

searchstring

Abgleich mit dem Titel, der Produkt-ID in Ihrem Shop (external_id) oder der SKU, ohne Beachtung der Groß-/Kleinschreibung.

categorystring

Nur Produkte in dieser Kategorie. Der Name muss exakt übereinstimmen, einschließlich der Groß-/Kleinschreibung.

statusstring

active (Standardwert), archived oder all. Verwenden Sie all, wenn Sie mit dem Schlüssel status unten filtern, denn der Standardwert beschränkt die Liste bereits auf aktive Produkte.

idsstring

Kommagetrennte Liste mit bis zu 100 Produkt-IDs. Jede kann die Emailit-ID (prd_...) oder die Produkt-ID in Ihrem Shop sein.

matchstring

all (Standardwert) verlangt, dass jeder Filter key.condition zutrifft. Bei or genügt einer davon. Siehe Filtern und Sortieren.

sortstring

Sortierschlüssel: created_at (Standardwert), updated_at, title oder price.

orderstring

Sortierrichtung: asc oder desc (Standardwert).

Filter

Listenfilter sind Query-Parameter der Form key.condition=value auf einer einzigen Ebene. match, order, direction und die Bedingungen pro Typ finden Sie unter Filtern und Sortieren.

Filterschlüssel

SchlüsselTypBedingungenHinweise
titlestringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
external_idstringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
skustringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
brandstringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
currencystringexact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty
pricenumberexact, not_exact, gt, gte, lt, lte, empty, not_empty
inventory_quantitynumberexact, not_exact, gt, gte, lt, lte, empty, not_empty
statusenumexact, not_exactWerte: active, archived
created_atdateexact, before, after, empty, not_empty
updated_atdateexact, before, after, empty, not_empty

Sortierschlüssel

Dieser Endpunkt sortiert mit sort, gesetzt auf einen dieser Schlüssel, und order, gesetzt auf asc oder desc (order=<key> gibt hier 400 zurück): created_at, updated_at, title, price

Bei diesem Endpunkt akzeptiert order nur asc oder desc. Übergeben Sie den Sortierschlüssel in sort, zum Beispiel sort=price&order=asc.

Rückgabe

Eine Seite mit Produkt-Objekten in data, dazu total_records, next_page_url und previous_page_url. Die Seiten-URLs enthalten nur page und limit; fügen Sie Ihre Suche und Filter daher erneut hinzu, wenn Sie ihnen folgen.

GET/products
Terminal
curl "https://api.emailit.com/v2/products?category=Running&sort=price&order=asc&limit=25" \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "data": [
    {
      "object": "product",
      "id": "prd_3r6HHUGUSl8yjYDscEA6aYA8wrA",
      "external_id": "8123456789",
      "sku": "TRS-BLU-42",
      "title": "Trail running shoe",
      "description": "Lightweight shoe with a grippy sole for wet trails.",
      "url": "https://shop.example.com/products/trail-running-shoe",
      "image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
      "price": 89,
      "compare_at_price": 119,
      "currency": "USD",
      "categories": [
        "Shoes",
        "Running"
      ],
      "brand": "Acme Outdoors",
      "inventory_quantity": 34,
      "status": "active",
      "metadata": {
        "color": "blue"
      },
      "created_at": "2026-10-02T08:15:22.418Z",
      "updated_at": "2026-10-08T14:21:07.512Z"
    }
  ],
  "total_records": 1,
  "next_page_url": null,
  "previous_page_url": null
}

Produkte gesammelt erstellen oder aktualisieren

Senden Sie bis zu 1.000 Produkte in einer Anfrage, zum Beispiel um Ihren Katalog zu importieren oder ihn regelmäßig zu synchronisieren. Jedes Produkt folgt den Regeln von Produkt erstellen oder aktualisieren: Es wird über seine id erstellt oder aktualisiert, ein neues Produkt braucht einen title, und Felder werden nur geschrieben, wenn Sie sie senden. Erfordert einen API-Schlüssel mit dem Scope full oder events. Bei einem Schlüssel mit dem Scope events enthält die Antwort nur object, id und external_id.

Ungültige Produkte werden übersprungen und in rejected aufgeführt; die übrigen werden gespeichert. Die Anfrage gibt trotzdem 200 zurück.

POST/products/batch

Anfrage-Body

productsobject[]Erforderlich

1 bis 1.000 Produkte, jeweils mit den Feldern von Produkt erstellen oder aktualisieren.

Rückgabe

createdinteger

Anzahl der neuen Produkte.

updatedinteger

Anzahl der bestehenden Produkte, die aktualisiert wurden.

rejectedobject[]

Produkte, die nicht gespeichert wurden. Jeder Eintrag hat den index des Produkts in Ihrem Array products und errors mit Feldpfaden wie products.3.price als Schlüsseln.

Gibt 422 zurück, wenn products leer ist oder mehr als 1.000 Einträge hat.

POST/products/batch
Terminal
curl -X POST https://api.emailit.com/v2/products/batch \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      { "id": "8123456789", "title": "Trail running shoe", "price": 89, "currency": "USD", "categories": ["Shoes", "Running"] },
      { "id": "8123456790", "title": "Merino running socks", "price": 18, "currency": "USD", "categories": ["Accessories"] },
      { "id": "8123456791", "price": 49, "currency": "USD" }
    ]
  }'
JSON
{
  "created": 1,
  "updated": 1,
  "rejected": [
    {
      "index": 2,
      "errors": {
        "products.2.title": [
          "is required"
        ]
      }
    }
  ]
}

Produktkategorien auflisten

Listet die Kategorien auf, die aktive Produkte verwenden, in alphabetischer Reihenfolge, mit der Anzahl der aktiven Produkte in jeder Kategorie. Archivierte Produkte werden nicht gezählt. Gibt bis zu 1.000 Kategorien zurück und ist nicht paginiert. Erfordert einen API-Schlüssel mit dem Scope full.

Die Kategorien stammen aus categories der einzelnen Produkte. Verwenden Sie einen Kategorienamen mit dem Parameter category von Produkte auflisten.

GET/products/categories
GET/products/categories
Terminal
curl https://api.emailit.com/v2/products/categories \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "data": [
    {
      "name": "Accessories",
      "products": 18
    },
    {
      "name": "Running",
      "products": 12
    },
    {
      "name": "Shoes",
      "products": 27
    }
  ]
}

Produkt löschen

Entfernt ein Produkt aus Ihrem Katalog. Bestellungen, die es enthalten, behalten ihre Artikel, die ihren eigenen Titel, Preis und ihre Produkt-ID speichern. Um ein Produkt auszublenden, ohne es zu löschen, setzen Sie stattdessen seinen status auf archived. Erfordert einen API-Schlüssel mit dem Scope full.

Meldet das Tracking-Skript einen Aufruf eines gelöschten Produkts mit seinem Titel, wird das Produkt aus den Seitendaten erneut zum Katalog hinzugefügt.

DELETE/products/{id}

Pfadparameter

idstringErforderlich

Die Produkt-ID (prd_...) oder die Produkt-ID in Ihrem Shop.

DELETE/products/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/products/prd_3r6HHUGUSl8yjYDscEA6aYA8wrA \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "object": "product",
  "id": "prd_3r6HHUGUSl8yjYDscEA6aYA8wrA",
  "deleted": true
}

War diese Seite hilfreich?

Danke für Ihr Feedback.

Danke, wir lesen jede Nachricht.