Skip to main content

AISIX Cloud Admin API

The AISIX Cloud Admin API is the stable, customer-facing automation contract for AISIX Cloud across its control-plane deployment options. It lets operators manage organization-scoped environments...

Caller API Keys

Environments

Models

Provider Keys

MCP Servers

A2A Agents

Members

  • GET List Members /members

    List organization members. Pagination is opt-in: omit page size to get the full member list in one response. page is only meaningful together with page size and is rejected without it.

  • POST Create Member /members

    Create a login-less member directly, bypassing the email-invitation handshake. The created principal can be added to teams and issued caller API keys immediately, but carries no dashboard credentials and can never sign in. The role is fixed to member.

Roles

  • PATCH Update Member Organization Role /members/{user_id}

    Replace a member's organization-wide role. Only an organization owner can assign roles. Assigning owner clears the member's environment role bindings because owners already have full access. The last owner cannot be demoted.

  • GET List Member Environment Role Bindings /members/{member_id}/role_bindings

    List the roles granted to one member in individual environments. Each binding adds its role to the member's organization role for resources inside that environment. It does not reduce the member's organization-level access or grant control over the environment object itself.

  • PUT Replace Member Environment Role Bindings /members/{member_id}/role_bindings

    Replace the member's complete set of environment-scoped role bindings. Send an empty array to remove every binding. Only an organization owner can change bindings. The target member cannot be an owner, and each environment can appear at most once. Changes can take up to 30...

  • GET List Roles /roles

    List the built-in owner, admin, and member roles together with every custom role defined in the authenticated organization.

  • POST Create Custom Role /roles

    Create an organization-scoped custom role. Its name is permanent because member and directory-sync assignments reference it by name. A custom role can grant only permission pairs available to the built-in admin role and cannot grant role management.

  • DELETE Delete Custom Role /roles/{role_name}

    Delete a custom role. Built-in roles cannot be deleted. A custom role must first be removed from members, pending invitations, directory-sync settings, and environment role bindings. Member assignments and environment bindings can be cleared through this API. Pending...

  • PATCH Update Custom Role /roles/{role_name}

    Update a custom role's description or replace its permissions. The role name cannot change. Built-in roles cannot be updated. Permission changes can take up to 30 seconds to propagate across control-plane replicas.

Guardrails

Cache Policies

Observability Exporters

Rate Limit Policies

Data Plane Nodes

  • GET List Data Plane Nodes /environments/{env_id}/dp_nodes

    List the data plane nodes that have connected to the environment. A node appears after its first status report; a gateway certificate that was issued but never used to connect is not listed. Each entry reflects the node's most recent report, including which configuration...

Rejected Resources

  • GET List Rejected Resources /environments/{env_id}/rejected_resources

    List configuration resources in the environment that at least one data plane node is currently refusing to apply. A save can succeed at the API and still be rejected at a gateway — for example when an older gateway version does not recognize a newer field. A rejected resource...

MCP Access Policies

  • GET Get Effective Permissions /environments/{env_id}/api_keys/{api_key_id}/effective_permissions

    Resolve the MCP tool access a caller API key ends up with once the environment layer, the key team's layer, and the key's own mcp access block are intersected. Every allow and deny pattern in the answer carries its source, and layers names the layers that constrain the key —...

  • GET Get MCP Access Policy /environments/{env_id}/mcp_policy

    Fetch the environment layer of the MCP tool ACL. It applies to every caller API key in the environment, intersected with the key's team layer and the key's own mcp access block. The layer is optional: mcp policy is null when the environment configures none, the same way the...

  • PUT Set MCP Access Policy /environments/{env_id}/mcp_policy

    Create or replace the environment layer of the MCP tool ACL. allow: [" "] covers every tool on every MCP server, including servers and tools registered later — choosing it is always an explicit decision, never a default. The layer narrows what keys can reach but never widens...

  • DELETE Delete MCP Access Policy /environments/{env_id}/mcp_policy

    Remove the environment layer of the MCP tool ACL. Keys with no team layer and no mcp access block of their own are then left with no layer at all, which means no MCP tool access; keys that configure their own layer keep it.

  • GET Get Team Entitlements /teams/{team_id}/entitlements

    Fetch the team's entitlements. The mcp block, when present, is the MCP ACL layer caller API keys bound to this team carry in every environment of the organization; it is intersected with the environment layer for those keys and can only narrow it. Absent means the team adds no...

  • PUT Set Team Entitlements /teams/{team_id}/entitlements

    Create, replace, or clear the team's entitlements. Setting the mcp block applies it to the team's caller API keys in every environment of the organization — identity-provider group changes synced to the team propagate automatically, with no per-key edits. Sending "mcp": null...

OIDC Providers

Claim Mappings

Passthrough Routes

Budgets

  • GET List Budgets /budgets

    List every budget in the organization, across all scopes, each with its current-period spend state. Budgets whose spend is not tracked as a single total (team member) return a zero-seeded state: the limit applies to each member of the team separately.

  • POST Create Budget /budgets

    Create a spending cap. Each target — identified by the scope + scope ref pair — can hold at most one budget; creating a second one for the same target is rejected with 409. A hard stop budget makes the gateway reject matching traffic with 429 budget exceeded once the period's...

  • GET Get Budget /budgets/{budget_id}

    Return one budget together with its current-period spend state. The state starts as a zero seed at creation and updates as spend is aggregated.

  • DELETE Delete Budget /budgets/{budget_id}

    Remove a budget. Spend tracking continues; only the cap is removed. Enforcement stops within a few seconds — in-flight traffic checked against a cached decision may still be rejected briefly.

  • PATCH Update Budget /budgets/{budget_id}

    Update a budget's name, limit, period, or enforcement mode. Fields left out keep their current values. The budget's scope and scope ref are fixed at creation — to cap a different target, create a new budget.

Notification Channels