runtm-api
FastAPI control plane for Runtm. See the API docs for endpoint reference.
Hosted API: app.runtm.com
Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v0/deployments |
Create deployment (multipart: manifest + artifact.zip) |
| GET | /v0/deployments/:id |
Get deployment status, URL, timestamps, error |
| GET | /v0/deployments/:id/logs |
Get build/deploy logs |
Creating Deployments
POST /v0/deployments
Creates a new deployment or redeploys an existing one (based on manifest name).
Query Parameters:
new=true- Force creation of new deployment instead of redeploying existingtier=starter|standard|performance- Override machine tier from manifest
Request:
manifest(file) -runtm.yamlmanifest fileartifact(file) -artifact.zipcontaining project files
Headers:
Authorization: Bearer <token>- API authentication tokenIdempotency-Key: <key>- Optional idempotency key for retries
Example:
curl -X POST "http://localhost:8000/v0/deployments?tier=performance" \
-H "Authorization: Bearer $RUNTM_API_KEY" \
-F "manifest=@runtm.yaml" \
-F "artifact=@artifact.zip"
Machine Tiers:
All deployments use auto-stop for cost savings (machines stop when idle and start automatically on traffic).
| Tier | CPUs | Memory | Est. Cost |
|---|---|---|---|
starter (default) |
1 shared | 256MB | ~$2/month* |
standard |
1 shared | 512MB | ~$5/month* |
performance |
2 shared | 1GB | ~$10/month* |
*Costs are estimates for 24/7 operation. With auto-stop, costs are much lower for low-traffic services.
Development
# Install dependencies
pip install -e ".[dev]"
# Run migrations
alembic upgrade head
# Start server
uvicorn runtm_api.main:app --reload --host 0.0.0.0 --port 8000
# Run tests
pytest
Environment Variables
| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Required |
REDIS_URL |
Redis connection string | Required |
RUNTM_API_SECRET |
API authentication secret (what server validates against) | Required |
ARTIFACT_STORAGE_PATH |
Local artifact storage path | /artifacts |
ARTIFACT_STORAGE_BACKEND |
Storage backend: local or s3 |
local |
BUCKET_NAME |
S3/Tigris bucket name (when backend=s3) | - |
AWS_ENDPOINT_URL_S3 |
S3 endpoint URL (e.g. https://fly.storage.tigris.dev) |
- |
AUTH_MODE |
Auth mode: single_tenant or multi_tenant |
single_tenant |
Release files for runtm-api 0.2.140
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| runtm_api-0.2.140.tar.gz | 62.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runtm_api-0.2.140-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 124.1 kB
Release files / runtm_api-0.2.140.tar.gz
| Download URL | runtm_api-0.2.140.tar.gz |
|---|---|
| Size | 62.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01eb9e16e350d0a60751d2454f9a33c8c8a747dc4914465948dbbcc4b1a3c788
|
|
BLAKE2b-256 checksum How to use checksums |
39dd00570b431bee145400dd1a4e66f74b2b11ba97351166a573c51f6f76978f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / runtm_api-0.2.140-py3-none-any.whl
| Download URL | runtm_api-0.2.140-py3-none-any.whl |
|---|---|
| Size | 61.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b809ae8b46bcccfc4a973058f52a427d9324989b9dcddfbb87b1dc8d593abd86
|
|
BLAKE2b-256 checksum How to use checksums |
b0efe32f1ed62dcdd1b1ce61ae03df42cb6e585d38ff888b0535cc69ab038d3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|