Edit product facts
curl -X POST https://api.xholic.ai/v1/context/update-product \ -H "Authorization: Bearer $XHOLIC_API_KEY" \ -H "Content-Type: application/json" \ -d '{"productId":"<productId>","structuredFacts":{},"dryRun":true}'xholic context update-product --product-id '<productId>' --structured-facts '{}' --dry-run{ "name": "context_update_product", "arguments": { "productId": "<productId>", "structuredFacts": {}, "dryRun": true }}const response = await fetch("https://api.xholic.ai/v1/context/update-product", { method: "POST", headers: { Authorization: `Bearer ${process.env.XHOLIC_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "productId": "<productId>", "structuredFacts": {}, "dryRun": true }),});const result = await response.json();console.log(result.summary);import axios from "axios";
const { data } = await axios.post( "https://api.xholic.ai/v1/context/update-product", { "productId": "<productId>", "structuredFacts": {}, "dryRun": true }, { headers: { Authorization: `Bearer ${process.env.XHOLIC_API_KEY}` } },);console.log(data.summary);import osimport requests
response = requests.post( "https://api.xholic.ai/v1/context/update-product", headers={"Authorization": f"Bearer {os.environ['XHOLIC_API_KEY']}"}, json={ "productId": "<productId>", "structuredFacts": {}, "dryRun": True },)print(response.json()["summary"])package main
import ( "fmt" "io" "net/http" "os" "strings")
func main() { body := strings.NewReader(`{"productId":"<productId>","structuredFacts":{},"dryRun":true}`) req, _ := http.NewRequest("POST", "https://api.xholic.ai/v1/context/update-product", body) req.Header.Set("Authorization", "Bearer "+os.Getenv("XHOLIC_API_KEY")) req.Header.Set("Content-Type", "application/json") res, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer res.Body.Close() out, _ := io.ReadAll(res.Body) fmt.Println(string(out))}<?php$ch = curl_init("https://api.xholic.ai/v1/context/update-product");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . getenv('XHOLIC_API_KEY'), 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => '{"productId":"<productId>","structuredFacts":{},"dryRun":true}',]);$result = json_decode(curl_exec($ch), true);echo $result['summary'];require "net/http"require "json"
uri = URI("https://api.xholic.ai/v1/context/update-product")req = Net::HTTP::Post.new(uri, "Content-Type" => "application/json")req["Authorization"] = "Bearer #{ENV.fetch("XHOLIC_API_KEY")}"req.body = '{"productId":"<productId>","structuredFacts":{},"dryRun":true}'res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }puts JSON.parse(res.body)["summary"]Replace a product’s facts. Read them with context.products, change what the user asked, and send the whole structuredFacts object back: lists left out are cleared. Call it only when the user asked for this in the conversation; never on your own initiative.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Product id from context.products.
The product’s full facts object (name, tagline, summary, audience, features, benefits, proofPoints…) as context.products returns it.
object
X account to act on, as @handle. Leave it out to use the connection’s default account.
Return exactly what would happen without doing it.
A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.
Example
{ "productId": "<productId>", "structuredFacts": {}, "dryRun": true}Responses
Section titled “Responses”Success
object
One or two readable sentences about the result.
The result. Its shape depends on the action.
object
Example
{ "ok": true}default
Section titled “default”Error
object
object
Example
{ "ok": false, "error": { "code": "UNAUTHENTICATED", "scope": "account" }}