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.
https://deployfast.app/api/v1Autenticació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
readGETMonitorización, dashboardsread+writeGET, POST, PUT, DELETEAgentes IA, CI/CDErrores de autenticación
401API key inválida, revocada o expirada403La clave no tiene scope write para esta operaciónQuick 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
/meInfo del usuario autenticado: email, plan, límites
Proyectos
/projectsListar todos los proyectos con último deploy
/projects/:idDetalle del proyecto
/projectsCrear proyecto (name, repoUrl, branch, rootDir)· requiere scope write
/projects/:idEliminar proyecto (soft delete)· requiere scope write
Deployments
/projects/:id/deploymentsHistorial paginado (?page=1&limit=20)
/projects/:id/deployDisparar deploy (?body: branch opcional)· requiere scope write
/deployments/:idEstado de un deploy (QUEUED/BUILDING/SUCCESS/FAILED)
/deployments/:id/logsÚltimas N líneas de log (?lines=100, max 500)
/deployments/:id/rollbackRollback a un deploy SUCCESS· requiere scope write
Variables de entorno
/projects/:id/envListar claves (sin valores, por seguridad)
/projects/:id/env/:keyCrear o actualizar variable (body: value, environment)· requiere scope write
/projects/:id/env/:keyEliminar variable (?environment=PRODUCTION)· requiere scope write
Bases de datos
/databasesListar bases de datos del usuario
/databases/:idDetalle de una base de datos
/databasesCrear base de datos (name, engine: POSTGRES|REDIS)· requiere scope write
/databases/:id/startArrancar base de datos· requiere scope write
/databases/:id/stopParar 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
donePara 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_aquiY 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/:KEYClaude (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",...}