from meetkai_mka1 import SDK
with SDK(
bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
) as sdk:
res = sdk.sandbox.set_pricing(rates={
"standard": {
"per_hour": 0.1,
"per_gib_hour": 0.05,
},
"browser": {
"per_hour": 0.4,
"per_gib_hour": 0.05,
},
"eval-python": {
"per_hour": 0.2,
"per_gib_hour": 0.05,
},
}, allow_unpriced=False)
# Handle response
print(res)import { SDK } from "@meetkai/mka1";
const sdk = new SDK({
bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await sdk.sandbox.setPricing({
rates: {
"standard": {
perHour: 0.1,
perGibHour: 0.05,
},
"browser": {
perHour: 0.4,
perGibHour: 0.05,
},
"eval-python": {
perHour: 0.2,
perGibHour: 0.05,
},
},
});
console.log(result);
}
run();using MeetKai.MKA1;
using MeetKai.MKA1.Types.Components;
using System.Collections.Generic;
var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");
SandboxPricingUpdate req = new SandboxPricingUpdate() {
Rates = new Dictionary<string, SandboxPriceRate>() {
{ "standard", new SandboxPriceRate() {
PerHour = 0.1D,
PerGibHour = 0.05D,
} },
{ "browser", new SandboxPriceRate() {
PerHour = 0.4D,
PerGibHour = 0.05D,
} },
{ "eval-python", new SandboxPriceRate() {
PerHour = 0.2D,
PerGibHour = 0.05D,
} },
},
};
var res = await sdk.Sandbox.SetPricingAsync(req);
// handle responsecurl --request PUT \
--url https://apigw.mka1.com/api/v1/sandbox/pricing \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rates": {
"standard": {
"per_hour": 0.1,
"per_gib_hour": 0.05
},
"browser": {
"per_hour": 0.4,
"per_gib_hour": 0.05
},
"eval-python": {
"per_hour": 0.2,
"per_gib_hour": 0.05
}
}
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rates: {
standard: {per_hour: 0.1, per_gib_hour: 0.05},
browser: {per_hour: 0.4, per_gib_hour: 0.05},
'eval-python': {per_hour: 0.2, per_gib_hour: 0.05}
}
})
};
fetch('https://apigw.mka1.com/api/v1/sandbox/pricing', 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://apigw.mka1.com/api/v1/sandbox/pricing",
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([
'rates' => [
'standard' => [
'per_hour' => 0.1,
'per_gib_hour' => 0.05
],
'browser' => [
'per_hour' => 0.4,
'per_gib_hour' => 0.05
],
'eval-python' => [
'per_hour' => 0.2,
'per_gib_hour' => 0.05
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://apigw.mka1.com/api/v1/sandbox/pricing"
payload := strings.NewReader("{\n \"rates\": {\n \"standard\": {\n \"per_hour\": 0.1,\n \"per_gib_hour\": 0.05\n },\n \"browser\": {\n \"per_hour\": 0.4,\n \"per_gib_hour\": 0.05\n },\n \"eval-python\": {\n \"per_hour\": 0.2,\n \"per_gib_hour\": 0.05\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <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.put("https://apigw.mka1.com/api/v1/sandbox/pricing")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rates\": {\n \"standard\": {\n \"per_hour\": 0.1,\n \"per_gib_hour\": 0.05\n },\n \"browser\": {\n \"per_hour\": 0.4,\n \"per_gib_hour\": 0.05\n },\n \"eval-python\": {\n \"per_hour\": 0.2,\n \"per_gib_hour\": 0.05\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.mka1.com/api/v1/sandbox/pricing")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rates\": {\n \"standard\": {\n \"per_hour\": 0.1,\n \"per_gib_hour\": 0.05\n },\n \"browser\": {\n \"per_hour\": 0.4,\n \"per_gib_hour\": 0.05\n },\n \"eval-python\": {\n \"per_hour\": 0.2,\n \"per_gib_hour\": 0.05\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "sandbox.pricing",
"rates": {
"standard": {
"per_hour": 0.1,
"per_gib_hour": 0.05
},
"browser": {
"per_hour": 0.4,
"per_gib_hour": 0.05
},
"eval-python": {
"per_hour": 0.2,
"per_gib_hour": 0.05
}
},
"updated_at": "2026-07-08T00:00:00Z",
"updated_by": "user_cluster_admin"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Definir Preços da Sandbox
Substitua a tabela de preços da sandbox. Semântica de substituição completa. Omitir um SKU que atualmente tem um preço é رفضado com 422, a menos que allow_unpriced seja verdadeiro: um SKU sem preço não gera gastos e seu uso não pode ser cobrado. Uma currency diferente da armazenada só é salva depois que o serviço de orçamento a aceita como a moeda de cobrança do cluster (409 quando entra em conflito, 503 quando não pode ser verificada). Tem efeito na próxima janela do medidor sem necessidade de reinicialização. Apenas administradores do cluster.
from meetkai_mka1 import SDK
with SDK(
bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
) as sdk:
res = sdk.sandbox.set_pricing(rates={
"standard": {
"per_hour": 0.1,
"per_gib_hour": 0.05,
},
"browser": {
"per_hour": 0.4,
"per_gib_hour": 0.05,
},
"eval-python": {
"per_hour": 0.2,
"per_gib_hour": 0.05,
},
}, allow_unpriced=False)
# Handle response
print(res)import { SDK } from "@meetkai/mka1";
const sdk = new SDK({
bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await sdk.sandbox.setPricing({
rates: {
"standard": {
perHour: 0.1,
perGibHour: 0.05,
},
"browser": {
perHour: 0.4,
perGibHour: 0.05,
},
"eval-python": {
perHour: 0.2,
perGibHour: 0.05,
},
},
});
console.log(result);
}
run();using MeetKai.MKA1;
using MeetKai.MKA1.Types.Components;
using System.Collections.Generic;
var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");
SandboxPricingUpdate req = new SandboxPricingUpdate() {
Rates = new Dictionary<string, SandboxPriceRate>() {
{ "standard", new SandboxPriceRate() {
PerHour = 0.1D,
PerGibHour = 0.05D,
} },
{ "browser", new SandboxPriceRate() {
PerHour = 0.4D,
PerGibHour = 0.05D,
} },
{ "eval-python", new SandboxPriceRate() {
PerHour = 0.2D,
PerGibHour = 0.05D,
} },
},
};
var res = await sdk.Sandbox.SetPricingAsync(req);
// handle responsecurl --request PUT \
--url https://apigw.mka1.com/api/v1/sandbox/pricing \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rates": {
"standard": {
"per_hour": 0.1,
"per_gib_hour": 0.05
},
"browser": {
"per_hour": 0.4,
"per_gib_hour": 0.05
},
"eval-python": {
"per_hour": 0.2,
"per_gib_hour": 0.05
}
}
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rates: {
standard: {per_hour: 0.1, per_gib_hour: 0.05},
browser: {per_hour: 0.4, per_gib_hour: 0.05},
'eval-python': {per_hour: 0.2, per_gib_hour: 0.05}
}
})
};
fetch('https://apigw.mka1.com/api/v1/sandbox/pricing', 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://apigw.mka1.com/api/v1/sandbox/pricing",
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([
'rates' => [
'standard' => [
'per_hour' => 0.1,
'per_gib_hour' => 0.05
],
'browser' => [
'per_hour' => 0.4,
'per_gib_hour' => 0.05
],
'eval-python' => [
'per_hour' => 0.2,
'per_gib_hour' => 0.05
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://apigw.mka1.com/api/v1/sandbox/pricing"
payload := strings.NewReader("{\n \"rates\": {\n \"standard\": {\n \"per_hour\": 0.1,\n \"per_gib_hour\": 0.05\n },\n \"browser\": {\n \"per_hour\": 0.4,\n \"per_gib_hour\": 0.05\n },\n \"eval-python\": {\n \"per_hour\": 0.2,\n \"per_gib_hour\": 0.05\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <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.put("https://apigw.mka1.com/api/v1/sandbox/pricing")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rates\": {\n \"standard\": {\n \"per_hour\": 0.1,\n \"per_gib_hour\": 0.05\n },\n \"browser\": {\n \"per_hour\": 0.4,\n \"per_gib_hour\": 0.05\n },\n \"eval-python\": {\n \"per_hour\": 0.2,\n \"per_gib_hour\": 0.05\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.mka1.com/api/v1/sandbox/pricing")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rates\": {\n \"standard\": {\n \"per_hour\": 0.1,\n \"per_gib_hour\": 0.05\n },\n \"browser\": {\n \"per_hour\": 0.4,\n \"per_gib_hour\": 0.05\n },\n \"eval-python\": {\n \"per_hour\": 0.2,\n \"per_gib_hour\": 0.05\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "sandbox.pricing",
"rates": {
"standard": {
"per_hour": 0.1,
"per_gib_hour": 0.05
},
"browser": {
"per_hour": 0.4,
"per_gib_hour": 0.05
},
"eval-python": {
"per_hour": 0.2,
"per_gib_hour": 0.05
}
},
"updated_at": "2026-07-08T00:00:00Z",
"updated_by": "user_cluster_admin"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Autorizações
Gateway auth: send Authorization: Bearer <mka1-api-key>. For multi-user server-side integrations, you can also send X-On-Behalf-Of: <external-user-id>.
Corpo
Atualização da tabela de tarifas de substituição total.
Uma SKU que tenha um preço e seja omitida aqui ficaria sem preço, e seu
uso então seria registrado sem custo, o que nunca pode ser cobrado. Isso
é recusado, a menos que allow_unpriced indique que isso é intencional.
Esta página foi útil?