Use CloudBase HTTP API to access CloudBase platform features (database, authentication, cloud functions, cloud hosting, cloud storage, AI) via HTTP protocol from backends or scripts that are not...
Use this skill whenever you need to call CloudBase platform features via raw HTTP APIs, for example:
Do not use this skill for:
@cloudbase/js-sdk (use CloudBase Web skills)@cloudbase/node-sdk (use CloudBase Node skills)Clarify the scenario
env – CloudBase environment IDDetermine the base URL
Set up authentication
Authorization: Bearer <token> header to requests.Download and reference OpenAPI Swagger documentation
# Download MySQL RESTful API swagger
curl -o mysqldb.yaml https://docs.cloudbase.net/openapi/mysqldb.v1.openapi.yaml
# Or use wget
wget https://docs.cloudbase.net/openapi/mysqldb.v1.openapi.yaml -O mysqldb.yaml
CloudBase HTTP API is a set of interfaces for accessing CloudBase platform features via HTTP protocol, supporting database, user authentication, cloud functions, cloud hosting, cloud storage, AI, and more.
⚠️ IMPORTANT: Always download and reference OpenAPI Swagger files for accurate API specifications
Before implementing any HTTP API calls, you should:
Download the relevant OpenAPI Swagger file using curl or wget:
# Download MySQL RESTful API swagger
curl -o mysqldb.yaml https://docs.cloudbase.net/openapi/mysqldb.v1.openapi.yaml
# Or use wget
wget https://docs.cloudbase.net/openapi/mysqldb.v1.openapi.yaml -O mysqldb.yaml
Available OpenAPI Swagger URLs:
Parse and use the swagger documentation:
Never invent API endpoints or parameters - always base your implementation on the official swagger documentation.
Before starting, ensure you have:
CloudBase HTTP API requires authentication. Choose the appropriate method based on your use case:
Applicable environments: Client/Server
User permissions: Logged-in user permissions
How to get: Reference Authentication API swagger: https://docs.cloudbase.net/openapi/auth.v1.openapi.yaml
Applicable environments: Server
User permissions: Administrator permissions
⚠️ Warning: Tokens are critical credentials for identity authentication. Keep them secure. API Key must NOT be used in client-side code.
Applicable environments: Client/Server
User permissions: Anonymous user permissions
💡 Note: Can be exposed in browsers, used for requesting publicly accessible resources, effectively reducing MAU.
CloudBase HTTP API uses unified domain names for API calls. The domain varies based on the environment's region.
For environments in domestic regions like Shanghai (ap-shanghai), use:
https://{your-env}.api.tcloudbasegateway.com
Replace {your-env} with the actual environment ID. For example, if environment ID is cloud1-abc:
https://cloud1-abc.api.tcloudbasegateway.com
For environments in international regions like Singapore (ap-singapore), use:
https://{your-env}.api.intl.tcloudbasegateway.com
Replace {your-env} with the actual environment ID. For example, if environment ID is cloud1-abc:
https://cloud1-abc.api.intl.tcloudbasegateway.com
Add the token to the request header:
Authorization: Bearer <access_token/apikey/publishable_key>
:::warning Note
When making actual calls, replace the entire part including angle brackets (< >) with your obtained key. For example, if the obtained key is eymykey, fill it as:
Authorization: Bearer eymykey
:::
curl -X POST "https://your-env-id.api.tcloudbasegateway.com/v1/functions/YOUR_FUNCTION_NAME" \
-H "Authorization: Bearer <access_token/apikey/publishable_key>" \
-H "Content-Type: application/json" \
-d '{"name": "张三", "age": 25}'
For detailed API specifications, always download and reference the OpenAPI Swagger files mentioned above.
The MySQL RESTful API provides all MySQL database operations via HTTP endpoints.
Support three domain access patterns:
https://{envId}.api.tcloudbasegateway.com/v1/rdb/rest/{table}https://{envId}.api.tcloudbasegateway.com/v1/rdb/rest/{schema}/{table}https://{envId}.api.tcloudbasegateway.com/v1/rdb/rest/{instance}/{schema}/{table}Where:
envId is the environment IDinstance is the database instance identifierschema is the database nametable is the table nameIf using the system database, recommend pattern 1.
| Header | Parameter | Description | Example |
|---|---|---|---|
| Accept | application/json, application/vnd.pgrst.object+json |
Control data return format | Accept: application/json |
| Content-Type | application/json, application/vnd.pgrst.object+json |
Request content type | Content-Type: application/json |
| Prefer | Operation-dependent feature values | - return=representation Write operation, return data body and headers- return=minimal Write operation, return headers only (default)- count=exact Read operation, specify count- resolution=merge-duplicates Upsert operation, merge conflicts- resolution=ignore-duplicates Upsert operation, ignore conflicts |
Prefer: return=representation |
| Authorization | Bearer <token> |
Authentication token | Authorization: Bearer <access_token> |
GET /v1/rdb/rest/{table}
Query Parameters:
select: Field selection, supports * or field list, supports join queries like class_id(grade,class_number)limit: Limit return countoffset: Offset for paginationorder: Sort field, format field.asc or field.descExample:
# Before URL encoding
curl -X GET 'https://your-env.api.tcloudbasegateway.com/v1/rdb/rest/course?select=name,position&name=like.%张三%&title=eq.文章标题' \
-H "Authorization: Bearer <access_token>"
# After URL encoding
curl -X GET 'https://your-env.api.tcloudbasegateway.com/v1/rdb/rest/course?select=name,position&name=like.%%E5%BC%A0%E4%B8%89%&title=eq.%E6%96%87%E7%AB%A0%E6%A0%87%E9%A2%98' \
-H "Authorization: Bearer <access_token>"
Response Headers:
Content-Range: Data range, e.g., 0-9/100 (0=start, 9=end, 100=total)POST /v1/rdb/rest/{table}
Request Body: JSON object or array of objects
Example:
curl -X POST 'https://your-env.api.tcloudbasegateway.com/v1/rdb/rest/course' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-H "Prefer: return=representation" \
-d '{
"name": "数学",
"position": 1
}'
PATCH /v1/rdb/rest/{table}
Request Body: JSON object with fields to update
Example:
curl -X PATCH 'https://your-env.api.tcloudbasegateway.com/v1/rdb/rest/course?id=eq.1' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-H "Prefer: return=representation" \
-d '{
"name": "高等数学",
"position": 2
}'
⚠️ Important: UPDATE requires a WHERE clause. Use query parameters like
?id=eq.1to specify conditions.
DELETE /v1/rdb/rest/{table}
Example:
curl -X DELETE 'https://your-env.api.tcloudbasegateway.com/v1/rdb/rest/course?id=eq.1' \
-H "Authorization: Bearer <access_token>"
⚠️ Important: DELETE requires a WHERE clause. Use query parameters to specify conditions.
| Error Code | HTTP Status | Description |
|---|---|---|
| INVALID_PARAM | 400 | Invalid request parameters |
| INVALID_REQUEST | 400 | Invalid request content: missing permission fields, SQL execution errors, etc. |
| INVALID_REQUEST | 406 | Does not meet single record return constraint |
| PERMISSION_DENIED | 401, 403 | Authentication failed: 401 for identity authentication failure, 403 for authorization failure |
| RESOURCE_NOT_FOUND | 404 | Database instance or table not found |
| SYS_ERR | 500 | Internal system error |
| OPERATION_FAILED | 503 | Failed to establish database connection |
| RESOURCE_UNAVAILABLE | 503 | Database unavailable due to certain reasons |
All POST, PATCH, DELETE operations: Request header with Prefer: return=representation means there is a response body, without it means only response headers.
POST, PATCH, DELETE response bodies are usually JSON array type []. If request header specifies Accept: application/vnd.pgrst.object+json, it will return JSON object type {}.
If Accept: application/vnd.pgrst.object+json is specified but data quantity is greater than 1, an error will be returned.
When making requests, please perform URL encoding. For example:
Original request:
curl -i -X GET 'https://{{host}}/v1/rdb/rest/course?select=name,position&name=like.%张三%&title=eq.文章标题'
Encoded request:
curl -i -X GET 'https://{{host}}/v1/rdb/rest/course?select=name,position&name=like.%%E5%BC%A0%E4%B8%89%&title=eq.%E6%96%87%E7%AB%A0%E6%A0%87%E9%A2%98'
CloudBase platform provides an online debugging tool where you can test API interfaces without writing code:
⚠️ Always download and reference these OpenAPI Swagger files for accurate API specifications:
How to use swagger files:
curl -o mysqldb.yaml https://docs.cloudbase.net/openapi/mysqldb.v1.openapi.yaml
# Or: wget https://docs.cloudbase.net/openapi/mysqldb.v1.openapi.yaml -O mysqldb.yaml
/v1/rdb/rest/{table})env="your-env-id"
token="your-access-token-or-api-key"
base="https://${env}.api.tcloudbasegateway.com"
curl -X GET "${base}/v1/rdb/rest/table_name" \
-H "Authorization: Bearer ${token}" \
-H "Content-Type: application/json"
Always check HTTP status codes and error response format:
{
"code": "ERROR_CODE",
"message": "Error message details",
"requestId": "request-unique-id"
}
