Zum Inhalt springen

Exporte

Alle passenden Items auf einmal, als CSV oder NDJSON, gestreamt.

/export schreibt jedes Item, das zu Ihren Filtern passt, in eine einzige Antwort, gestreamt, während es gelesen wird: als CSV (für Tabellenkalkulationen und Datenbanken) oder als NDJSON (ein JSON-Objekt je Zeile, für Programme). Es nimmt dieselben Filter wie /items.

Shell
curl -H "Authorization: Bearer $PRICANA_KEY" -o items.csv "https://pricana.io/api/v1/export?format=csv"
Shell
curl -H "Authorization: Bearer $PRICANA_KEY" -o laptops.ndjson \
  "https://pricana.io/api/v1/export?format=ndjson&category=computers-laptops"

CSV-Spalten

id, title, price, currency, url, image, category, category_path, site, source, first_seen_at, last_seen_at, last_changed_at, removed_at, attributes, brand, gtin, mpn, attribution

UTF-8 mit Kopfzeile, durch Kommas getrennt, wo nötig in Anführungszeichen. attributes enthält die übrigen Werte des Shops als JSON. Neue Spalten kommen nur am Ende hinzu, damit Programme, die nach Position lesen, weiter funktionieren. Zellen, die mit =, +, - oder @ beginnen, bekommen ein vorangestelltes ', damit Tabellenkalkulationen sie nicht als Formeln ausführen.

NDJSON

Jede Zeile ist ein Item, so wie /items es liefert:

Python
import json, os, requests

with requests.get("https://pricana.io/api/v1/export", params={"format": "ndjson"},
                  headers={"Authorization": f"Bearer {os.environ['PRICANA_KEY']}"}, stream=True, timeout=3600) as r:
    r.raise_for_status()
    for line in r.iter_lines():
        item = json.loads(line)
        ...

Exportzeilen

Exportierte Zeilen zählen gegen die Exportzeilen pro Monat Ihres Plans. Die Antwort sagt, wie viele Zeilen sie enthält und wie viele übrig sind:

Header
X-Export-RowsZeilen in diesem Export
X-Export-Rows-Remainingdanach in diesem Monat übrige Zeilen
X-Export-Truncatedtrue, wenn der Export am Monatslimit endete
X-Export-Matchingmit X-Export-Truncated: wie viele Zeilen gepasst hätten
X-Export-Overagetrue: Zeilen über dem Monatskontingent, berechnet (bezahlte Pläne)

In bezahlten Plänen werden Zeilen über dem Monatskontingent als Overage berechnet, wie es auf der Preisseite steht; der Export ist vollständig. Im Plan Free, in der Testphase und wo Overage abgeschaltet ist (auf Wunsch, siehe Limits), endet ein Export, der über das Übrige hinausginge, am Limit (er schlägt nicht fehl); ist nichts mehr übrig, antwortet er mit 429. Grenzen Sie ihn mit Filtern ein (nach Dataset, Kategorie oder changedSince) oder wählen Sie einen größeren Plan. Die Seite Export im Portal zeigt die übrigen Zeilen, bevor Sie beginnen.

Exporte in Sync-Jobs

Ein nächtlicher Export mit changedSince ist ein einfacher Weg, eine Kopie frisch zu halten: einmal alles exportieren, dann jede Nacht nur, was sich seit dem letzten Lauf geändert hat, mit status=all: Entfernte Items kommen mit gesetztem removedAt, und Sie löschen sie aus Ihrer Kopie (ohne erfahren Sie nie von Entfernungen). Für Änderungen binnen Minuten nutzen Sie den Change-Feed.