---
title: "Create resource — GanttFather API"
description: "Add a non-human resource to a project. Supports idempotent retries."
canonical: "https://ganttfather.com/docs/api/create-resource/"
locale: "en"
category: "product"
---

# Create resource — GanttFather API

API reference [AI assistants (MCP)](https://ganttfather.com/docs/ai-agent/)

## Getting started

- [Introduction](https://ganttfather.com/docs/api/introduction/)
- [Authentication](https://ganttfather.com/docs/api/authentication/)
- [Pagination](https://ganttfather.com/docs/api/pagination/)
- [Rate limits & quotas](https://ganttfather.com/docs/api/rate-limits/)
- [Errors](https://ganttfather.com/docs/api/errors/)

## Projects

- [GET List projects](https://ganttfather.com/docs/api/list-projects/)
- [GET Get project](https://ganttfather.com/docs/api/get-project/)

## Tasks

- [GET List tasks](https://ganttfather.com/docs/api/list-tasks/)
- [GET Get task](https://ganttfather.com/docs/api/get-task/)
- [POST Create task](https://ganttfather.com/docs/api/create-task/)
- [PATCH Update task](https://ganttfather.com/docs/api/update-task/)
- [DELETE Delete task](https://ganttfather.com/docs/api/delete-task/)
- [POST Reorder tasks](https://ganttfather.com/docs/api/reorder-tasks/)
- [PUT Set assignees](https://ganttfather.com/docs/api/set-assignees/)

## Dependencies

- [GET List dependencies](https://ganttfather.com/docs/api/list-dependencies/)
- [PUT Set dependencies](https://ganttfather.com/docs/api/set-dependencies/)
- [POST Add dependency](https://ganttfather.com/docs/api/add-dependency/)
- [DELETE Remove dependency](https://ganttfather.com/docs/api/remove-dependency/)

## Resources

- [GET List resources](https://ganttfather.com/docs/api/list-resources/)
- [POST Create resource](https://ganttfather.com/docs/api/create-resource/)
- [PATCH Update resource](https://ganttfather.com/docs/api/update-resource/)
- [DELETE Delete resource](https://ganttfather.com/docs/api/delete-resource/)

## Members

- [GET List members](https://ganttfather.com/docs/api/list-members/)

 Resources / **Create resource**

# Create resource

 POST

 Updated Jul 4, 2026

 Creates a resource in the project.

 On success the API returns 201 Created with the resource body and a Location header.

## Path parameters

 Name Type Required Description

 projectId string (uuid) Yes The project to create the resource in.

## Headers

 Name Required Description

 Idempotency-Key No Same key + same body replays the original 201 ; same key + different body is 409 idempotency_conflict .

## Request body

 Name Type Required Description

 name string Yes Resource name.

 type string No Human / Virtual . Defaults to Virtual .

 costType string No Hour / Use / Flat . Defaults to Flat .

 costValue number No Cost amount, interpreted per costType .

 initials string No Short label shown on chips.

 color string No #RRGGBB .

 curl -X POST https://api.ganttfather.com/v1/projects/{projectId}/resources \
 -H "Authorization: Bearer glt_YOUR_TOKEN" \
 -H "Content-Type: application/json" \
 -H "Idempotency-Key: create-resource-001" \
 -d '{ "name": "Conference room A", "type": "Virtual", "costType": "Hour" }'

 Response 201 Created

 {
 "id": "0198f1a2-5555-7c9e-9a1f-2d4e5f6a7b8c",
 "name": "Conference room A",
 "type": "Virtual",
 "costType": "Hour",
 "costValue": 0,
 "initials": "CR",
 "color": "#36558F"
}

 Rather not write REST?

## Connect an AI assistant instead.

 [Explore MCP setup →](https://ganttfather.com/docs/ai-agent/)
