Set a sandbox's model credit
curl --request POST \
--url https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"creditUsd": 2500
}
'import requests
url = "https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit"
payload = { "creditUsd": 2500 }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({creditUsd: 2500})
};
fetch('https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit', 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.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit",
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([
'creditUsd' => 2500
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit"
payload := strings.NewReader("{\n \"creditUsd\": 2500\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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.post("https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"creditUsd\": 2500\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"creditUsd\": 2500\n}"
response = http.request(request)
puts response.read_body{
"sandbox": {
"id": "<string>",
"organizationId": "<string>",
"name": "<string>",
"state": "open",
"joinLink": "<string>",
"memberCount": 0,
"memberLimit": 0,
"connectorBaseUrl": "<string>",
"connectorCount": 0,
"allowedEmailDomains": [
"<string>"
],
"joinRole": "member",
"expiresAt": "2023-11-07T05:31:56Z",
"closedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"modelProviderCount": 0,
"planTier": "free",
"modelCredit": {
"limitUsd": 123,
"remainingUsd": 123
}
}
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Admin
Set a sandbox's model credit
Sets the spending cap, in US dollars, on the sandbox’s own OpenRouter key (the total, not an increment). 400 when the sandbox uses the deployment’s shared key. Platform administrators only.
POST
/
v1
/
admin
/
sandbox-orgs
/
{sandboxId}
/
credit
Set a sandbox's model credit
curl --request POST \
--url https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"creditUsd": 2500
}
'import requests
url = "https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit"
payload = { "creditUsd": 2500 }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({creditUsd: 2500})
};
fetch('https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit', 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.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit",
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([
'creditUsd' => 2500
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit"
payload := strings.NewReader("{\n \"creditUsd\": 2500\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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.post("https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"creditUsd\": 2500\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/admin/sandbox-orgs/{sandboxId}/credit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"creditUsd\": 2500\n}"
response = http.request(request)
puts response.read_body{
"sandbox": {
"id": "<string>",
"organizationId": "<string>",
"name": "<string>",
"state": "open",
"joinLink": "<string>",
"memberCount": 0,
"memberLimit": 0,
"connectorBaseUrl": "<string>",
"connectorCount": 0,
"allowedEmailDomains": [
"<string>"
],
"joinRole": "member",
"expiresAt": "2023-11-07T05:31:56Z",
"closedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"modelProviderCount": 0,
"planTier": "free",
"modelCredit": {
"limitUsd": 123,
"remainingUsd": 123
}
}
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
denApiKeybearerAuth
Organization API key passed as the x-api-key header. The raw key is the header value; do not prefix it with Bearer.
Path Parameters
Body
application/json
Required range:
1 <= x <= 5000Response
Updated sandbox.
Show child attributes
Show child attributes
Was this page helpful?