curl --request PATCH \
--url https://api.qumo-deploy.com/v1/organizations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Inc.",
"billing_email": "[email protected]"
}
'import requests
url = "https://api.qumo-deploy.com/v1/organizations/{id}"
payload = {
"name": "Acme Inc.",
"billing_email": "[email protected]"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Acme Inc.', billing_email: '[email protected]'})
};
fetch('https://api.qumo-deploy.com/v1/organizations/{id}', 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.qumo-deploy.com/v1/organizations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Acme Inc.',
'billing_email' => '[email protected]'
]),
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://api.qumo-deploy.com/v1/organizations/{id}"
payload := strings.NewReader("{\n \"name\": \"Acme Inc.\",\n \"billing_email\": \"[email protected]\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.qumo-deploy.com/v1/organizations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Inc.\",\n \"billing_email\": \"[email protected]\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qumo-deploy.com/v1/organizations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Inc.\",\n \"billing_email\": \"[email protected]\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3f8c2a1e-7b4d-4e9a-9c61-2d5e8f0a1b7c",
"name": "Acme",
"slug": "acme",
"billing_email": "[email protected]",
"created_at": "2026-08-02T10:04:11Z",
"grafana_org_id": 12
}{
"error": "organization_id is required"
}{
"error": "organization_id is required"
}{
"error": "organization_id is required"
}{
"error": "organization_id is required"
}Update an organization
Changes an organization’s name or billing email. Omitted fields are left
unchanged; billing_email: null clears the billing email. The slug never
changes.
curl --request PATCH \
--url https://api.qumo-deploy.com/v1/organizations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Inc.",
"billing_email": "[email protected]"
}
'import requests
url = "https://api.qumo-deploy.com/v1/organizations/{id}"
payload = {
"name": "Acme Inc.",
"billing_email": "[email protected]"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Acme Inc.', billing_email: '[email protected]'})
};
fetch('https://api.qumo-deploy.com/v1/organizations/{id}', 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.qumo-deploy.com/v1/organizations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Acme Inc.',
'billing_email' => '[email protected]'
]),
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://api.qumo-deploy.com/v1/organizations/{id}"
payload := strings.NewReader("{\n \"name\": \"Acme Inc.\",\n \"billing_email\": \"[email protected]\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.qumo-deploy.com/v1/organizations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Inc.\",\n \"billing_email\": \"[email protected]\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qumo-deploy.com/v1/organizations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Inc.\",\n \"billing_email\": \"[email protected]\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3f8c2a1e-7b4d-4e9a-9c61-2d5e8f0a1b7c",
"name": "Acme",
"slug": "acme",
"billing_email": "[email protected]",
"created_at": "2026-08-02T10:04:11Z",
"grafana_org_id": 12
}{
"error": "organization_id is required"
}{
"error": "organization_id is required"
}{
"error": "organization_id is required"
}{
"error": "organization_id is required"
}Authorizations
A personal access token (POST /v1/auth/tokens) or a machine
identity token (POST /v1/projects/{project_id}/identities/{identity_id}/tokens),
both prefixed qumo_pat_. A token's scopes cap what it can do; see
Scopes and permissions. A personal
token names no organization: on a route whose path names no project or
organization, pass ?organization_id=.
Path Parameters
The organization's id.
Body
Omitted fields are left unchanged.
The new display name. Must not be empty when present.
1"Acme Inc."
The new billing email, or null to clear it.
Response
The updated organization.
The customer account that holds projects, members and billing.
The organization's id.
"3f8c2a1e-7b4d-4e9a-9c61-2d5e8f0a1b7c"
Display name.
"Acme"
The organization's name in broadcast paths: a project's paths start
with <organization slug>/<project slug>. Unique across all
organizations, derived from the name at creation, and unchanged when
the name changes.
"acme"
Where billing email is sent, or null when unset.
When the organization was created.
"2026-08-02T10:04:11Z"
The organization's Grafana organization, present once one is provisioned.
12