Introducción

La API REST de DeployFast te permite controlar toda tu infraestructura desde scripts, pipelines CI/CD o agentes de IA. Puedes gestionar proyectos, disparar deploys, leer logs, configurar variables de entorno y manejar bases de datos.

URL base: https://deployfast.app/api/v1

Autenticación

Todas las peticiones deben incluir una API Key en el header Authorization. Genera tus claves en Mi cuenta → API Keys.

Authorization: Bearer dfk_live_a3f8c21e9b047d6e...

Tipos de clave

ScopeMétodos permitidosUso recomendado
readGETMonitorización, dashboards
read+writeGET, POST, PUT, DELETEAgentes IA, CI/CD

Errores de autenticación

401API key inválida, revocada o expirada
403La clave no tiene scope write para esta operación

Quick start

Despliega un proyecto en 4 comandos:

# 1. Obtén tu API key en /account → API Keys

# 2. Crea un proyecto
curl -X POST https://deployfast.app/api/v1/projects \
  -H "Authorization: Bearer $DEPLOYFAST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"mi-app","repoUrl":"https://github.com/tu/repo","branch":"main"}'

# 3. Dispara el primer deploy
curl -X POST https://deployfast.app/api/v1/projects/{id}/deploy \
  -H "Authorization: Bearer $DEPLOYFAST_KEY"

# 4. Consulta el estado
curl https://deployfast.app/api/v1/deployments/{deploymentId} \
  -H "Authorization: Bearer $DEPLOYFAST_KEY"
# → {"status":"SUCCESS","url":"https://mi-app--usuario.deployfast.app"}

Referencia de endpoints

Cuenta

GET
/me

Info del usuario autenticado: email, plan, límites

Proyectos

GET
/projects

Listar todos los proyectos con último deploy

GET
/projects/:id

Detalle del proyecto

POST
/projects

Crear proyecto (name, repoUrl, branch, rootDir)· requiere scope write

DELETE
/projects/:id

Eliminar proyecto (soft delete)· requiere scope write

Deployments

GET
/projects/:id/deployments

Historial paginado (?page=1&limit=20)

POST
/projects/:id/deploy

Disparar deploy (?body: branch opcional)· requiere scope write

GET
/deployments/:id

Estado de un deploy (QUEUED/BUILDING/SUCCESS/FAILED)

GET
/deployments/:id/logs

Últimas N líneas de log (?lines=100, max 500)

POST
/deployments/:id/rollback

Rollback a un deploy SUCCESS· requiere scope write

Variables de entorno

GET
/projects/:id/env

Listar claves (sin valores, por seguridad)

PUT
/projects/:id/env/:key

Crear o actualizar variable (body: value, environment)· requiere scope write

DELETE
/projects/:id/env/:key

Eliminar variable (?environment=PRODUCTION)· requiere scope write

Bases de datos

GET
/databases

Listar bases de datos del usuario

GET
/databases/:id

Detalle de una base de datos

POST
/databases

Crear base de datos (name, engine: POSTGRES|REDIS)· requiere scope write

POST
/databases/:id/start

Arrancar base de datos· requiere scope write

POST
/databases/:id/stop

Parar base de datos· requiere scope write

Ejemplos

Node.js — Trigger de deploy y esperar resultado

const KEY = process.env.DEPLOYFAST_KEY;
const BASE = 'https://deployfast.app/api/v1';

async function deployAndWait(projectId) {
  // 1. Disparar deploy
  const { data: deployment } = await fetch(`${BASE}/projects/${projectId}/deploy`, {
    method: 'POST',
    headers: { Authorization: `Bearer ${KEY}` },
  }).then(r => r.json());

  // 2. Polling cada 5s hasta que termine
  while (true) {
    await new Promise(r => setTimeout(r, 5000));
    const { data } = await fetch(`${BASE}/deployments/${deployment.id}`, {
      headers: { Authorization: `Bearer ${KEY}` },
    }).then(r => r.json());

    if (data.status === 'SUCCESS') {
      console.log('✓ Deploy completado:', data.url);
      return data;
    }
    if (data.status === 'FAILED') {
      throw new Error('Deploy fallido');
    }
    console.log('⠸ Estado:', data.status);
  }
}

Python — Listar proyectos y estado

import os, requests

KEY = os.environ['DEPLOYFAST_KEY']
BASE = 'https://deployfast.app/api/v1'
HEADERS = {'Authorization': f'Bearer {KEY}'}

# Listar proyectos
projects = requests.get(f'{BASE}/projects', headers=HEADERS).json()
for p in projects:
    last = p['deployments'][0] if p['deployments'] else None
    status = last['status'] if last else 'sin deploys'
    print(f"{p['name']:30} {status}")

GitHub Actions — Deploy automático en merge a main

name: Deploy to DeployFast
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger deploy
        run: |
          RESPONSE=$(curl -s -X POST \
            https://deployfast.app/api/v1/projects/${{ vars.PROJECT_ID }}/deploy \
            -H "Authorization: Bearer ${{ secrets.DEPLOYFAST_KEY }}")
          echo "Deploy ID: $(echo $RESPONSE | jq -r .id)"

      - name: Wait for deploy
        run: |
          while true; do
            STATUS=$(curl -s \
              https://deployfast.app/api/v1/deployments/$DEPLOY_ID \
              -H "Authorization: Bearer ${{ secrets.DEPLOYFAST_KEY }}" | jq -r .status)
            echo "Status: $STATUS"
            [ "$STATUS" = "SUCCESS" ] && exit 0
            [ "$STATUS" = "FAILED" ] && exit 1
            sleep 5
          done

Para agentes de IA

DeployFast está diseñado para ser usado por agentes de IA como Cursor, Claude o Windsurf. Dale tu API key al agente y podrá gestionar tus deploys directamente desde el editor.

Cursor / Windsurf

Añade esto a tu configuración del agente:

DEPLOYFAST_KEY=dfk_live_tu_clave_aqui

Y dale este contexto al agente:

Tienes acceso a DeployFast via API en https://deployfast.app/api/v1
Authorization: Bearer $DEPLOYFAST_KEY

Puedes:
- Listar proyectos: GET /projects
- Ver estado del último deploy: GET /projects/:id
- Hacer deploy: POST /projects/:id/deploy
- Ver logs si falla: GET /deployments/:id/logs?lines=100
- Rollback: POST /deployments/:id/rollback
- Gestionar env vars: PUT /projects/:id/env/:KEY

Claude (MCP / Tools)

Ejemplo de herramienta para Claude:

{
  "name": "deployfast_deploy",
  "description": "Dispara un deploy en DeployFast para un proyecto",
  "parameters": {
    "project_id": { "type": "string", "description": "ID del proyecto" },
    "branch": { "type": "string", "description": "Rama a desplegar (default: main)" }
  }
}

Principio de mínimo privilegio

Para agentes IA de monitorización, crea una clave de solo lectura. Solo usa claves con escritura cuando el agente necesite hacer deploys activamente.

Bases de datos vía API

Crea y gestiona bases de datos PostgreSQL y Redis directamente desde tu código o agente.

# Crear una base de datos PostgreSQL
curl -X POST https://deployfast.app/api/v1/databases \
  -H "Authorization: Bearer $DEPLOYFAST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"mi-postgres","engine":"POSTGRES","version":"16"}'
# → {"id":"db_xxx","status":"PROVISIONING",...}

# Consultar estado (esperar RUNNING)
curl https://deployfast.app/api/v1/databases/db_xxx \
  -H "Authorization: Bearer $DEPLOYFAST_KEY"
# → {"status":"RUNNING","internalHost":"postgres-mi-postgres.user-42.internal",...}