Appwrite Organizations API
The Organizations service allows you to manage organization billing, plans, invoices, and add-ons. 45 operations across 38 paths in the Appwrite 2.0.0 OpenAPI.
The Organizations service allows you to manage organization billing, plans, invoices, and add-ons. 45 operations across 38 paths in the Appwrite 2.0.0 OpenAPI.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/appwrite-organizations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.0.0
info:
title: Appwrite Organizations API
description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
version: 2.0.0
termsOfService: https://appwrite.io/policy/terms
contact:
name: Appwrite Team
url: https://appwrite.io/support
email: team@appwrite.io
license:
name: BSD-3-Clause
url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
variables:
region:
default: fra
description: Appwrite Cloud region.
tags:
- name: organizations
description: The Organizations service allows you to manage organization billing, plans, invoices, and add-ons.
paths:
/organizations:
get:
summary: List Orgnizations
operationId: organizationsList
tags:
- organizations
description: Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.
responses:
'200':
description: Organizations list
content:
application/json:
schema:
$ref: '#/components/schemas/organizationList'
deprecated: false
x-appwrite:
group: null
demo: organizations/list.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: teams.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: queries
description: 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: search
description: 'Search term to filter your list results. Max length: 256 chars.'
required: false
schema:
type: string
example: <SEARCH>
default: ''
in: query
post:
summary: Create Organization
operationId: organizationsCreate
tags:
- organizations
description: 'Create a new organization.
'
responses:
'201':
description: Organization, or PaymentAuthentication
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/organization'
- $ref: '#/components/schemas/paymentAuthentication'
deprecated: false
x-appwrite:
group: null
demo: organizations/create.md
rate-limit: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: teams.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
organizationId:
description: Organization ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
type: string
example: <ORGANIZATION_ID>
x-appwrite:
idGenerator: ID.unique
name:
description: 'Organization name. Max length: 128 chars.'
type: string
example: <NAME>
billingPlan:
description: Organization billing plan chosen
type: string
example: tier-0
paymentMethodId:
description: Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.
type: string
example: <PAYMENT_METHOD_ID>
nullable: true
billingAddressId:
description: Unique ID of billing address
type: string
default: ''
example: <BILLING_ADDRESS_ID>
nullable: true
invites:
description: Additional member invites
type: array
default: []
items:
type: string
couponId:
description: Coupon id
type: string
example: <COUPON_ID>
nullable: true
taxId:
description: Tax Id associated to billing.
type: string
example: <TAX_ID>
nullable: true
budget:
description: Budget limit for additional usage set for the organization
type: integer
example: 0
format: int32
nullable: true
platform:
description: Platform type
type: string
default: appwrite
example: appwrite
title: Platform
oneOf:
- type: string
enum:
- appwrite
title: appwrite
- type: string
enum:
- imagine
title: imagine
required:
- organizationId
- name
- billingPlan
/organizations/estimations/create-organization:
patch:
summary: Estimate create Organization
operationId: organizationsEstimationCreateOrganization
tags:
- organizations
description: Get estimation for creating an organization.
responses:
'200':
description: Estimation
content:
application/json:
schema:
$ref: '#/components/schemas/estimation'
deprecated: false
x-appwrite:
group: null
demo: organizations/estimation-create-organization.md
rate-limit: 120
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: teams.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
requestBody:
content:
application/json:
schema:
type: object
properties:
billingPlan:
description: Organization billing plan chosen
type: string
example: tier-0
paymentMethodId:
description: Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.
type: string
example: <PAYMENT_METHOD_ID>
nullable: true
invites:
description: Additional member invites
type: array
default: []
items:
type: string
couponId:
description: Coupon id
type: string
example: <COUPON_ID>
nullable: true
platform:
description: Platform type
type: string
default: appwrite
example: appwrite
title: Platform
oneOf:
- type: string
enum:
- appwrite
title: appwrite
- type: string
enum:
- imagine
title: imagine
required:
- billingPlan
/organizations/{organizationId}:
delete:
summary: Delete team
operationId: organizationsDelete
tags:
- organizations
description: Delete an organization.
responses:
'204':
description: No content
deprecated: false
x-appwrite:
group: null
demo: organizations/delete.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: organizations.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Team ID.
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
/organizations/{organizationId}/addons:
get:
summary: List addons
operationId: organizationsListAddons
tags:
- organizations
description: 'List all billing addons for an organization.
'
responses:
'200':
description: Addons list
content:
application/json:
schema:
$ref: '#/components/schemas/addonList'
deprecated: false
x-appwrite:
group: null
demo: organizations/list-addons.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
/organizations/{organizationId}/addons/baa:
post:
summary: Create BAA addon
operationId: organizationsCreateBaaAddon
tags:
- organizations
description: 'Create the BAA billing addon for an organization.
'
responses:
'201':
description: Addon
content:
application/json:
schema:
$ref: '#/components/schemas/addon'
deprecated: false
x-appwrite:
group: null
demo: organizations/create-baa-addon.md
rate-limit: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
/organizations/{organizationId}/addons/premium-geo-db:
post:
summary: Create Premium Geo DB addon
operationId: organizationsCreatePremiumGeoDBAddon
tags:
- organizations
description: 'Create a Premium Geo DB addon for an organization.
'
responses:
'201':
description: Addon
content:
application/json:
schema:
$ref: '#/components/schemas/addon'
deprecated: false
x-appwrite:
group: null
demo: organizations/create-premium-geo-db-addon.md
rate-limit: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
/organizations/{organizationId}/addons/{addonId}:
get:
summary: Get addon
operationId: organizationsGetAddon
tags:
- organizations
description: 'Get the details of a billing addon for an organization.
'
responses:
'200':
description: Addon
content:
application/json:
schema:
$ref: '#/components/schemas/addon'
deprecated: false
x-appwrite:
group: null
demo: organizations/get-addon.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: addonId
description: Addon ID
required: true
schema:
type: string
example: <ADDON_ID>
in: path
delete:
summary: Delete addon
operationId: organizationsDeleteAddon
tags:
- organizations
description: 'Delete a billing addon for an organization.
'
responses:
'204':
description: No content
deprecated: false
x-appwrite:
group: null
demo: organizations/delete-addon.md
rate-limit: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: addonId
description: Addon ID
required: true
schema:
type: string
example: <ADDON_ID>
in: path
/organizations/{organizationId}/addons/{addonId}/confirmations:
post:
summary: Confirm addon payment after 3DS authentication
operationId: organizationsConfirmAddonPayment
tags:
- organizations
description: 'Confirm payment for a billing addon for an organization.
'
responses:
'200':
description: Addon
content:
application/json:
schema:
$ref: '#/components/schemas/addon'
deprecated: false
x-appwrite:
group: null
demo: organizations/confirm-addon-payment.md
rate-limit: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: addonId
description: Addon ID
required: true
schema:
type: string
example: <ADDON_ID>
in: path
/organizations/{organizationId}/addons/{addon}/price:
get:
summary: Get addon price
operationId: organizationsGetAddonPrice
tags:
- organizations
description: 'Get the price details for a billing addon for an organization.
'
responses:
'200':
description: AddonPrice
content:
application/json:
schema:
$ref: '#/components/schemas/addonPrice'
deprecated: false
x-appwrite:
group: null
demo: organizations/get-addon-price.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: addon
description: Addon key identifier (e.g. baa).
required: true
schema:
type: string
example: baa
title: AddonKey
oneOf:
- type: string
enum:
- baa
title: baa
- type: string
enum:
- premiumgeodb
title: premiumgeodb
- type: string
enum:
- premiumgeodborg
title: premiumgeodborg
- type: string
enum:
- backup_recovery
title: backup_recovery
in: path
/organizations/{organizationId}/aggregations:
get:
summary: List aggregations
operationId: organizationsListAggregations
tags:
- organizations
description: Get a list of all aggregations for an organization.
responses:
'200':
description: Aggregation team list
content:
application/json:
schema:
$ref: '#/components/schemas/aggregationTeamList'
deprecated: false
x-appwrite:
group: null
demo: organizations/list-aggregations.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: teams.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: queries
description: 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to'
required: false
schema:
type: array
items:
type: string
default: []
in: query
/organizations/{organizationId}/aggregations/{aggregationId}:
get:
summary: Get aggregation
operationId: organizationsGetAggregation
tags:
- organizations
description: Get a specific aggregation using it's aggregation ID.
responses:
'200':
description: Team
content:
application/json:
schema:
$ref: '#/components/schemas/aggregationTeam'
deprecated: false
x-appwrite:
group: null
demo: organizations/get-aggregation.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: teams.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: aggregationId
description: Invoice unique ID
required: true
schema:
type: string
example: <AGGREGATION_ID>
in: path
- name: limit
description: Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.
required: false
schema:
type: integer
format: int32
example: 0
default: 5
in: query
- name: offset
description: Offset value. The default value is 0. Use this param to manage pagination.
required: false
schema:
type: integer
format: int32
default: 0
in: query
/organizations/{organizationId}/billing-address:
patch:
summary: Set team's billing address
operationId: organizationsSetBillingAddress
tags:
- organizations
description: Set a billing address for an organization.
responses:
'200':
description: Organization
content:
application/json:
schema:
$ref: '#/components/schemas/organization'
deprecated: false
x-appwrite:
group: null
demo: organizations/set-billing-address.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
billingAddressId:
description: Unique ID of billing address
type: string
example: <BILLING_ADDRESS_ID>
required:
- billingAddressId
delete:
summary: Delete team's billing address
operationId: organizationsDeleteBillingAddress
tags:
- organizations
description: Delete a team's billing address.
responses:
'204':
description: No content
deprecated: false
x-appwrite:
group: null
demo: organizations/delete-billing-address.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
/organizations/{organizationId}/billing-addresses/{billingAddressId}:
get:
summary: Get billing address
operationId: organizationsGetBillingAddress
tags:
- organizations
description: Get a billing address using it's ID.
responses:
'200':
description: Address
content:
application/json:
schema:
$ref: '#/components/schemas/billingAddress'
deprecated: false
x-appwrite:
group: null
demo: organizations/get-billing-address.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: billingAddressId
description: Unique ID of billing address
required: true
schema:
type: string
example: <BILLING_ADDRESS_ID>
in: path
/organizations/{organizationId}/billing-email:
patch:
summary: Set team's billing email
operationId: organizationsSetBillingEmail
tags:
- organizations
description: Set the current billing email for the organization.
responses:
'200':
description: Organization
content:
application/json:
schema:
$ref: '#/components/schemas/organization'
deprecated: false
x-appwrite:
group: null
demo: organizations/set-billing-email.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
billingEmail:
description: Billing email for the organization.
type: string
example: email@example.com
format: email
required:
- billingEmail
/organizations/{organizationId}/budget:
patch:
summary: Update organization budget
operationId: organizationsUpdateBudget
tags:
- organizations
description: Update the budget limit for an organization.
responses:
'200':
description: Organization
content:
application/json:
schema:
$ref: '#/components/schemas/organization'
deprecated: false
x-appwrite:
group: null
demo: organizations/update-budget.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization Unique ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
budget:
description: Budget limit for additional usage set for the organization
type: integer
example: 0
format: int32
nullable: true
alerts:
description: Budget alert limit percentage
type: array
default:
- 75
items:
type: integer
required:
- budget
/organizations/{organizationId}/credits:
get:
summary: List credits
operationId: organizationsListCredits
tags:
- organizations
description: 'List all credits for an organization.
'
responses:
'200':
description: CreditList
content:
application/json:
schema:
$ref: '#/components/schemas/creditList'
deprecated: false
x-appwrite:
group: null
demo: organizations/list-credits.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: queries
description: 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, couponId, credits, expiration, status'
required: false
schema:
type: array
items:
type: string
default: []
in: query
post:
summary: Add credits from coupon
operationId: organizationsAddCredit
tags:
- organizations
description: Add credit to an organization using a coupon.
responses:
'201':
description: Credit
content:
application/json:
schema:
$ref: '#/components/schemas/credit'
deprecated: false
x-appwrite:
group: null
demo: organizations/add-credit.md
rate-limit: 10
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.write
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
couponId:
description: ID of the coupon
type: string
example: <COUPON_ID>
required:
- couponId
/organizations/{organizationId}/credits/available:
get:
summary: Get available credits
operationId: organizationsGetAvailableCredits
tags:
- organizations
description: Get total available valid credits for an organization.
responses:
'200':
description: CreditAvailable
content:
application/json:
schema:
$ref: '#/components/schemas/creditAvailable'
deprecated: false
x-appwrite:
group: null
demo: organizations/get-available-credits.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
/organizations/{organizationId}/credits/{creditId}:
get:
summary: Get credit details
operationId: organizationsGetCredit
tags:
- organizations
description: Get credit details.
responses:
'200':
description: Credit
content:
application/json:
schema:
$ref: '#/components/schemas/credit'
deprecated: false
x-appwrite:
group: null
demo: organizations/get-credit.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: billing.read
platforms:
- console
packaging: false
public: true
auth:
console:
Project: []
security:
- Project: []
parameters:
- name: organizationId
description: Organization ID
required: true
schema:
type: string
example: <ORGANIZATION_ID>
in: path
- name: creditId
# --- truncated at 32 KB (156 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-organizations-api-openapi.yml