Add an item
curl --request POST \
--url https://api.example.com/v1/shopping/items \
--header 'Content-Type: application/json' \
--cookie __Secure-better-auth.session_token= \
--data '
{
"fromSuggestion": "<string>",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.example.com/v1/shopping/items"
payload = {
"fromSuggestion": "<string>",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"at": "2023-11-07T05:31:56Z"
}
headers = {
"cookie": "__Secure-better-auth.session_token=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: '__Secure-better-auth.session_token=',
'Content-Type': 'application/json'
},
body: JSON.stringify({
fromSuggestion: '<string>',
operationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.example.com/v1/shopping/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/shopping/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fromSuggestion' => '<string>',
'operationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'at' => '2023-11-07T05:31:56Z'
]),
CURLOPT_COOKIE => "__Secure-better-auth.session_token=",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/shopping/items"
payload := strings.NewReader("{\n \"fromSuggestion\": \"<string>\",\n \"operationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "__Secure-better-auth.session_token=")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/shopping/items")
.header("cookie", "__Secure-better-auth.session_token=")
.header("Content-Type", "application/json")
.body("{\n \"fromSuggestion\": \"<string>\",\n \"operationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/shopping/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = '__Secure-better-auth.session_token='
request["Content-Type"] = 'application/json'
request.body = "{\n \"fromSuggestion\": \"<string>\",\n \"operationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"version": "<string>",
"placeId": "<string>",
"name": "<string>",
"quantity": "<string>",
"section": "<string>",
"bought": true,
"placeConfidence": "confirmed",
"addedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"addedAt": "2023-11-07T05:31:56Z",
"changedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"changedAt": "2023-11-07T05:31:56Z",
"outcome": "added"
}{
"id": "<string>",
"version": "<string>",
"placeId": "<string>",
"name": "<string>",
"quantity": "<string>",
"section": "<string>",
"bought": true,
"placeConfidence": "confirmed",
"addedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"addedAt": "2023-11-07T05:31:56Z",
"changedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"changedAt": "2023-11-07T05:31:56Z",
"outcome": "added"
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "Forbidden",
"statusCode": 403
}{
"code": "<string>",
"details": {}
}{
"code": "<string>",
"details": {}
}{
"code": "request.timeout",
"correlationId": "<string>"
}{
"code": "request.timeout",
"correlationId": "<string>"
}Shopping
Add an item
Adds an open item. Without placeId the place is inferred from the house’s own history (the place of its latest item of that name, else its first place) and is assumed. A name already open is summed onto that item as its next version, unless repeat is separate. With fromSuggestion (a suggestion’s id) and nothing else, the item is that suggestion, with its name, quantity, place and section; a name already open is returned as it is. operationId makes a retry safe.
POST
/
v1
/
shopping
/
items
Add an item
curl --request POST \
--url https://api.example.com/v1/shopping/items \
--header 'Content-Type: application/json' \
--cookie __Secure-better-auth.session_token= \
--data '
{
"fromSuggestion": "<string>",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.example.com/v1/shopping/items"
payload = {
"fromSuggestion": "<string>",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"at": "2023-11-07T05:31:56Z"
}
headers = {
"cookie": "__Secure-better-auth.session_token=",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: '__Secure-better-auth.session_token=',
'Content-Type': 'application/json'
},
body: JSON.stringify({
fromSuggestion: '<string>',
operationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.example.com/v1/shopping/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/shopping/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fromSuggestion' => '<string>',
'operationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'at' => '2023-11-07T05:31:56Z'
]),
CURLOPT_COOKIE => "__Secure-better-auth.session_token=",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/shopping/items"
payload := strings.NewReader("{\n \"fromSuggestion\": \"<string>\",\n \"operationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "__Secure-better-auth.session_token=")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/shopping/items")
.header("cookie", "__Secure-better-auth.session_token=")
.header("Content-Type", "application/json")
.body("{\n \"fromSuggestion\": \"<string>\",\n \"operationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/shopping/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = '__Secure-better-auth.session_token='
request["Content-Type"] = 'application/json'
request.body = "{\n \"fromSuggestion\": \"<string>\",\n \"operationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"version": "<string>",
"placeId": "<string>",
"name": "<string>",
"quantity": "<string>",
"section": "<string>",
"bought": true,
"placeConfidence": "confirmed",
"addedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"addedAt": "2023-11-07T05:31:56Z",
"changedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"changedAt": "2023-11-07T05:31:56Z",
"outcome": "added"
}{
"id": "<string>",
"version": "<string>",
"placeId": "<string>",
"name": "<string>",
"quantity": "<string>",
"section": "<string>",
"bought": true,
"placeConfidence": "confirmed",
"addedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"addedAt": "2023-11-07T05:31:56Z",
"changedBy": {
"personId": "<string>",
"displayName": "<string>"
},
"changedAt": "2023-11-07T05:31:56Z",
"outcome": "added"
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "Forbidden",
"statusCode": 403
}{
"code": "<string>",
"details": {}
}{
"code": "<string>",
"details": {}
}{
"code": "request.timeout",
"correlationId": "<string>"
}{
"code": "request.timeout",
"correlationId": "<string>"
}Authorizations
The session cookie set when you sign in to the web app.
Body
application/json
Response
The name was already open: the item at its summed version, or, for a suggestion, the open item unchanged.
- Option 1
- Option 2
Available options:
confirmed, assumed Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
added, summed