همهٔ سیستم‌ها عملیاتی‌اند

مرجع API · نسخهٔ v1

API دیتابیس مدیریت‌شده

سرویس‌های دیتابیس، دیتابیس‌ها و کاربران هر سرویس. این گروه با شناسهٔ database در فایل OpenAPI آمده و ۱۱ endpoint دارد.

نمونه‌های curl توکن را از متغیر محیطی IRANCLAUD_TOKEN می‌خوانند؛ ساخت توکن و تنظیم این متغیر در راهنمای شروع سریع آمده است.

GET /api/v1/databases/instances #

List your managed database instances

دسترسی لازم: database:read محدودیت نرخ: خواندن
پارامترهای Query (۱)
engine string
اختیاری Filter: mysql|mariadb|postgres|redis|mongodb
پاسخ‌ها (۴)
  • 200 Instances (unpaginated) data[]: uuidengineversionsizenamestatusfailureipv4portcreated_at
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:read
  • 429 rate_limited — read limit reached; wait Retry-After seconds (details.retry_after_sec)
نمونهٔ curl
curl
curl \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances"

بازگشت به فهرست این بخش

POST /api/v1/databases/instances #

Create a managed database instance (first hour is charged to the wallet)

دسترسی لازم: database:write محدودیت نرخ: تغییر
فیلدهای بدنه (JSON) (۴)
engine string
الزامی one of: mysql | mariadb | postgres | redis | mongodb
version string
الزامی mysql: 8.0|8.4 · mariadb: 11.4 · postgres: 14|15|16|17 · redis: 8 · mongodb: 7.0|8.0
size string
الزامی one of: mini | standard | plus
name string | null
اختیاری Optional label; empty or longer than 80 chars is ignored — max 80 chars
نمونهٔ بدنهٔ درخواست (JSON)
application/json
{
    "engine": "postgres",
    "version": "17",
    "size": "mini",
    "name": "app-db"
}
پاسخ‌ها (۶)
  • 200 Instance accepted; poll GET …/instances/{uuid} until status is running data: uuidengineversionsizenamestatusfailureipv4portcreated_at
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 422 validation_failed — details.fields.create: invalid engine/size, unsupported version, or insufficient wallet balance
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
  • 503 backend_error — the storage/database service did not complete the operation; retry later
نمونهٔ curl
curl
curl -X POST \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"engine":"postgres","version":"17","size":"mini","name":"app-db"}' \
  "https://iranclaud.ir/api/v1/databases/instances"

بازگشت به فهرست این بخش

GET /api/v1/databases/instances/{uuid} #

Get an instance with its databases and users

دسترسی لازم: database:read محدودیت نرخ: خواندن
پارامترهای مسیر (۱)
uuid string
الزامی Database instance UUID (36 chars)
پاسخ‌ها (۵)
  • 200 Instance detail data: instancedatabasesusers
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:read
  • 404 not_found — unknown instance or not yours
  • 429 rate_limited — read limit reached; wait Retry-After seconds (details.retry_after_sec)
نمونهٔ curl
curl
curl \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID"

بازگشت به فهرست این بخش

DELETE /api/v1/databases/instances/{uuid} #

Destroy an instance and all its data (irreversible)

دسترسی لازم: database:write محدودیت نرخ: تغییر
پارامترهای مسیر (۱)
uuid string
الزامی Database instance UUID (36 chars)
پاسخ‌ها (۵)
  • 200 Destroyed data: destroyed
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 404 not_found — unknown instance or not yours
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
نمونهٔ curl
curl
curl -X DELETE \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID"

بازگشت به فهرست این بخش

GET /api/v1/databases/instances/{uuid}/databases #

List databases of a running instance

دسترسی لازم: database:read محدودیت نرخ: خواندن
پارامترهای مسیر (۱)
uuid string
الزامی Database instance UUID (36 chars)
پاسخ‌ها (۵)
  • 200 Databases (unpaginated) data[]: namecharsetcreated_at
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:read
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet
  • 429 rate_limited — read limit reached; wait Retry-After seconds (details.retry_after_sec)
نمونهٔ curl
curl
curl \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/databases"

بازگشت به فهرست این بخش

POST /api/v1/databases/instances/{uuid}/databases #

Create a database (mysql, mariadb, postgres only)

دسترسی لازم: database:write محدودیت نرخ: تغییر
پارامترهای مسیر (۱)
uuid string
الزامی Database instance UUID (36 chars)
فیلدهای بدنه (JSON) (۲)
name string
الزامی Reserved names rejected (mysql, sys, information_schema, performance_schema; postgres, template0, template1) — pattern ^[A-Za-z0-9_]{1,63}$
charset string
اختیاری mysql/mariadb only; postgres always uses UTF8 — default: utf8mb4
نمونهٔ بدنهٔ درخواست (JSON)
application/json
{
    "name": "shop",
    "charset": "utf8mb4"
}
پاسخ‌ها (۷)
  • 200 Database created data: namecharsetcreated_at
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet
  • 422 validation_failed — details.fields.name: required, invalid/reserved name, or engine does not support this operation (redis, mongodb)
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
  • 503 backend_error — the storage/database service did not complete the operation; retry later
نمونهٔ curl
curl
curl -X POST \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"shop","charset":"utf8mb4"}' \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/databases"

بازگشت به فهرست این بخش

DELETE /api/v1/databases/instances/{uuid}/databases/{name} #

Drop a database (irreversible)

دسترسی لازم: database:write محدودیت نرخ: تغییر
پارامترهای مسیر (۲)
uuid string
الزامی Database instance UUID (36 chars)
name string
الزامی Database name, 1-64 chars [A-Za-z0-9_]
پاسخ‌ها (۶)
  • 200 Dropped data: destroyed
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet, or unknown database
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
  • 503 backend_error — the storage/database service did not complete the operation; retry later
نمونهٔ curl
curl
curl -X DELETE \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/databases/YOUR_NAME"

بازگشت به فهرست این بخش

GET /api/v1/databases/instances/{uuid}/users #

List database users of a running instance

دسترسی لازم: database:read محدودیت نرخ: خواندن
پارامترهای مسیر (۱)
uuid string
الزامی Database instance UUID (36 chars)
پاسخ‌ها (۵)
  • 200 Users (unpaginated; passwords never returned) data[]: usernamescopedatabasecreated_at
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:read
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet
  • 429 rate_limited — read limit reached; wait Retry-After seconds (details.retry_after_sec)
نمونهٔ curl
curl
curl \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/users"

بازگشت به فهرست این بخش

POST /api/v1/databases/instances/{uuid}/users #

Create a database user (mysql, mariadb, postgres only)

دسترسی لازم: database:write محدودیت نرخ: تغییر
پارامترهای مسیر (۱)
uuid string
الزامی Database instance UUID (36 chars)
فیلدهای بدنه (JSON) (۴)
username string
الزامی Reserved names rejected; postgres: no pg_ prefix — pattern ^[A-Za-z0-9_]{1,63}$
password string
الزامی Never echoed back — min 8 chars
scope string
اختیاری one of: readonly | readwrite | admin; default: readwrite
database string | null
اختیاری Restrict grants to one database; omitted = all databases
نمونهٔ بدنهٔ درخواست (JSON)
application/json
{
    "username": "app",
    "password": "YOUR_STRONG_PASSWORD",
    "scope": "readwrite",
    "database": "shop"
}
پاسخ‌ها (۷)
  • 200 User created data: usernamescopedatabasecreated_at
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet
  • 422 validation_failed — details.fields.username/password (required, min 8 chars) or details.fields.create (invalid/reserved username, invalid scope, engine not supported)
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
  • 503 backend_error — the storage/database service did not complete the operation; retry later
نمونهٔ curl
curl
curl -X POST \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username":"app","password":"YOUR_STRONG_PASSWORD","scope":"readwrite","database":"shop"}' \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/users"

بازگشت به فهرست این بخش

PATCH /api/v1/databases/instances/{uuid}/users/{username} #

Set a database user password

دسترسی لازم: database:write محدودیت نرخ: تغییر
پارامترهای مسیر (۲)
uuid string
الزامی Database instance UUID (36 chars)
username string
الزامی Database user name, 1-80 chars [A-Za-z0-9_]
فیلدهای بدنه (JSON) (۱)
password string
الزامی min 8 chars
نمونهٔ بدنهٔ درخواست (JSON)
application/json
{
    "password": "YOUR_NEW_STRONG_PASSWORD"
}
پاسخ‌ها (۷)
  • 200 Password updated data: updated
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet, or unknown user
  • 422 validation_failed — details.fields.password: min 8 chars
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
  • 503 backend_error — the storage/database service did not complete the operation; retry later
نمونهٔ curl
curl
curl -X PATCH \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"password":"YOUR_NEW_STRONG_PASSWORD"}' \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/users/YOUR_USERNAME"

بازگشت به فهرست این بخش

DELETE /api/v1/databases/instances/{uuid}/users/{username} #

Delete a database user

دسترسی لازم: database:write محدودیت نرخ: تغییر
پارامترهای مسیر (۲)
uuid string
الزامی Database instance UUID (36 chars)
username string
الزامی Database user name, 1-80 chars [A-Za-z0-9_]
پاسخ‌ها (۶)
  • 200 Deleted data: destroyed
  • 401 unauthenticated / token_invalid — missing or invalid token
  • 403 scope_missing — token lacks database:write
  • 404 not_found — unknown instance, not yours, or instance is not in status running yet, or unknown user
  • 429 rate_limited — write limit reached; wait Retry-After seconds (details.retry_after_sec)
  • 503 backend_error — the storage/database service did not complete the operation; retry later
نمونهٔ curl
curl
curl -X DELETE \
  -H "Authorization: Bearer $IRANCLAUD_TOKEN" \
  "https://iranclaud.ir/api/v1/databases/instances/YOUR_UUID/users/YOUR_USERNAME"

بازگشت به فهرست این بخش

همهٔ گروه‌های API