Last updated: November 16, 2024

API Reference

Complete API documentation for the UnlimitBytes cloud platform.

Authentication

All API requests require authentication using an API key.

API Key Authentication

Include your API key in the request header:

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.unlimitbytes.com/v1/projects

Getting Your API Key

  1. Log in to your dashboard
  2. Navigate to Settings > API Keys
  3. Click Create New Key
  4. Copy and securely store your key

Base URL

https://api.unlimitbytes.com/v1

Rate Limiting

  • Free tier: 1,000 requests/hour
  • Pro tier: 10,000 requests/hour
  • Enterprise: Custom limits

Rate limit headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Projects

List Projects

Get all projects in your account.

Endpoint: GET /projects

Response:

{
  "projects": [
    {
      "id": "proj_abc123",
      "name": "My Project",
      "region": "us-east-1",
      "created_at": "2024-01-01T00:00:00Z",
      "status": "active"
    }
  ],
  "total": 1
}

Create Project

Create a new project.

Endpoint: POST /projects

Request:

{
  "name": "My New Project",
  "region": "us-east-1",
  "plan": "pro"
}

Response:

{
  "id": "proj_abc123",
  "name": "My New Project",
  "region": "us-east-1",
  "plan": "pro",
  "created_at": "2024-01-01T00:00:00Z"
}

Get Project

Get details of a specific project.

Endpoint: GET /projects/:id

Response:

{
  "id": "proj_abc123",
  "name": "My Project",
  "region": "us-east-1",
  "plan": "pro",
  "resources": {
    "deployments": 5,
    "databases": 2,
    "storage_gb": 50
  },
  "created_at": "2024-01-01T00:00:00Z"
}

Deployments

Deploy Application

Deploy an application to your project.

Endpoint: POST /projects/:project_id/deployments

Request:

{
  "name": "my-app",
  "git_url": "https://github.com/username/repo",
  "branch": "main",
  "env_vars": {
    "NODE_ENV": "production"
  }
}

Response:

{
  "id": "dep_xyz789",
  "name": "my-app",
  "status": "building",
  "url": "https://my-app-abc123.unlimitbytes.app",
  "created_at": "2024-01-01T00:00:00Z"
}

List Deployments

Get all deployments for a project.

Endpoint: GET /projects/:project_id/deployments

Response:

{
  "deployments": [
    {
      "id": "dep_xyz789",
      "name": "my-app",
      "status": "running",
      "url": "https://my-app-abc123.unlimitbytes.app",
      "created_at": "2024-01-01T00:00:00Z"
    }
  ]
}

Databases

Create Database

Create a new database instance.

Endpoint: POST /projects/:project_id/databases

Request:

{
  "name": "my-db",
  "type": "postgresql",
  "version": "15",
  "plan": "starter"
}

Response:

{
  "id": "db_def456",
  "name": "my-db",
  "type": "postgresql",
  "version": "15",
  "connection_string": "postgresql://user:pass@host:5432/dbname",
  "status": "provisioning"
}

Storage

Upload File

Upload a file to cloud storage.

Endpoint: POST /projects/:project_id/storage/upload

Request: Multipart form data

Response:

{
  "id": "file_ghi789",
  "name": "image.png",
  "url": "https://cdn.unlimitbytes.com/files/abc123/image.png",
  "size": 1024000,
  "uploaded_at": "2024-01-01T00:00:00Z"
}

Error Responses

All errors follow this format:

{
  "error": {
    "code": "invalid_request",
    "message": "Project name is required",
    "details": {
      "field": "name"
    }
  }
}

Error Codes

CodeStatusDescription
invalid_request400Invalid request parameters
unauthorized401Missing or invalid API key
forbidden403Insufficient permissions
not_found404Resource not found
rate_limit_exceeded429Too many requests
server_error500Internal server error

SDKs

Official SDKs available:

Webhooks

Configure webhooks to receive real-time notifications.

Example webhook payload:

{
  "event": "deployment.succeeded",
  "timestamp": "2024-01-01T00:00:00Z",
  "data": {
    "deployment_id": "dep_xyz789",
    "project_id": "proj_abc123",
    "url": "https://my-app-abc123.unlimitbytes.app"
  }
}

Support