curl --request PUT \
--url https://api.upstackdata.com/accounts/api/costs/lines/{lineId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-pixel-id: <api-key>' \
--data '
{
"costType": "variable",
"updates": {
"percentRate": 2.5
}
}
'import requests
url = "https://api.upstackdata.com/accounts/api/costs/lines/{lineId}"
payload = {
"costType": "variable",
"updates": { "percentRate": 2.5 }
}
headers = {
"x-api-key": "<api-key>",
"x-pixel-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'x-api-key': '<api-key>',
'x-pixel-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({costType: 'variable', updates: {percentRate: 2.5}})
};
fetch('https://api.upstackdata.com/accounts/api/costs/lines/{lineId}', 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.upstackdata.com/accounts/api/costs/lines/{lineId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'costType' => 'variable',
'updates' => [
'percentRate' => 2.5
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-pixel-id: <api-key>"
],
]);
$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.upstackdata.com/accounts/api/costs/lines/{lineId}"
payload := strings.NewReader("{\n \"costType\": \"variable\",\n \"updates\": {\n \"percentRate\": 2.5\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-pixel-id", "<api-key>")
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.put("https://api.upstackdata.com/accounts/api/costs/lines/{lineId}")
.header("x-api-key", "<api-key>")
.header("x-pixel-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"costType\": \"variable\",\n \"updates\": {\n \"percentRate\": 2.5\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upstackdata.com/accounts/api/costs/lines/{lineId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["x-pixel-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"costType\": \"variable\",\n \"updates\": {\n \"percentRate\": 2.5\n }\n}"
response = http.request(request)
puts response.read_body{
"config": {
"pixelId": "<string>",
"costType": "global_product_override",
"createdAt": "<string>",
"updatedAt": "<string>",
"defaultCogs": 123,
"globalHandlingFee": 123,
"currency": "<string>"
}
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}Update a cost line
Partial-update an existing cost line by its ULID. Only the fields
supplied in updates are written; omitted fields stay as-is.
Triggers a per-order COGS recalculation downstream (except for
variable and fixed).
Required scope: costs:write.
curl --request PUT \
--url https://api.upstackdata.com/accounts/api/costs/lines/{lineId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-pixel-id: <api-key>' \
--data '
{
"costType": "variable",
"updates": {
"percentRate": 2.5
}
}
'import requests
url = "https://api.upstackdata.com/accounts/api/costs/lines/{lineId}"
payload = {
"costType": "variable",
"updates": { "percentRate": 2.5 }
}
headers = {
"x-api-key": "<api-key>",
"x-pixel-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'x-api-key': '<api-key>',
'x-pixel-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({costType: 'variable', updates: {percentRate: 2.5}})
};
fetch('https://api.upstackdata.com/accounts/api/costs/lines/{lineId}', 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.upstackdata.com/accounts/api/costs/lines/{lineId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'costType' => 'variable',
'updates' => [
'percentRate' => 2.5
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-pixel-id: <api-key>"
],
]);
$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.upstackdata.com/accounts/api/costs/lines/{lineId}"
payload := strings.NewReader("{\n \"costType\": \"variable\",\n \"updates\": {\n \"percentRate\": 2.5\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-pixel-id", "<api-key>")
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.put("https://api.upstackdata.com/accounts/api/costs/lines/{lineId}")
.header("x-api-key", "<api-key>")
.header("x-pixel-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"costType\": \"variable\",\n \"updates\": {\n \"percentRate\": 2.5\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upstackdata.com/accounts/api/costs/lines/{lineId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["x-pixel-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"costType\": \"variable\",\n \"updates\": {\n \"percentRate\": 2.5\n }\n}"
response = http.request(request)
puts response.read_body{
"config": {
"pixelId": "<string>",
"costType": "global_product_override",
"createdAt": "<string>",
"updatedAt": "<string>",
"defaultCogs": 123,
"globalHandlingFee": 123,
"currency": "<string>"
}
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}{
"message": "<string>",
"errors": [
{
"message": "<string>",
"key": "<string>",
"path": [
"<string>"
]
}
]
}Authorizations
Your Upstack API key. Starts with upstack_.
The pixel id the request targets.
Path Parameters
Body
Partial update — every field of the corresponding line shape is
optional in updates. Only the supplied fields are written;
omitted fields stay as-is.
The five cost-line surfaces. Each value selects the corresponding
line shape in the line (POST) or updates (PUT) field of the
request body.
order, gateway, shipping, variable, fixed Subset of fields from the line shape selected by costType.
Response
The updated cost config.
One stored cost configuration. Which shape you get follows costType.
- Global product override
- Order costs
- Gateway fees
- Shipping costs
- Variable costs
- Fixed costs
Show child attributes
Show child attributes
Was this page helpful?