FXCode
ENTRAR →
Doc. 05 — Conectores

API REST

Proyectos, tareas y notas desde tus scripts y servicios, con tokens personales y permisos por recurso.

La API pública está versionada bajo /api/v1. En el servicio gestionado la base es https://api.fxcode.dev/api/v1; en una instalación propia, la dirección de tu API seguida de /api/v1.

Autenticación

Crea un token personal en Ajustes → Tokens de API. Elige solo los permisos que necesites; el token se muestra una sola vez y empieza por fxc_. Mándalo en cada petición:

curl -H "Authorization: Bearer fxc_TU_TOKEN" https://api.fxcode.dev/api/v1/projects
Permiso Permite
projects:read Listar y ver proyectos
tasks:read / tasks:write Leer / crear, editar y borrar tareas
notes:read / notes:write Leer / crear, editar y borrar notas

Un token sin permisos marcados tiene acceso completo. Puedes revocarlo cuando quieras desde la misma pantalla.

Solo ves los proyectos donde eres miembro del equipo. Un proyecto ajeno responde 404, igual que uno que no existe.

Endpoints

Método y ruta Permiso Qué hace
GET /projects projects:read Tus proyectos (los fijados primero)
GET /projects/:id projects:read Un proyecto
GET /projects/:id/tasks tasks:read Las tareas de un proyecto
GET /tasks?projectId= tasks:read Tareas de tus proyectos, opcionalmente de uno
GET /tasks/:id tasks:read Una tarea
POST /tasks tasks:write Crea una tarea
PUT /tasks/:id tasks:write Edita una tarea (solo los campos que mandes)
DELETE /tasks/:id tasks:write Borra una tarea
GET /projects/:id/notes notes:read Las notas de un proyecto
POST /projects/:id/notes notes:write Crea una nota
PUT /projects/:id/notes/:noteId notes:write Edita una nota
DELETE /projects/:id/notes/:noteId notes:write Borra una nota

Tareas

curl -X POST https://api.fxcode.dev/api/v1/tasks \
  -H "Authorization: Bearer fxc_TU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "ID_DEL_PROYECTO",
    "title": "Revisar webhooks de Stripe",
    "description": "Los reintentos fallan con 409",
    "tags": ["pagos"]
  }'
Campo Tipo
title texto Obligatorio al crear
projectId texto Obligatorio al crear
description texto Opcional
taskStatusId texto Opcional. El id de un estado; lo ves en taskStatus.id de cualquier tarea
tags lista de textos Opcional; al editar reemplaza las etiquetas

Una tarea devuelve:

{
  "id": "cmvc…",
  "title": "Revisar webhooks de Stripe",
  "description": "Los reintentos fallan con 409",
  "tags": ["pagos"],
  "projectId": "ID_DEL_PROYECTO",
  "taskStatus": { "id": "cmt…", "name": "Working", "color": "#14b8a6" },
  "createdAt": "2026-10-17T14:00:00.000Z",
  "updatedAt": "2026-10-17T14:00:00.000Z"
}

Los cambios que hagas por la API se ven en vivo en la aplicación, igual que los de la web.

Notas

curl -X POST https://api.fxcode.dev/api/v1/projects/<id>/notes \
  -H "Authorization: Bearer fxc_TU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Decisiones de la reunión", "content": "## Acuerdos\n- …" }'

content es obligatorio al crear; title es opcional.

Errores

Los errores responden con un código HTTP y un JSON { "error": "mensaje" }:

Código Cuándo
400 Datos inválidos (falta un campo obligatorio, un taskStatusId que no existe)
401 Falta el token, o es inválido, está revocado o expiró
403 El token no tiene el permiso que pide la ruta
404 El recurso no existe o no es de un proyecto tuyo

La especificación OpenAPI completa está en /docs de tu API (en el servicio gestionado, api.fxcode.dev/docs).