Skip to main content
POST
Ingest a batch of products

Authorizations

Authorization
string
header
required

API Key Authentication

Use your API key in the Authorization header:

Key Types:

Secret Keys (Server-Side Only):

  • Format: tybrite_sk_live_* (production) or tybrite_sk_test_* (sandbox)
  • Full read/write access to all endpoints
  • ⚠️ NEVER expose in client-side code or public repositories
  • Required for: write operations, authentication, payment verification, AI recommendations

Publishable Keys (Client-Safe):

  • Format: tybrite_pk_live_* (production) or tybrite_pk_test_* (sandbox)
  • Read-only access (GET requests only, plus POST semantic search)
  • ✅ Safe for client-side JavaScript, mobile apps, and public code
  • Allowed for: browsing products, search, CMS content, pricing queries

Endpoint-Specific Requirements:

  • Authentication endpoints (/v1/auth/*): Secret key required
  • Payment verification (POST /v1/payments/verify): Secret key required
  • AI Recommendations (POST /v1/recommendations): Secret key required
  • Semantic Search (POST /v1/search): Both key types allowed (read-only operation)
  • All write operations: Secret key required
  • All read operations: Both key types allowed

Using a publishable key for restricted operations returns 403 Forbidden.

Headers

Idempotency-Key
string
required

Unique key per batch; retrying with the same key returns the original result instead of re-importing.

X-Timestamp
integer
required

Unix timestamp in seconds (current time). Must be within 5 minutes of server time. Used to prevent replay attacks.

X-Signature
string
required

Base64-encoded HMAC-SHA256 of the payload (${X-Timestamp}.${raw_body}), signed with your HMAC secret from the Integrations page (Developer section). Required in addition to the secret key.

Query Parameters

format
enum<string>

Overrides the Content-Type for format detection.

Available options:
json,
xml,
csv
strategy
enum<string>
default:upsert_by_sku

upsert_by_sku (default) updates existing SKUs; create_only skips them.

Available options:
upsert_by_sku,
create_only
dry_run
boolean
default:false

When true, validate and report without writing anything.

Body

A batch of products. For JSON use { "products": [ … ] } (or a bare array). For CSV, the first row is a header; for XML, a <products> root with <product> children. Field names are matched leniently (e.g. Product Namename).

products
object[]

Response

Batch processed. May be a full success or a partial success — inspect summary and errors. status is success (no failures) or partial (some rows failed).

The outcome of an ingestion batch.

status
enum<string>

success (no failures), partial (some rows failed, the rest applied), or failed (every row failed; nothing written).

Available options:
success,
partial,
failed
format
enum<string>
Available options:
json,
xml,
csv
strategy
enum<string>
Available options:
upsert_by_sku,
create_only
summary
object

Per-batch counts.

errors
object[]