0.x — pre-release, no compatibility promise yet.What this means
Create a project
Create a project and immediately return a fully-hydrated ProjectCard instance.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters”Replay the first response for 24 h when the same request is retried with this key.
Request Bodyrequired
Section titled “Request Bodyrequired”The request body of projects.create.
object
Organization ID (UUID)
Project name
Project status enum
Priority enum for projects and tasks
Who can see a project: public — every member of the organization; private — the project’s members and org admins. Also the organization’s default for new projects.
Part of ProjectCreate and ProjectUpdate.
Example
{ "org_id": "a1b2c3d4-5678-1234-9abc-def012345678", "name": "Website Redesign", "description": "Redesign the company website.", "metadata": { "budget": 10000 }, "status": "not_started", "priority": "high", "start_date": "2024-07-01", "end_date": "2024-12-31", "created_by": "string", "updated_by": "string", "is_active": true, "delete_reason": "string", "owner": "string", "team_members": [ "string" ], "visibility": "public", "team_id": "string", "owner_designation": "manager", "team_member_designations": [ { "id": "string", "designation": "string" } ]}Responses
Section titled “ Responses ”Successful Response
Simplified project representation for dashboard cards.
object
Organization ID (UUID)
Project name
Project status enum
Priority enum for projects and tasks
Who can see a project: public — every member of the organization; private — the project’s members and org admins. Also the organization’s default for new projects.
Project ID
Total number of tasks in the project
Number of completed tasks
Project completion percentage, 0–100.
The project’s leads; optional, usually empty.
One lead of a project: who, who set them, and when. A lead is distinct from the owner — the owner administers the project, a lead is accountable for delivering it.
The project’s place in the organization’s manual order. Lists sort by position, then name.
Example
{ "org_id": "a1b2c3d4-5678-1234-9abc-def012345678", "name": "Website Redesign", "description": "Redesign the company website.", "metadata": { "budget": 10000 }, "status": "not_started", "priority": "high", "start_date": "2024-07-01", "end_date": "2024-12-31", "created_by": "string", "updated_by": "string", "is_active": true, "delete_reason": "string", "owner": "string", "team_members": [ "string" ], "visibility": "public", "team_id": "string", "project_id": "P00001", "created_at": "2026-09-25T12:00:00Z", "updated_at": "2026-09-25T12:00:00Z", "tasks_total": 25, "tasks_completed": 15, "progress_percent": 60, "leads": [ { "user_id": "string", "username": "string", "assigned_by": "string", "assigned_at": "2026-09-25T12:00:00Z" } ], "position": 0}Bad request — a query parameter outside what the operation accepts (invalid-parameter)
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Bad request", "status": 400, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Missing or invalid bearer token
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Missing or invalid bearer token", "status": 401, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Authenticated, but not allowed
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Authenticated, but not allowed", "status": 403, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Not found
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Not found", "status": 404, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Conflict (a duplicate, or an Idempotency-Key still in flight)
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Conflict (a duplicate, or an `Idempotency-Key` still in flight)", "status": 409, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}If-Match does not match the current ETag
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "`If-Match` does not match the current `ETag`", "status": 412, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}The body or query did not validate (validation), or an Idempotency-Key was reused
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "The body or query did not validate (`validation`), or an `Idempotency-Key` was reused", "status": 422, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}An access token over its per-minute limit (rate-limit; see Retry-After)
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "An access token over its per-minute limit (`rate-limit`; see `Retry-After`)", "status": 429, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}Unexpected server error — quote request_id
An RFC 9457 problem details object — the body of every error response. detail is the human-readable explanation; request_id identifies the request for support.
object
about:blank or a urn:tasksmate:problem:* identifier
Human-readable explanation (a string; for a 422, the list of validation errors)
Structured failures: validation errors, or {loc, msg, allowed} for a bad parameter
object
Example
{ "type": "about:blank", "title": "Unexpected server error", "status": 500, "detail": "…", "instance": "/v1/…", "request_id": "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"}