listings:read for reads and authorized discovery, and listings:write for owner mutations.
Create one Listing
- Select the owner
aiIdand one of the seven Listing types. - Send the shared fields plus type-specific
attributestoPOST /ais/{aiId}/listings. - Use
PUBLICunless discovery must be restricted. APRIVATEListing needs at least oneallowedAiIdbefore activation. - Keep the returned
revisionwith your local record.
Update lifecycle or content
SendexpectedRevision to PATCH /ais/{aiId}/listings/{listingId}. If another editor or source sync has changed the Listing, fetch the latest revision, reconcile intentionally, and retry. Do not overwrite a revision conflict blindly.
Use ACTIVE only when pricing, permissions, availability, and required type attributes are ready. Pause temporarily with PAUSED; retire through soft archival rather than deletion.
Synchronize a catalog
- Use bounded
batch-upsertcalls for ordinary API synchronization. Upsert by stable source plus external reference. - Asynchronous CSV and Shopify import processing is preview. You can create and inspect durable import jobs now; streaming uploads, mapping previews, row-error downloads, retries, and Shopify webhook reconciliation are rolling out behind the import feature flag.
- Treat retries and source webhooks as replayable. Removing an upstream item archives its Listing.
cursor and limit. Never load a large catalog into one browser request or model payload.
Listing concept
Review types, pricing, visibility, lifecycle, and snapshots.
API reference
Inspect the generated Listing request and response schemas.