Store Integrations
The endpoints behind the LLM Pulse app for Shopify: match a store to its project, push the orders AI assistants referred to the store and read them back, and turn catalog products into buyer prompts to track. They need an API key, so the Scale plan or above, and they are not available to accounts with a white-label portal or an embed, which get ERR_INTEGRATION_UNAVAILABLE (403).
GET/store_connection
Tells a store app whether the API key's account can use it and which project the store belongs to. project is the live project whose domain equals the store domain, else one whose domain is a parent or a subdomain of it, else null. When several live projects match equally, project is null and ambiguous is true. candidates lists every live project of the account so the app can offer a picker. Takes no project_id.
platformrequired,shopifydomainrequired, the store domain, with or without scheme
GET/ai_orders
Reads back the AI-referred orders a store app pushed for a project: totals, one row per AI assistant and a daily series. Every revenue is a decimal string in currency, which is null when the window holds no stored order. Team members need read access to AI Traffic.
- Params:
project_id(required),platform(defaultshopify),from/to(YYYY-MM-DD; default: the 90 days ending today; at most 400 days).
GET/catalog_prompt_suggestions
Lists the buyer prompts suggested from a store catalog, oldest first, with their status and the product each one came from. Team members need read access to Prompts.
project_idrequiredstatuspending|accepted|rejectedproduct_external_idpageper_pagedefault 50, max 100
PUT/ai_orders
Replaces the daily AI-referred orders and revenue of a window. Send the raw referring host or utm_source of each order's first visit as referrer: LLM Pulse classifies it and ignores anything that is not an AI assistant, and the response counts the stored rows and the ignored entries. Every stored row of that project and platform between from and to is replaced, so pushing the same window again converges instead of counting twice. Requires a writable API key; team members need update access to AI Traffic.
- Body (JSON):
project_id(required),platform(required,shopify),currency(required, ISO 4217),fromandto(required, YYYY-MM-DD, at most 400 days),days(required, up to 400 entries withday,referrer,ordersandrevenue).
POST/catalog_prompt_suggestions
Writes buyer prompts for up to 20 catalog products and saves them as pending suggestions in the project's Suggested prompts queue. data holds only the new suggestions, and skipped counts the prompts the project already had as a suggestion. It draws on the same hourly prompt-suggestion allowance as the app (ERR_QUOTA_EXCEEDED once it is used up); a failed generation returns ERR_GENERATION_FAILED (502) and can be retried. Requires a writable API key; team members need create access to Prompts.
- Body (JSON):
project_id(required),platform(required,shopify),products(required, 1 to 20 objects;external_idandtitlerequired,handle,product_type,vendor,tags,collectionsandurloptional),country_codeandlanguage_code(default: the project's).
POST/catalog_prompt_suggestions/accept
Starts tracking pending suggestions: each one becomes a prompt, tagged with a collection named after its product. Suggestions that are no longer pending come back in skipped, with their status as the reason. When the new prompts would exceed the plan, the call returns ERR_LIMIT_REACHED and accepts nothing. Requires a writable API key; team members need create access to Prompts.
project_idrequiredidsrequired, up to 100 suggestion ids, all in one country and language
POST/catalog_prompt_suggestions/reject
Marks pending suggestions as rejected. Suggestions that are no longer pending stay as they are, and rejected counts the ones that changed. Requires a writable API key; team members need update access to Prompts.
project_idrequiredidsrequired, up to 100 suggestion ids