Agent Control Tower GraphQL APIs
Currently, the Custom account APIs alone are available as public APIs.
Custom accounts list accounts and agents from providers not currently supported by the Agent Control Tower like the Amazon Bedrock Provider. Custom accounts helps list all your custom agents in one place. You can create multiple accounts representing different services and add, organize, and group agents. They act as an overarching container to manually register and list agents from providers that are currently not supported by Boomi.
The Custom Accounts GraphQL APIs expose many GraphQL queries and mutations to retrieve, create, and update data.
Benefits of Custom Accounts API include:
- Broader ecosystem support: Seamlessly integrate and manage third-party or custom AI providers not natively supported in ACT.
- Unified catalog: Centralize all providers, agents, and their relationships with tasks, tools, instructions, and associated models in ACT.
- Faster onboarding: Eliminate the need for backend enablement. You can directly onboard new providers and agents via APIs.
- Consistency across UI and API: Providers and agents created via APIs are automatically reflected in the ACT interface for unified visibility.
- Scalability: Support rapid expansion of the AI ecosystem as new providers emerge, without waiting for native integrations.
- Auditable: Every creation, update, and deletion is logged for full traceability and governance.
Authentication
-
Your Boomi platform account should have the
AI_AGENT_REGISTRYfeature enabled. -
All GraphQL requests require a valid JWT (JSON Web Token) for both authentication and authorization.
Step 1: Generate a JWT
Send a GET request to the following endpoint using Basic Authentication. This request returns a JWT in the response:
https://api.boomi.com/auth/jwt/generate/{accountID}
Username: BOOMI_TOKEN.username
Password: <Boomi_Platform_ApiToken>To learn how to create a new API token, refer to Adding new API Tokens on a User Account.
Step 2: Use the JWT for GraphQL API Requests
Include the JWT in the Authorization header for all GraphQL requests to
https://platform.boomi.com/graphql.Header format:
Authorization: Bearer <JWT>noteJWTs expire every five minutes. You must generate a new token once it expires.
Rate limits
The GraphQL APIs include rate limits to guard against large spikes of incoming requests and to improve share access equally across all incoming requests. Rate limiting is applied to the number of your requests running on each platform instance. Your requests can all go to the same runtime instance or distributed across instances.
If you send a large number of requests in succession, you might get a status code 429 as your error response to the request. This status code means that you sent too many requests. Allow your requests to clear out before you resubmit the requests.
Supported categories
| Operation | QUERY | MUTATION |
|---|---|---|
| Provider Account | ✅ Supported | ✅ Supported |
| AI Agent | ✅ Supported | ✅ Supported |
| Large language model | ✅ Supported | ✅ Supported |
| Task | ✅ Supported | ✅ Supported |
| Tools | ✅ Supported | ✅ Supported |
| Guardrails | ✅ Supported | ✅ Supported |
To learn more about available queries and mutations, refer to Operations. For object details, refer to Types.
Custom Accounts Error Codes
The possible error codes you are likely to encounter:
Error codes
| Error Code | Error Message |
|---|---|
INVALID_CREDENTIALS_INPUT | The credentials provided are either empty, invalid, or incorrectly formatted. |
INVALID_CREDENTIALS_KEY | The provided credentials are invalid, preventing successful authentication with the agent provider. |
PROVIDER_CONNECTION_FAILED | Unable to establish a connection to the Agent Provider. Please check the connection details and ensure the provider is reachable. |
INVALID_INPUT | The provided input contains invalid character or whitespace. Please ensure all inputs are correct and properly formatted. |
AUTHENTICATED_ACCOUNT_ID_MISSING | Unable to obtain authenticated account ID. |
PAGE_INDEX_INVALID | The provided page index is invalid. The page number must be 0 or greater. Please ensure the page number is valid. |
PAGE_SIZE_INVALID | The provided page size is invalid. The page size must be greater than 0. Please ensure the page size is valid. |
FETCH_AI_PROVIDER_ACCOUNT_ACCOUNT_ERROR | Unable to retrieve AI Agent Provider Account Details. |
INVALID_PROVIDER_ACCOUNT_ID | The provided provider account id is not in valid UUID format. |
TOOL_ALREADY_EXISTS | Tool with the provided externalId already exists for the supplied provider account ID. |
FETCH_AI_AGENT_TAG_ERROR | Unable to retrieve AI Agent Tag Details. |
INVALID_TOOL_ID | The provided tool id is not in valid UUID format. |
INVALID_TASK_ID | The provided task id is not in valid UUID format. |
TOOL_NOT_FOUND | Tool with the provided ID 0 could not be located. |
MISSING_TOOL_ID_OR_EXTERNAL_ID | Please ensure you provide either the Tool ID or the Tool External ID. |
STALE_UPDATE | Update rejected: The provided update at provider's timestamp is not newer. |
PROVIDER_ACCOUNT_NOT_FOUND | Provider account not found with the supplied ID 0. |
FETCH_AI_AGENT_PROVIDER_ERROR | Unable to retrieve AI Agent provider details. |
ACCOUNT_NOT_FOUND | The AI agent provider account corresponding to the supplied ID 0 could not be located. |
ACCOUNT_NAME_EMPTY | The supplied provider account name is either empty or null. |
INVALID_CREDENTIALS | The provided credentials are either empty or invalid. |
INVALID_AUTH_SCHEMA | The provided authentication schema is either empty or not of type AiProviderAuthSchema. |
INVALID_METADATA_JSON | The supplied metadata JSON is either empty or invalid. |
REGION_REQUIRED_IF_AUTH | The 'region' field is required when the 'authSchema' is set to 0. |
UNSUPPORTED_REGION | The provider region 0 is not supported. |
CROSS_ACCOUNT_MONITORING_CONFIG_FAILED | Unable to update cross-account monitoring configuration in region 0. |
EXTERNAL_ID_NOT_FOUND | The External ID required for cross-account monitoring setup could not be found. |
PRESIGNED_URL_GENERATION_FAILED | Failed to generate presigned URL for the CloudFormation template. |
INVALID_PROVIDER_ACCOUNT_STATUS | The provider account status provided is invalid. |
SSM_UPDATE_FAILED | The SSM update has failed. |
INVALID_EXTERNAL_PROVIDER_ACCOUNT_ID | The supplied external provider account ID is either null or empty. |
INVALID_CONNECTION_DETAILS | The health check connection failed due to the provided credentials for the authentication schema. |
DIFFERENT_EXTERNAL_PROVIDER_ACCOUNT_ID | The credentials supplied correspond to a different external provider account ID than the one linked to the current account. |
ACCOUNT_EXISTS_FOR_PROVIDER_ACCOUNT_ID_AND_TYPE | An AI agent registry account already exists for the specified provider account ID 0 and provider type 1. |
SYNC_AI_AGENT_TAG_ERROR | Error syncing tags. |
SYNC_PROVIDER_ACCOUNT_ERROR | Error while syncing Provider Account 0. |
FETCH_AI_AGENT_ERROR | Unable to retrieve AI Agents Details. |
AI_AGENT_NOT_FOUND | AI Agent not found. |
AI_AGENT_VERSION_NOT_FOUND | The specified AI Agent version ID does not correspond to any existing AI Agent version in the registry. |
AI_AGENT_TASK_NOT_FOUND | The specified AI Agent task ID does not correspond to any existing AI Agent task in the registry. |
AI_AGENT_TASK_NAME_ALREADY_EXIST | AI agent task name already exists. Please use a unique name. |
CREATE_AI_AGENT_TASK_ERROR | Unexpected error occurred while creating Task for provider account 0. Error: 1. |
AI_AGENT_TASK_NAME_REQUIRED | AI agent task name is required. Please provide a valid name. |
AI_AGENT_TASK_UPDATE_ERROR | Unexpected error occurred while updating AI Agent Task. Error: 0. |
AI_AGENT_ALIAS_NOT_FOUND | The specified AI Agent alias ID does not correspond to any existing AI Agent alias in the registry. |
AI_AGENT_CREATE_ERROR | Error while creating AI Agent. |
AI_AGENT_UPDATE_ERROR | Error while updating AI Agent. |
AI_AGENT_VERSION_ALREADY_EXISTS | Agent and version already exist. Please try updating. |
AI_AGENT_VERSION_TAG_ERROR | Error fetching tags for agent version with ID 0. |
AI_AGENT_AUTH_CHECK_ERROR | The logged-in account ID is not allowed to access this agent. |
INVALID_TRUST_LEVEL | The provided trust level is either null or not of type AiAgentRegistryTrustLevel. |
FAILED_TO_ADD_TRUST_LEVEL | Failed to add trust level for the provided agent version 0. |
INVALID_TAG_INPUT | The provided tags input is invalid, null, or empty. |
AI_AGENT_BY_VERSION_ERROR | Error while fetching AI Agent by version ID 0. |
AI_AGENT_BY_ALIAS_ERROR | Error while fetching AI Agent by alias ID 0. |
PROVIDER_ACCOUNT_DUPLICATE_CONSTRAINT | An agent provider account with the specified credentials already exists with idp account id 0. |
PROVIDER_ACCOUNT_DUPLICATE_NAME_CONSTRAINT | The account provider name already exists in the registry. Please choose a different name. |
BEDROCK_ACCOUNT_REGION_IS_CHANGED | The region field cannot be modified after the AWS Bedrock provider account has been established. |
GARDEN_ACCOUNT_ID_IS_CHANGED | The account ID field cannot be modified after the Boomi Agent Garden provider account has been established. |
FAILED_TO_ENABLE_AGENT_VERSION | Unable to enable the specified agent version: 0. |
FAILED_TO_DISABLE_AGENT_VERSION | Unable to disable the specified agent version: 0. |
FAILED_TO_ENABLE_AGENT_ALIAS | Unable to enable the specified agent alias: 0. |
FAILED_TO_DISABLE_AGENT_ALIAS | Unable to disable the specified agent alias: 0. |
FAILED_TO_DELETE_PROVIDER_ACCOUNT | Unable to delete the specified agent provider account: 0. |
FAILED_TO_DELETE_OAM_LINK | Unable to remove the OAM link in the customer's AWS account for monitoring account 0. |
ACCOUNT_NAME_TOO_LONG | The provided provider account name exceeds the maximum limit of 200 characters. |
INVALID_CONNECTION_DETAILS_FOR_AWS_BEDROCK | Connection validation failed: Invalid credentials or region specified for AWS Bedrock. |
PROVIDER_ACCOUNT_SYNC_IN_PROGRESS | A synchronization process is currently in progress. Please wait before retrying. |
INVALID_PROVIDER_TYPE | The specified agent provider account type is invalid or missing. |
FETCH_AI_AGENT_FILTER_ERROR | Unable to retrieve AI Agent filter Details. |
PROVIDER_ACCOUNT_DESCRIPTION_TOO_LONG | The provider account description exceeds the maximum limit of 1000 characters. |
INVALID_LLM_INPUT | The provided LLM input is either null or empty. |
AI_AGENT_CREATE_INPUT_NULL | The input provided for AI agent creation is either null or empty. |
AI_AGENT_NAME_REQUIRED | AI agent name is required. |
AI_AGENT_NAME_ALREADY_EXIST | AI agent name already exists. Please use a unique name. |
VERSION_ID_REQUIRED | AI agent version id is required. |
NON_CUSTOM_PROVIDER_AGENT | This operation is allowed only for custom provider type. |
EXTERNAL_ACCOUNT_ID_REQUIRED | Account ID of the system that has the AI agents is required. |
INVALID_AWS_ACCOUNT_ID | The provided AWS account ID 0 is invalid. |
FETCH_AI_AGENT_REFRESH_TRACKER_ERROR | Error while fetching AI Agent Refresh Tracker Status. |
FETCH_AI_AGENT_LLMS_ERROR | Error while fetching AI Agent LLMs for Account: 0. |
PROVIDER_ACCOUNT_ID_NOT_FOUND | One or more specified Provider Account IDs not found. |
NO_PROVIDER_ACCOUNTS_FOUND | Your account does not have any provider accounts. |
PROVIDER_ACCOUNT_SYNC_DISABLED | Agent sync failed. Syncing has been deactivated for the supplied provider account ID 0. |
LICENSE_NOT_FOUND_ERROR | License Not Found for provided Tier Id. |
UPDATE_LICENSE_LIMIT_ERROR | Error in updating license limit. |
UPDATE_IDP_ACCOUNT_TIER_LIMIT_ERROR | Error in updating IdP Account Tier license limit. |
UNABLE_TO_FIND_LICENSE_ASSOCIATION_ERROR | Unable to find the License Association for provided account. |
INVALID_OFFSET | Invalid pagination offset value. Must be ≥ 0. |
INVALID_LIMIT | Invalid pagination limit value. Must be > 0. |
OAM_LINK_ALREADY_PRESENT_ERROR | Oam Link is already present from your AWS account to the provider account. |
OAM_LINK_CREATION_FAILED_ERROR | Oam Link creation failed. |
INVALID_URL | The provided URL is invalid or missing. |
UNSUPPORTED_AUTH_SCHEMA | Invalid authentication schema 0 for provider 1. |
INVALID_CREDENTIALS_JSON | The supplied credentials JSON is either empty or invalid. |
INVALID_AGENT_VERSION_IDS | The provided agent version IDs are either empty or null. |
NO_LLM_INPUT_PROVIDED_TO_CREATE | No LLM input has been provided for creating the LLM. |
CREATE_AI_AGENT_LLM_ERROR | Unexpected error occurred while creating LLM for provider account 0. |
LLM_ALREADY_EXISTS | LLM with the provided parameters already exists. |
UPDATE_AI_AGENT_LLM_ERROR | Unexpected error occurred while updating LLM for id 0. |
LLM_NOT_FOUND | LLM not found for provided id 0. |
INVALID_LLM_EXTERNAL_ID | The provided LLM external id is either empty or null. |
LLM_EXTERNAL_ID_ALREADY_EXISTS | The provided LLM external id 0 already exists for current provider account id 1. |
INVALID_LLM_NAME | The provided LLM name is either empty or null. |
INVALID_AI_AGENT_LLM_ID | The provided LLM ID 0 is not in valid UUID format. |
INVALID_JSON | The provided JSON input is invalid for the field: 0. |
NO_ANOMALIES_FOUND | No agent anomalies found. |
FAILED_TO_FETCH_ANOMALIES | Failed to fetch agent anomalies for Provider Account ID: 0. |
FAILED_TO_FETCH_MULTIPLIER | Failed to fetch multiplier information for Agent ID: 0. |
INVALID_MULTIPLIER_VALUE | Invalid multiplier value provided. |
FAILED_OVERRIDE_MULTIPLIER | Failed to override multiplier value for Agent ID: 0. |
TOOL_MULTIPLE_ASSOCIATIONS_REQUIRE_DISASSOCIATION | Tool is associated with multiple entities. Specify which associations to remove. |
INVALID_ENTITY_TYPE | Invalid entity type 0. Only 1 entity types are allowed. |
DESCRIPTION_TOO_LONG | The 0 description exceeds the maximum limit of 2000 characters. |
DELETE_AI_AGENT_LLM_ERROR | Unexpected error occurred while deleting LLM for id 0. |
DELETE_AI_AGENT_LLM_VERSION_ASSOCIATIONS_NOT_FOUND_ERROR | LLM is not associated with the specified agent version IDs. |
LLM_INVALID_AGENT_VERSION_IDS | One or more invalid agent version ids provided. |
FIELD_TOO_LONG | The provided 0 exceeds the maximum limit of 1 characters. |
INVALID_FIELD_VALUE | The provided 0 cannot be null, empty, or contain only whitespace characters. |
DUPLICATE_EXTERNAL_ID | The tool resource external ID is already in use. |
INVALID_AI_AGENT_TOOL_IDS | The provided agent tool IDs are invalid. |
AI_AGENT_GUARDRAIL_ALREADY_EXISTS | Guardrail with the provided name already exists. |
AI_AGENT_GUARDRAIL_NOT_FOUND | The specified AI Agent Guardrail ID does not exist. |
CREATE_AI_AGENT_GUARDRAIL_ERROR | Unexpected error occurred while creating Guardrail for provider account 0. |
AI_AGENT_GUARDRAIL_NAME_REQUIRED | AI agent Guardrail name is required. |
AI_AGENT_GUARDRAIL_UPDATE_ERROR | Unexpected error occurred while updating AI Agent Guardrail. |
AGENT_ID_REQUIRED | At least one agent ID is required. |
INVALID_AI_AGENT_GUARDRAIL_ID | The provided guardrail ID is not in valid UUID format. |
AI_AGENT_GUARDRAIL_VERSION_ASSOCIATIONS_NOT_FOUND | Guardrail ID 0 is not associated with the specified agent version IDs. |
AI_AGENT_GUARDRAIL_DELETE_ERROR | Error during guardrail deletion for guardrail ID 0. |
AI_AGENT_TASK_DELETE_ERROR_DUE_TO_ASSOCIATIONS | Task cannot be deleted since it has associations. |
AI_AGENT_TOOL_DELETE_ERROR_DUE_TO_ASSOCIATIONS | Tool cannot be deleted since it has associations. |
AI_AGENT_GUARDRAIL_DELETE_ERROR_DUE_TO_ASSOCIATIONS | Guardrail cannot be deleted since it has associations. |
AI_AGENT_LLM_DELETE_ERROR_DUE_TO_ASSOCIATIONS | LLM cannot be deleted since it has associations. |
AGENT_VERSION_ALREADY_EXISTS | Agent version with name 0 and version 1 already exists for agent 2. |
INVALID_AGENT_ID | Invalid Agent ID provided: 0. |
INVALID_AGENT_VERSION | Provided version is invalid. |
VERSION_EDIT_NOT_ALLOWED | Version can only be edited when status is draft. |
INVALID_RELATED_ENTITY_ID | Provided entity id:0 does not belong to the same provider account. |
AI_AGENT_TOOL_ALREADY_EXISTS | Tool with the provided name already exists. |
PROVIDER_ACCOUNT_MISMATCH | Provided id does not belong to the same provider account. |
AI_AGENT_TASK_VERSION_ASSOCIATIONS_NOT_FOUND | Task ID 0 is not associated with the specified agent version IDs. |
The 0, 1, etc. placeholders in the error messages are replaced with actual values at runtime using Java's MessageFormat.