Overview
POST/project/projectsproject

Create a project (seeds default statuses + a project.created activity)

Create a record in projects.

Auth: bearerAuth — calls run as the authenticated user.

Parameters
  • workspacequery · optionalstring

    Scope to this WORKSPACE’s owning principal (the caller’s own customer slug, or an organization the caller belongs to): the list pins to rows the principal OWNS, and a create stamps it as the owner. Omitted: the caller’s reach (owned / org / participating). Unknown/foreign slug: 404.

Request body

application/json · optional

  • namestring
  • descriptionoptionalstring
  • coloroptionalstring
  • ecosystemIdoptionalstring

    the owning ecosystem; defaulted to the caller ecosystem when omitted. A non-admin passing a foreign owner is rejected by RLS.

Example
{
  "name": "string",
  "description": "string",
  "color": "string",
  "ecosystemId": "string"
}
Responses
201

Created project

  • idstring
  • namestring
  • descriptionstring
  • statusstring

    lifecycle status (DB default 'active')

  • colorstring

    hex board accent (DB default #007AFF)

  • createdAtstring
  • updatedAtstring
  • isDeletedboolean
  • syncVersioninteger
  • customerIdstring

    the customer (user) who created the project

  • deletedAtoptionalstring?
  • ecosystemIdstring

    the owning ecosystem (tenant scope)

  • archivedAtoptionalstring?

    ISO timestamp when archived; null = not archived

  • ownerKind"customer" | "organization"

    the kind of principal that OWNS the project

  • ownerIdstring

    the owning principal (customer or organization id); server-stamped from the verified ?workspace= scope, else the creator

Example
{
  "id": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "color": "string",
  "createdAt": "string",
  "updatedAt": "string",
  "isDeleted": true,
  "syncVersion": 0,
  "customerId": "string",
  "deletedAt": "string",
  "ecosystemId": "string",
  "archivedAt": "string",
  "ownerKind": "customer",
  "ownerId": "string"
}
400

Error

  • erroroptionalobject
Example
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
401

Error

  • erroroptionalobject
Example
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
404

Error

  • erroroptionalobject
Example
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
Code examples
cURL
curl -X POST "https://api.agenticdeveloperhub.com/project/projects" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string",
  "description": "string",
  "color": "string",
  "ecosystemId": "string"
}'
JavaScript
const res = await fetch("https://api.agenticdeveloperhub.com/project/projects", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json"
  },
  body: "{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"color\": \"string\",\n  \"ecosystemId\": \"string\"\n}",
});
const data = await res.json();