Read and rename your organization, the account that owns zones, members and tokens.
An organization is the account that owns zones, members, clients and API tokens. A token belongs to exactly one organization, so GET /v1/orgs returns the token's own organization.
# List organizations
Returns the organization of the token. A token belongs to exactly one organization, so the list always has one item; use its id as {org} in every other route.
Required role: readonly or higher.
# Response
Field Type Description items[].idstring (uuid) Id. items[].namestring Name. items[].ns_pairarray of string Name servers the delegated zones use. Exactly 2 items. items[].created_atstring (date-time) Creation time. items[].updated_atstring (date-time) Last change. items[].pending_approvalboolean Sign-up waiting for approval (no writes). items[].suspended_atstring (date-time) or null Suspended (no writes; its zones are not served). items[].suspended_reasonstring or null items[].featuresarray of string Features enabled for the organization (egress: AI egress). Items: one of egress.
# Errors
Status Description 401Missing, invalid or expired token (unauthorized).
# Example
curl TypeScript Python
curl "https://dash.openwaf.dev/v1/orgs" \
-H "Authorization: Bearer $OPENWAF_TOKEN" import { OpenWAF } from "./openwaf" ;
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKEN
const result = await owf.listOrgs();from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev" ) # token from OPENWAF_TOKEN
result = owf.list_orgs()
200
{
"items" : [
{
"id" : "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e" ,
"name" : "Acme Digital" ,
"ns_pair" : [
"ns1.example-dns.net" ,
"ns2.example-dns.net"
],
"created_at" : "2026-03-02T10:15:00Z" ,
"updated_at" : "2026-10-01T08:00:00Z" ,
"pending_approval" : false ,
"suspended_at" : null ,
"suspended_reason" : null ,
"features" : [
"egress"
]
}
]
}
# Get organization
Returns the organization, with the pair of name servers (ns_pair) that its delegated zones use.
Required role: readonly or higher.
# Parameters
Name In Type Required Description orgpath string (uuid) Yes Organization id. Every route checks that it is the token's organization (otherwise 404).
# Response
Field Type Description idstring (uuid) Id. namestring Name. ns_pairarray of string Name servers the delegated zones use. Exactly 2 items. created_atstring (date-time) Creation time. updated_atstring (date-time) Last change. pending_approvalboolean Sign-up waiting for approval (no writes). suspended_atstring (date-time) or null Suspended (no writes; its zones are not served). suspended_reasonstring or null featuresarray of string Features enabled for the organization (egress: AI egress). Items: one of egress.
# Errors
Status Description 404Not found, or not visible to the token (not_found).
# Example
curl TypeScript Python
curl "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG" \
-H "Authorization: Bearer $OPENWAF_TOKEN" import { OpenWAF } from "./openwaf" ;
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKEN
const result = await owf.getOrg();from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev" ) # token from OPENWAF_TOKEN
result = owf.get_org()
200
{
"id" : "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e" ,
"name" : "Acme Digital" ,
"ns_pair" : [
"ns1.example-dns.net" ,
"ns2.example-dns.net"
],
"created_at" : "2026-03-02T10:15:00Z" ,
"updated_at" : "2026-10-01T08:00:00Z" ,
"pending_approval" : false ,
"suspended_at" : null ,
"suspended_reason" : null ,
"features" : [
"egress"
]
}
# Rename organization
Changes the name of the organization.
Required role: admin or higher. Organization-wide.
# Parameters
Name In Type Required Description orgpath string (uuid) Yes Organization id. Every route checks that it is the token's organization (otherwise 404).
# Request body
Content type application/json.
Field Type Required Description namestring Yes Name.
# Response
Field Type Description idstring (uuid) Id. namestring Name. ns_pairarray of string Name servers the delegated zones use. Exactly 2 items. created_atstring (date-time) Creation time. updated_atstring (date-time) Last change. pending_approvalboolean Sign-up waiting for approval (no writes). suspended_atstring (date-time) or null Suspended (no writes; its zones are not served). suspended_reasonstring or null featuresarray of string Features enabled for the organization (egress: AI egress). Items: one of egress.
# Errors
Status Description 403The token's role or limits do not allow it (forbidden).
# Example
curl TypeScript Python
curl -X PATCH "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG" \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"name" : "Acme Digital"
}'import { OpenWAF } from "./openwaf" ;
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKEN
const result = await owf.renameOrg({
body: {
name: "Acme Digital"
}
});from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev" ) # token from OPENWAF_TOKEN
result = owf.rename_org(
body={
"name" : "Acme Digital"
},
)
200
{
"id" : "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e" ,
"name" : "Acme Digital" ,
"ns_pair" : [
"ns1.example-dns.net" ,
"ns2.example-dns.net"
],
"created_at" : "2026-03-02T10:15:00Z" ,
"updated_at" : "2026-10-01T08:00:00Z" ,
"pending_approval" : false ,
"suspended_at" : null ,
"suspended_reason" : null ,
"features" : [
"egress"
]
}