Skyversal REST API, panelde yapabildiğiniz her şeyi programatik erişime açar — Skyversal CLI'ın konuştuğu yüzeyin ta kendisidir. Projeler, dağıtımlar, ortam değişkenleri, alan adları, yedekler, zamanlanmış görevler ve e-posta servisi buradan yönetilir.
İnteraktif deneme: uçları tarayıcıdan canlı çağırmak için
API Explorer'ı açın.
Makine-okunur spec: /api/openapi.yaml
(veya .json).
Kimlik doğrulama — cihaz kodu (RFC 8628)
POST /device/code→device_code+user_codedöner.- Kullanıcı
verification_uri'yi açıp kodu onaylar — şifre terminale hiç girmez. POST /device/token→ Beareraccess_tokendöner.- Tüm kimlikli isteklerde
Authorization: Bearer <token>gönderilir.
Yetki matrisi ve hız limitleri
Proje kapsamlı her uç {projectKey}'i sayısal id veya slug olarak çözer, sonra rolünüzü kontrol eder: owner > manager > developer > viewer. Okuma uçları viewer, yazma uçları manager ister. Yetkisiz veya olmayan proje 404 döner — kaynağın varlığı sızdırılmaz.
| Havuz | Limit |
|---|---|
| Okuma (kimlikli GET) | 60 istek/dk |
| Yazma (POST/PUT/PATCH/DELETE) | 10 istek/dk |
| Kaynak yükleme | 20 istek/dk |
| Cihaz kodu / token yoklama | 10 / 30 istek/dk |
| Herkese açık health & apps | 60 istek/dk |
Uç noktalar
Açıklamalar spesifikasyondaki gibidir (teknik terimler İngilizce kalır). Temel adres: https://skyversal.com/api/cli
Kimlik Doğrulama
/device/codeRequest a device code
Starts the device authorization flow. Returns the codes the user must approve in the browser.
Body (application/json): client_id — gerekli: client_id
200 · 422 · 429
/device/tokenPoll for an access token
Poll until the user approves (authorization_pending) or the code expires. On approval returns a Bearer token.
Body (application/json): client_id, grant_type, device_code — gerekli: client_id, grant_type, device_code
200 · 400 · 422 · 429
/whoamiCurrent token owner
200 · 401 · 429
Platform
/healthPlatform health
200 · 429
/appsInstallable app catalog
200 · 429
/apps/installInstall an app
Requires manager role.
Body (application/json): app_id — gerekli: app_id
200 · 401 · 422 · 429
/doctorConnectivity self-check
200 · 401 · 429
Projeler
/projectsList accessible projects
Owned + shared projects, sorted by name. Viewer role is enough.
200 · 401 · 429
/projectsCreate a project
Requires manager role. A verified e-mail address is required first (403 otherwise).
Body (application/json): name, framework, port — gerekli: name
201 · 401 · 403 · 422 · 429
/projects/{projectKey}Project detail
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/restartRestart the process
Requires manager role. Restarts the running container — no rebuild.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
Dağıtımlar
/projects/{projectKey}/deployTrigger a deploy
Requires manager role. Rebuilds from the linked source (GitHub/template) or the last uploaded artifact.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/deploysDeployment history
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/deploys/{deploymentId}Deployment status
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| deploymentId * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/deploys/{deploymentId}/logsDeployment build log
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| deploymentId * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/deploys/{deploymentId}/rollbackRoll back to a deployment
Requires manager role. Re-points traffic to a previous image — no rebuild.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| deploymentId * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/deploys/{deploymentId}/cancelCancel a deployment
Requires manager role. Queued deploys cancel immediately; running builds stop at the next checkpoint.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| deploymentId * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/uploadUpload source artifact
Requires manager role. Multipart upload of a .tar.gz source
snapshot (max 100 MB). Pass deploy=true to deploy right after.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (multipart/form-data): source, deploy — gerekli: source
200 · 401 · 404 · 422 · 429
Ortam Değişkenleri
/projects/{projectKey}/envList environment variables
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/envSet environment variables
Requires manager role. Keys must match ^[A-Za-z_][A-Za-z0-9_]*$.
Changes take effect on the next deploy.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): vars — gerekli: vars
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/env/{envKey}Delete an environment variable
Requires manager role.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| envKey * | path |
200 · 401 · 404 · 429
Log ve Metrikler
/projects/{projectKey}/logs/runtimeRuntime logs
Live application logs from the running container.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/logs/accessAccess log summary
IP / user-agent / path breakdown for the project's own domains.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/metricsResource metrics
CPU / RAM / disk usage of the running container.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
Alan Adları
/projects/{projectKey}/domainsList domains
Domains attached to the project, with SSL state.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/domainsAttach a domain
Requires manager role. Platform subdomains (*.skyversal.xyz etc.)
cannot be attached — they are auto-assigned. SSL starts as pending;
call verify once DNS has propagated.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): domain — gerekli: domain
200 · 401 · 404 · 409 · 422 · 429
/projects/{projectKey}/domains/{hostOrId}Detach a domain
Requires manager role.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| hostOrId * | path | Domain host (`www.example.com`) or numeric id. |
200 · 401 · 404 · 429
/projects/{projectKey}/domains/{hostOrId}/verifyVerify domain (DNS + TLS)
Requires manager role. Runs a real TLS handshake; writes active only when the certificate is live — never fabricated.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| hostOrId * | path | Domain host (`www.example.com`) or numeric id. |
200 · 401 · 404 · 429
Yedekler
/projects/{projectKey}/backupsList backups
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/backupsTake a backup now
Requires manager role. Runs asynchronously.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/backups/{id}Delete a backup
Requires manager role.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| id * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/backups/{id}/downloadDownload a backup
Returns the backup file for download. Viewer role is enough.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| id * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/backups/{id}/restoreRestore a backup
Requires manager role. Destructive — overwrites the live
database. Body confirm must exactly equal the backup's filename.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| id * | path | (integer) |
Body (application/json): confirm — gerekli: confirm
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/backup-scheduleRead backup schedule
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/backup-scheduleSet backup schedule
Requires manager role. Retention derives from interval (hourly → 3d, 3-hourly → 7d, daily → 30d). The newest successful backup is never pruned.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): every_hours
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/backup-scheduleSet backup schedule (PATCH)
Same as PUT — both verbs accepted.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): every_hours
200 · 401 · 404 · 422 · 429
Kaynak Sınırları
/projects/{projectKey}/scaleCurrent resource limits
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/scaleSet resource limits
Requires manager role. Values must stay under the plan +
add-on ceiling — raising the ceiling is billing's job; the API
returns 422 instead of silently clipping.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): ram_mb, cpu_mcpu, disk_mb
200 · 401 · 404 · 422 · 429
Zamanlanmış Görevler
/projects/{projectKey}/cronList scheduled jobs
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/cronCreate a scheduled job
Requires manager role. cron_expression is validated up front — an invalid expression is rejected instead of silently never running.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): name, command, cron_expression, timezone, timeout_seconds — gerekli: name, command, cron_expression
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/cron/{id}Delete a job
Requires manager role.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| id * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/cron/{id}/toggleEnable / disable a job
Requires manager role.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| id * | path | (integer) |
200 · 401 · 404 · 429
/projects/{projectKey}/cron/{id}/runRun a job now
Requires manager role. Fires the command immediately, outside the schedule.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
| id * | path | (integer) |
200 · 401 · 404 · 429
E-posta Servisi
/projects/{projectKey}/mailMail service status
Enabled state, sender domain, quota usage, DNS health.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mailConfigure mail service
Requires manager role. Set sender domain or toggle the service. Your MX records are never touched — inbound mail keeps working.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): domain, enabled
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/mailConfigure mail service (PATCH)
Same as PUT — both verbs accepted.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): domain, enabled
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/mailDisable mail service
Requires manager role. DNS records are kept — re-enable any time.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mail/relayRelay (SMTP) credentials info
Shared-relay SASL endpoint + username for direct SMTP use.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mail/dnsDNS records to publish
SPF + DKIM records needed for the sender domain.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mail/verifyVerify mail DNS
Live check whether published DNS matches expected records.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mail/usageQuota usage + trend
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mail/logSend history
Message-ID based send log for the project.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
/projects/{projectKey}/mail/testSend a test e-mail
Requires manager role. Fails cleanly when the service is off — enable first.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
Body (application/json): to — gerekli: to
200 · 401 · 404 · 422 · 429
/projects/{projectKey}/mail/provisionProvision / repair mail service
Requires manager role. (Re)creates SASL + DKIM for the project — idempotent repair path.
| Param | In | Açıklama / Type |
|---|---|---|
| projectKey * | path | Project numeric **id** or **slug**. |
200 · 401 · 404 · 429
Veritabanları
/databasesList databases
Account-scoped databases owned by the token user.
200 · 401 · 429
/databasesCreate a database
Requires manager-equivalent account scope.
Body (application/json): engine, name — gerekli: engine
200 · 401 · 422 · 429
/databases/{id}Delete a database
| Param | In | Açıklama / Type |
|---|---|---|
| id * | path | `project_303`, `standalone_8` or bare numeric id. |
200 · 401 · 404 · 429
/databases/{id}/credentialDatabase credentials
Connection credentials. Accepts project_303, standalone_8 or a bare 8 as id.
| Param | In | Açıklama / Type |
|---|---|---|
| id * | path | `project_303`, `standalone_8` or bare numeric id. |
200 · 401 · 404 · 429
Redis
/redisList Redis instances
Account-scoped Redis instances owned by the token user.
200 · 401 · 429
/redisCreate a Redis instance
200 · 401 · 422 · 429
/redis/{id}Delete a Redis instance
| Param | In | Açıklama / Type |
|---|---|---|
| id * | path | `project_303`, `standalone_8` or bare numeric id. |
200 · 401 · 404 · 429
Bu referans openapi.yaml dosyasından otomatik üretilir — spec güncellendikçe sayfa da güncellenir.