Features
Queries the public access endpoint information of a tenant in a specified OceanBase Cloud database instance. This API returns detailed information such as the tenant's public domain name, port, status, and related proxy cluster configurations, which can be used to obtain the access endpoint required for connecting to the database over the public network.
API details
Constraints
The caller must have an AccessKey for accessing the multi-cloud API. For information about how to obtain the AccessKey ID and AccessKey Secret, see Manage AccessKeys.
Request path
GET /api/v2/instances/{instanceId}/tenants/{tenantId}/publicaddress
Request parameters
Path
Name |
Type |
Required |
Description |
Example value |
|---|---|---|---|---|
| instanceId | String | Yes | OceanBase Cloud instance ID. | obcluster-***** |
| tenantId | String | Yes | Tenant ID. | t4louaeei**** |
Query
Name |
Type |
Required |
Description |
Example value |
|---|---|---|---|---|
| requestId | String | Yes | Request ID used for tracking. | d04eabba**** |
Response parameters
Name |
Type |
Description |
Example value |
|---|---|---|---|
| success | Boolean | Whether the request was successful. | true |
| errorCode | String | Error code. | INVALID_PARAMETER |
| errorMessage | String | Error message. | Invalid parameter |
| data | Object | Response data. | None |
| cost | Number | Request duration. | 1.0 |
| server | String | Server address, typically the IP address of an OBServer node. | 10.0.0.10 |
| requestId | String | Request ID. | d04eabba**** |
| totalCount | Number | Total number of records. | 100.0 |
| extra | Object | Extended information. | {} |
data object fields
Name |
Type |
Description |
Example value |
|---|---|---|---|
| tenantId | String | Tenant ID. | t4louaeei**** |
| vpcId | String | VPC ID. | vpc-xxxx**** |
| userVpcOwnerId | String | Account ID of the user's VPC. | 20000600**** |
| vSwitchId | String | vSwitch ID. | vsw-xxxx**** |
| connectionZones | Array | Connection zones. | ['cn-hangzhou-i'] |
| connectionLogicalZones | Array | Logical zones associated with the endpoint. | ['cn-hangzhou-i'] |
| connectionReplicaType | String | Replica type accessed through the endpoint. | FULL |
| tenantEndpointId | String | Supplemental tenant endpoint ID for multi-cloud v5. | te-xxxxx**** |
| addressId | String | VIP service group name in a multi-cloud environment. | rs-private-internet-***** |
| addressStatus | String | Connection status. | ONLINE |
| serviceType | String | Service type. | PRIVATE |
| addressType | String | Address type. Valid values: MASTER and READONLY. |
MASTER |
| networkType | String | Network type. | INTRANET |
| role | String | Connection role. Valid values: READWRITE and READONLY. In some cases, a primary endpoint must also be distinguished by its read/write role. The primary endpoint of a standby database is read-only. |
READWRITE |
| userNameFormat | String | Username format used with the endpoint: single-part, two-part, or three-part. | TWO_PART |
| useSSL | Boolean | Whether SSL is enabled. | false |
| proxyClusterInfo | Object | ODP proxy cluster information associated with the tenant endpoint. | None |
| proxyClusterInfo.proxyClusterId | String | ODP proxy cluster ID. | proxy-12**** |
| proxyClusterInfo.proxyMode | String | ODP proxy mode. | DEDICATED |
| proxyClusterInfo.zone | String | Availability zone. | cn-hangzhou-i |
| proxyClusterInfo.unitSpec | String | Unit specification. | 2C4G |
| proxyClusterInfo.unitNum | Number | Number of units. | 1.0 |
| proxyClusterInfo.sharedUnitNumLimit | Integer | Maximum number of units for the proxy service in K8s shared mode. | 3 |
| proxyClusterInfo.exclusiveUnitNumLimit | Integer | Maximum number of units for the proxy service in K8s exclusive mode. | 3 |
| proxyClusterInfo.status | String | Current task or resource status. | ONLINE |
| proxyClusterInfo.proxyServiceVersion | String | Architecture version. | 4.2.1.0 |
| proxyClusterInfo.proxyVersion | String | Proxy version. | 4.2.1.0 |
| proxyClusterInfo.createTime | String | Creation time in UTC. | 2026-02-25 15:40:43+00:00 |
| proxyClusterInfo.expireTime | String | Expiration time. | 2020-12-23 04:14:48+00:00 |
| proxyClusterInfo.deployMode | String | Data replica mode (n, n-n, or n-n-n). |
1-1-1 |
| proxyClusterInfo.maxUnitNum | Number | Maximum number of Serverless ODP units, obtained from K8s ODPClusterSpec.maxUnitNum. |
3.0 |
| proxyClusterInfo.slaveZone | String | Standby zone. This field was added for commercial ODP and is returned only for primary-standby deployments across two or three zones. | cn-hangzhou-i |
| proxyClusterInfo.nodeDistribution | String | Node distribution. This field was added for commercial ODP and replaces deployMode. |
cn-hangzhou-i:1,cn-hangzhou-j:1 |
| proxyClusterInfo.nodeCpu | Number | Node specification. This field was added for commercial ODP and replaces unitSpec * unitNum. |
4.0 |
| proxyClusterInfo.nodeNum | Integer | Number of nodes. This field was added for commercial ODP. | 3 |
| proxyClusterInfo.deploymentArchitecture | String | Deployment architecture. For existing non-commercial ODP clusters, the value is SINGLE_AZ_DEPLOYMENT, DUAL_AZ_DEPLOYMENT, or MULTI_AZ_DEPLOYMENT. |
SINGLE_ZONE |
| proxyClusterInfo.proxyServerIds | Array | List of ODP proxy node IDs. | ['resour**** |
| odpVersion | String | ODP version. | 4.2.1 |
| readStrategyConfigResponse | Object | Read traffic policy configuration for the tenant endpoint. | None |
| readStrategyConfigResponse.odpVersion | String | ODP version. | 4.2.1 |
| readStrategyConfigResponse.trafficStrategy | String | Traffic policy. | ZONE_FIRST |
| readStrategyConfigResponse.replicaParams | Array | Selected replicas. | None |
| readStrategyConfigResponse.disasterRecoveryReplicaParams | Array | Disaster recovery replicas. | None |
| readStrategyConfigResponse.balancedStrategy | String | Balancing strategy. | BALANCED |
| readStrategyConfigResponse.disasterRecoveryStrategy | String | Disaster recovery strategy. Specifies to automatically query the primary replica when the secondary replica is unavailable. | PRIMARY_FIRST |
| addressMasterZoneId | String | Primary zone of the endpoint. | cn-hangz**** |
| loadBalanceType | String | Load balancing type. This parameter is required only for Alibaba Cloud and specifies whether to use NLB or CLB. | NLB |
| internetAddress | String | Public IP address. | 8.8.8.8 |
| internetPort | Integer | Public port. | 2881 |
| internetDomain | String | Public domain name. | pay-core-public.oceanbase.example.com |
| internetAddressStatus | String | Public endpoint status. | ONLINE |
| internetMaxConnectionNum | Integer | Maximum number of public network connections. | 10000 |
| internetMaxConnectionNumLimit | Integer | Limit on the maximum number of public network connections. | 20000 |
| internetRpcPort | Integer | Public RPC port. | 2882 |
| internetProxyClusterId | String | Public proxy cluster ID. | proxy-12**** |
| internetLoadBalanceType | String | Public endpoint load balancing type. | NLB |
| intranetAddress | String | Private IP address. | 10.0.0.10 |
| intranetPort | Integer | Private network port. | 2881 |
| intranetDomain | String | Private domain name. | pay-core-private.oceanbase.example.com |
| intranetAddressStatus | String | Private endpoint status. | ONLINE |
| maxConnectionNum | Integer | Maximum number of private network connections. | 10000 |
| maxConnectionNumLimit | Integer | Limit on the maximum number of private network connections. | 20000 |
| intranetRpcPort | Integer | Private RPC port. | 2882 |
| enableRPc | Boolean | Whether to enable RPC for direct load. | true |
| disableRpcReason | String | Reason why RPC cannot be enabled. | ODP proxy is not ready |
| intranetAddressMasterZoneId | String | Primary zone ID. | cn-hangz**** |
| intranetAddressSlaveZoneId | String | Standby zone ID. | cn-hangz**** |
| deleteSingleTunnelAddress | Boolean | Whether the primary Alibaba Cloud VPC endpoint can be deleted. | true |
| intranetProxyClusterId | String | Private network proxy cluster ID. | proxy-12**** |
| forceMigratedObproxyIntranetDeleteInternet | Boolean | If the primary endpoint for migration has both a private and public endpoint, deleting the private endpoint will also delete the public endpoint. | true |
| intranetLoadBalanceType | String | Private endpoint load balancing type. | NLB |
| privateLinkList | Array | PrivateLink information. | [{'endpointId': 'ep-xxxxxx', 'status': 'CONNECTED'}] |
| intranetPeeringAddress | String | Peering address. | 10.1.0.10 |
| intranetPeeringPort | Integer | Peering address port. | 2881 |
| intranetPeeringDomain | String | Peering address domain name. | pay-core-peering.oceanbase.example.com |
| intranetPeeringAddressStatus | String | Peering address status. | ONLINE |
| intranetPeeringMaxConnectionNum | Integer | Maximum number of connections for the peering address. | 10000 |
| peeringDstVpcId | String | Peer VPC ID. | vpc-peer**** |
| peeringDstCidrList | String | Peer CIDR block. | 10.1.0.0**** |
| peeringId | String | The ID of the peering connection. | pcx-xxxx**** |
| intranetPeeringProxyClusterId | String | Proxy cluster ID of the peering private endpoint. | proxy-12**** |
| intranetRagPort | Integer | Private RAG port. | 8080 |
| internetRagPort | Integer | Public RAG port. | 8080 |
| internetRagAddress | String | Public RAG address. | pay-core-rag-public.oceanbase.example.com |
| enableRagHttp | Boolean | Whether the RAG HTTP port is enabled. | false |
| isVirtualServerGroup | Boolean | Whether a virtual server group or primary-secondary server group is used when one side is migrated. | false |
| isMigrated | Integer | Whether one side of the cluster address is migrated. | 0 |
| userFormatConnStatus | String | Single-part connection status. | ONLINE |
| userFormatConnUnsupportedReason | String | Reason why single-part access cannot be enabled. | 2881 |
data.connectionLogicalZones[] object fields
Name |
Type |
Description |
Example value |
|---|---|---|---|
| data.connectionLogicalZones[] | String | Logical zone associated with the endpoint. | cn-hangzhou-i |
data.connectionZones[] object fields
Name |
Type |
Description |
Example value |
|---|---|---|---|
| data.connectionZones[] | String | Zone connected to the endpoint. | cn-hangzhou-i |
data.privateLinkList[] object fields
Name |
Type |
Description |
Example value |
|---|---|---|---|
| privateLinkStatus | String | PrivateLink status. | ONLINE |
| privateLinkServiceId | String | PrivateLink service endpoint ID. | resource**** |
| privateLinkEndpointId | String | PrivateLink endpoint ID. | resource**** |
| privateLinkEndpointVpcId | String | VPC ID of the PrivateLink endpoint. | vpc-xxxx**** |
| privateLinkEndpointSubnetId | String | Subnet ID of the PrivateLink endpoint. | resource**** |
| privateLinkServiceAccount | String | Primary account of the PrivateLink service. | 3 |
| privateLinkUserAccount | String | PrivateLink allowlist user account. | 3 |
| privateLinkDomain | String | Private domain name. | pay-core.oceanbase.example.com |
| intranetAddress | String | Private IP address. | 10.0.0.10 |
| intranetDomain | String | Private domain name. | pay-core-private.oceanbase.example.com |
| deletePrivateLink | Boolean | Whether the primary private IP address can be deleted. It cannot be deleted if it is associated with a global address. | true |
Examples
Request example
curl -X GET \
'https://api.example.com/api/v2/instances/{instanceId}/tenants/{tenantId}/publicaddress?requestId=d04eabba****' \
-H 'Authorization: Bearer <your_access_token>'
Response example
JSON format
{
"success": true,
"errorCode": "INVALID_PARAMETER",
"errorMessage": "Invalid parameter",
"data": {
"tenantId": "t4louaeei****",
"vpcId": "vpc-xxxx****",
"userVpcOwnerId": "20000600****",
"vSwitchId": "vsw-xxxx****",
"connectionZones": "---\n- \"cn-hangzhou-i\"",
"connectionLogicalZones": "---\n- \"cn-hangzhou-i\"",
"connectionReplicaType": "FULL",
"tenantEndpointId": "te-xxxxx****",
"addressId": "rs-private-internet-*****",
"addressStatus": "ONLINE",
"serviceType": "PRIVATE",
"addressType": "MASTER",
"networkType": "INTRANET",
"role": "READWRITE",
"userNameFormat": "TWO_PART",
"useSSL": false,
"proxyClusterInfo": {
"proxyClusterId": "proxy-12****",
"proxyMode": "DEDICATED",
"zone": "cn-hangzhou-i",
"unitSpec": "2C4G",
"unitNum": 1.0,
"sharedUnitNumLimit": 3,
"exclusiveUnitNumLimit": 3,
"status": "ONLINE",
"proxyServiceVersion": "4.2.1.0",
"proxyVersion": "4.2.1.0",
"createTime": "2026-02-25 15:40:43+00:00",
"expireTime": "2020-12-23 04:14:48+00:00",
"deployMode": "1-1-1",
"maxUnitNum": 3.0,
"slaveZone": "cn-hangzhou-i",
"nodeDistribution": "cn-hangzhou-i:1,cn-hangzhou-j:1",
"nodeCpu": 4.0,
"nodeNum": 3,
"deploymentArchitecture": "SINGLE_ZONE",
"proxyServerIds": "---\n- \"r****"
},
"odpVersion": "4.2.1",
"readStrategyConfigResponse": {
"odpVersion": "4.2.1",
"trafficStrategy": "ZONE_FIRST",
"replicaParams": [
{
"value": "prod",
"weight": 1,
"readOnlyReplicaType": "FULL"
}
],
"disasterRecoveryReplicaParams": [
{
"value": "prod",
"weight": 1,
"readOnlyReplicaType": "FULL"
}
],
"balancedStrategy": "BALANCED",
"disasterRecoveryStrategy": "PRIMARY_FIRST"
},
"addressMasterZoneId": "cn-hangz****",
"loadBalanceType": "NLB",
"internetAddress": "xxx.xxx.x.xxx:xxx",
"internetPort": 2881,
"internetDomain": "pay-core-public.oceanbase.example.com",
"internetAddressStatus": "ONLINE",
"internetMaxConnectionNum": 10000,
"internetMaxConnectionNumLimit": 20000,
"internetRpcPort": 2882,
"internetProxyClusterId": "proxy-12****",
"internetLoadBalanceType": "NLB",
"intranetAddress": "xxx.xxx.x.xxx:xxx",
"intranetPort": 2881,
"intranetDomain": "pay-core-private.oceanbase.example.com",
"intranetAddressStatus": "ONLINE",
"maxConnectionNum": 10000,
"maxConnectionNumLimit": 20000,
"intranetRpcPort": 2882,
"enableRPc": true,
"disableRpcReason": "ODP proxy is not ready",
"intranetAddressMasterZoneId": "cn-hangz****",
"intranetAddressSlaveZoneId": "cn-hangz****",
"deleteSingleTunnelAddress": true,
"intranetProxyClusterId": "proxy-12****",
"forceMigratedObproxyIntranetDeleteInternet": true,
"intranetLoadBalanceType": "NLB",
"privateLinkList": [
{
"privateLinkStatus": "ONLINE",
"privateLinkServiceId": "resource****",
"privateLinkEndpointId": "resource****",
"privateLinkEndpointVpcId": "vpc-xxxx****",
"privateLinkEndpointSubnetId": "resource****",
"privateLinkServiceAccount": "3",
"privateLinkUserAccount": "3",
"privateLinkDomain": "pay-core.oceanbase.example.com",
"intranetAddress": "xxx.xxx.x.xxx:xxx",
"intranetDomain": "pay-core-private.oceanbase.example.com",
"deletePrivateLink": true
}
],
"intranetPeeringAddress": "xxx.xxx.x.xxx:xxx",
"intranetPeeringPort": 2881,
"intranetPeeringDomain": "pay-core-peering.oceanbase.example.com",
"intranetPeeringAddressStatus": "ONLINE",
"intranetPeeringMaxConnectionNum": 10000,
"peeringDstVpcId": "vpc-peer****",
"peeringDstCidrList": "10.1.0.0****",
"peeringId": "pcx-xxxx****",
"intranetPeeringProxyClusterId": "proxy-12****",
"intranetRagPort": 8080,
"internetRagPort": 8080,
"internetRagAddress": "pay-core-rag-public.oceanbase.example.com",
"enableRagHttp": false,
"isVirtualServerGroup": false,
"isMigrated": 0,
"userFormatConnStatus": "ONLINE",
"userFormatConnUnsupportedReason": "2881"
},
"cost": 1.0,
"server": "xxx.xxx.x.xxx:xxx",
"requestId": "d04eabba****",
"totalCount": 100.0,
"extra": "{}"
}
