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()).data
import 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.