Reten Docs
Proyectos

Crear Proyecto

Crear un proyecto en el tenant activo, junto con su audiencia raíz.

POST /api/projects

Crea un proyecto en el tenant activo. El proyecto se crea junto con su audiencia raíz, Toda la empresa (los comercios activos), en una sola operación: la respuesta ya trae su rootAudienceId.

Auth: Requerida — permiso project:create

Este endpoint es tenant-level: ignora el header x-project-id.

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
namestringSíNombre del proyecto (máximo 255 caracteres). Debe ser único dentro del tenant, sin distinguir mayúsculas

name es el único campo aceptado. Un proyecto nuevo nunca es el proyecto principal: enviar isMain (o cualquier otro campo) responde 400.

Ejemplo

curl -X POST https://api.reten.ai/api/projects \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Food Service"
  }'
const response = await fetch("https://api.reten.ai/api/projects", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "x-tenant-id": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: "Food Service",
  }),
});
const project = await response.json();
import requests

response = requests.post(
    "https://api.reten.ai/api/projects",
    headers={
        "Authorization": "Bearer <token>",
        "x-tenant-id": "<tenant-id>",
    },
    json={
        "name": "Food Service",
    },
)
project = response.json()

Respuesta 201 Created

{
  "id": "b7e4d2c1-6a5f-4e3d-9c8b-7a6f5e4d3c2b",
  "name": "Food Service",
  "rootAudienceId": "c2d3e4f5-a6b7-4c8d-9e0f-1a2b3c4d5e6f",
  "isMain": false
}

Respuestas de Error

EstadoDescripción
400name faltante o vacío — El nombre del proyecto es obligatorio.
400name no es texto — El nombre del proyecto debe ser texto.
400name supera los 255 caracteres — El nombre del proyecto no puede superar los 255 caracteres.
400Campo desconocido en el cuerpo, como isMain — property isMain should not exist
401Token de autenticación faltante o inválido
403Falta el permiso project:create — Required permissions: project:create
409Otro proyecto del tenant ya tiene ese nombre (sin distinguir mayúsculas) — Ya existe un proyecto con el nombre "<name>".