Skip to main content
The IngestionService class (accessed via client.ingestion) pushes or syncs an external product catalog into your store. When the merchant’s own system — an ERP, a PIM, another storefront, or a spreadsheet export — is the source of truth for products, you send batches here as JSON, XML, or CSV instead of entering products by hand. For the full conceptual guide (matching rules, formats, scheduled sync), see Catalog Ingestion.

Overview

Galactic Core matches each incoming row to your existing catalog by SKU: an existing SKU is updated in place, a new SKU is created. Rows that share a product_group become variants of one product. Every batch returns a summary of counts and a per-row errors array, so one bad row never fails the whole import.
Secret key + request signature required. ingestProducts is a write — initialize the SDK with a secret key (tybrite_sk_*). A publishable key returns 403. The SDK signs the request for you; if you call the endpoint directly, you must add the signing headers yourself (see Signing a request).

ingestProducts

Push or sync a batch of products into your store. Parameters: Product fields (each entry in products): Signed example — one standalone product and one multi-variant product (its rows share a product_group):
Response
The SDK signs the request when initialized with your secret key. To push a raw body yourself (curl, another language, a serverless handler), add the X-Timestamp, X-Signature, and Idempotency-Key headers — see Signing a request.
Response fields: summary counts: errors entries:

getIngestSample

Returns a valid sample product feed you can copy to model your own. No API key required. The sample includes a single-variant product and a multi-variant product so you can see exactly how product_group expresses variants. Rate-limited to 60 requests/hour per IP. Parameters:
Response

testIngest

Parses and validates a feed without writing anything to your store, returning the same summary and errors a real import would — plus a normalized_preview showing how Galactic Core interpreted each row. No API key required, so you can perfect your feed format before integrating. Rate-limited to 60 requests/hour per IP. Parameters:
Response
Response fields:

Publishing your own catalog (the inverse of ingestion)

Ingestion pulls products in. The two feed methods below expose your catalog out as a stable, public URL — so another store, a partner, or a script can pull it the same way ingestion accepts it (a store-to-store sync is a direct pull-and-ingest, no field mapping). Opt in from the admin under Catalog Sync → “Publish my catalog”, optionally protecting it with a token. Only storefront-safe fields are exposed — never cost or margin.
No API key required for either feed method — they read a public, opt-in feed. If the store set a private token, pass it as token.

getStoreCatalogFeedJson

Returns a store’s published catalog as JSON. Parameters:
FeedProduct fields (superset of the ingestion input shape, plus media + published specifications):
Cost, margin, and any other internal fields are never included in the public feed.

getStoreCatalogFeedXml

The XML form of the same public feed. Same opt-in and token rules; returns the catalog as an XML string.
Feed response codes: 200 (the catalog), 404 (no public feed — not opted in, or a wrong/missing token), 429 (rate limit exceeded).

Response Codes