Crear proyecto
Crea un proyecto dentro de la organización asociada a la API key.
POST /api/v1/projects
Kordia fuerza internamente organization_id. Si lo envías, se ignora.
Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
title |
string | Sí | Nombre del proyecto. |
external_id |
string | No | Identificador del sistema externo. Único por organización. |
start_date |
date | Sí |
Fecha de inicio en formato YYYY-MM-DD. |
end_date |
date | Sí |
Fecha de fin en formato YYYY-MM-DD. |
budgeted_hours |
integer | Sí | Horas presupuestadas. |
budgeted_cost |
decimal string | No | Coste presupuestado. |
tag_ids |
array integer | No | Etiquetas de proyecto existentes en la organización. |
curl https://app.example.com/api/v1/projects \
-X POST \
-H "Authorization: Bearer $KORDIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Proyecto Atlas",
"external_id": "third-party-project-123",
"start_date": "2026-06-01",
"end_date": "2026-09-30",
"budgeted_hours": 320,
"budgeted_cost": "16000.00",
"tag_ids": [1, 2]
}'const response = await fetch("https://app.example.com/api/v1/projects", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.KORDIA_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
title: "Proyecto Atlas",
external_id: "third-party-project-123",
start_date: "2026-06-01",
end_date: "2026-09-30",
budgeted_hours: 320,
budgeted_cost: "16000.00",
tag_ids: [1, 2]
})
})
const project = (await response.json()).dataimport os
import requests
response = requests.post(
"https://app.example.com/api/v1/projects",
headers={"Authorization": f"Bearer {os.environ['KORDIA_API_KEY']}"},
json={
"title": "Proyecto Atlas",
"external_id": "third-party-project-123",
"start_date": "2026-06-01",
"end_date": "2026-09-30",
"budgeted_hours": 320,
"budgeted_cost": "16000.00",
"tag_ids": [1, 2],
},
)
project = response.json()["data"]Req.post!(
"https://app.example.com/api/v1/projects",
headers: [authorization: "Bearer #{System.fetch_env!("KORDIA_API_KEY")}"],
json: %{
title: "Proyecto Atlas",
external_id: "third-party-project-123",
start_date: "2026-06-01",
end_date: "2026-09-30",
budgeted_hours: 320,
budgeted_cost: "16000.00",
tag_ids: [1, 2]
}
).body["data"]Respuesta
Status: 201 Created
{
"data": {
"id": 10,
"external_id": "third-party-project-123",
"title": "Proyecto Atlas",
"start_date": "2026-06-01",
"end_date": "2026-09-30",
"budgeted_hours": 320,
"budgeted_cost": "16000.00",
"status": "active",
"tags": []
}
}
Errores habituales
-
422si faltan campos obligatorios. -
422siexternal_idya existe. -
422si la organización alcanzó el límite de proyectos activos del plan.