Launchpad API

Deploy apps from container images with a single API call. Auto-scaling, custom domains, zero-downtime deploys, and built-in metrics for your applications.

← All APIs · VPS Co-Stream · Auth Pay Media Vault

Base URL

https://api.railscloud.co/v1

Authentication

Include your API key or JWT token in the Authorization header. All Launchpad endpoints require authentication and project membership.

# API key (programmatic access)
Authorization: Bearer dk_live_your_api_key

# JWT token (dashboard sessions)
Authorization: Bearer <jwt_token>

How It Works

Launchpad deploys containerized applications on our K3s infrastructure. Push a container image, we handle networking, TLS, load balancing, and scaling.

1 Create an app in your project with POST /projects/{slug}/apps
2 Deploy by providing a container image URL via POST /apps/{id}/deploy
3 We build, deploy, and assign a URL — your app is live in seconds
4 Push new versions to redeploy — zero-downtime rolling updates

Quick Start

# Create an app
curl -X POST https://api.railscloud.co/v1/projects/my-project/apps \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-api",
    "size": "app-sm"
  }'

# Response: {"data": {"id": "...", "name": "my-api", "status": "provisioning", ...}}

# Deploy a container image
curl -X POST https://api.railscloud.co/v1/apps/APP_ID/deploy \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"image": "hub.railscloud.co/my-org/my-api:v1.0.0"}'

# Response: {"data": {"status": "deploying", "version": "v1.0.0", ...}}

Endpoints

App Management

POST /projects/{slug}/apps Create a new app
GET /projects/{slug}/apps List all apps in a project
GET /apps/{id} Get app details
DELETE /apps/{id} Permanently delete an app

Deployments

POST /apps/{id}/deploy Deploy a new version from a container image

Metrics

GET /apps/{id}/metrics CPU, memory, request count, and response times

Example: CI/CD Deployment

Add this to your CI pipeline to deploy on every push to main.

# Build and push your image to Rails Cloud Registry
podman build -t hub.railscloud.co/my-org/my-api:$GIT_SHA .
podman push hub.railscloud.co/my-org/my-api:$GIT_SHA

# Deploy the new version
curl -X POST https://api.railscloud.co/v1/apps/APP_ID/deploy \
  -H "Authorization: Bearer dk_live_your_key" \
  -H "Content-Type: application/json" \
  -d "{\"image\": \"hub.railscloud.co/my-org/my-api:$GIT_SHA\"}"

Example: Using the CLI

# Create an app
rc app create --name my-api --size app-sm --project my-project

# Deploy
rc app deploy --app my-api --image hub.railscloud.co/my-org/my-api:latest

# Check metrics
rc app metrics --app my-api

# Delete an app
rc app delete --app my-api

Rate Limits

Create / delete 10 per minute
Deploy 30 per hour
Read operations 120 per minute

Error Responses

All errors follow a standard format.

{
  "error": "image_not_found",
  "message": "The container image could not be pulled from the registry"
}
400 Invalid request body or missing fields
401 Invalid or missing authentication
403 Insufficient permissions for this project
404 App or project not found
422 Validation error (invalid image URL, duplicate name)
429 Rate limit exceeded
Deploy Your First App