Basecamp · Schema
Basecamp Project
Represents a Basecamp project (bucket), which is the top-level container for all collaboration content including messages, to-dos, documents, schedules, campfires, and card tables. Projects are owned by an account and can be accessed by invited team members and clients.
CollaborationProject ManagementRESTSaaSTeam Communication
Properties
| Name | Type | Description |
|---|---|---|
| id | integer | Unique identifier for the project within the Basecamp account |
| status | string | Current lifecycle status of the project |
| created_at | string | ISO 8601 UTC timestamp when the project was created |
| updated_at | string | ISO 8601 UTC timestamp when the project was last updated |
| name | string | Human-readable name of the project |
| description | stringnull | Optional description providing context about the project's purpose or scope |
| purpose | string | Project purpose classification such as 'team_project' or 'company_hq' |
| clients_enabled | boolean | Whether client visibility is enabled for this project, allowing invited client users to view designated content |
| timesheet_enabled | boolean | Whether timesheet tracking is enabled for this project |
| color | stringnull | Optional color identifier used to visually distinguish the project in the Basecamp interface |
| url | string | Canonical API URL for this project resource |
| app_url | string | Web URL to open this project in the Basecamp application |
| bookmark_url | string | API URL to bookmark this project for the authenticated user |
| dock | array | List of tools available on this project's dock, each representing an enabled feature such as messages, to-dos, schedule, or campfire |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/basecamp/bc3-api/schemas/basecamp/project.json",
"title": "Basecamp Project",
"description": "Represents a Basecamp project (bucket), which is the top-level container for all collaboration content including messages, to-dos, documents, schedules, campfires, and card tables. Projects are owned by an account and can be accessed by invited team members and clients.",
"type": "object",
"required": ["id", "name", "status"],
"properties": {
"id": {
"type": "integer",
"description": "Unique identifier for the project within the Basecamp account"
},
"status": {
"type": "string",
"description": "Current lifecycle status of the project",
"enum": ["active", "archived", "trashed"]
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 UTC timestamp when the project was created"
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 UTC timestamp when the project was last updated"
},
"name": {
"type": "string",
"description": "Human-readable name of the project",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": ["string", "null"],
"description": "Optional description providing context about the project's purpose or scope"
},
"purpose": {
"type": "string",
"description": "Project purpose classification such as 'team_project' or 'company_hq'"
},
"clients_enabled": {
"type": "boolean",
"description": "Whether client visibility is enabled for this project, allowing invited client users to view designated content"
},
"timesheet_enabled": {
"type": "boolean",
"description": "Whether timesheet tracking is enabled for this project"
},
"color": {
"type": ["string", "null"],
"description": "Optional color identifier used to visually distinguish the project in the Basecamp interface"
},
"url": {
"type": "string",
"format": "uri",
"description": "Canonical API URL for this project resource"
},
"app_url": {
"type": "string",
"format": "uri",
"description": "Web URL to open this project in the Basecamp application"
},
"bookmark_url": {
"type": "string",
"format": "uri",
"description": "API URL to bookmark this project for the authenticated user"
},
"dock": {
"type": "array",
"description": "List of tools available on this project's dock, each representing an enabled feature such as messages, to-dos, schedule, or campfire",
"items": {
"$ref": "#/$defs/DockItem"
}
}
},
"$defs": {
"DockItem": {
"type": "object",
"description": "A tool or feature available on a Basecamp project dock",
"required": ["id", "title", "name", "enabled"],
"properties": {
"id": {
"type": "integer",
"description": "Unique identifier for this dock item resource"
},
"title": {
"type": "string",
"description": "Display title of the tool shown to users (e.g., 'Message Board', 'To-dos')"
},
"name": {
"type": "string",
"description": "Internal machine-readable name of the tool",
"enum": [
"message_board",
"todoset",
"vault",
"schedule",
"inbox",
"chat",
"questionnaire",
"kanban_board"
]
},
"enabled": {
"type": "boolean",
"description": "Whether this tool is currently enabled and visible on the project"
},
"position": {
"type": ["integer", "null"],
"description": "Display order position of this tool in the project dock"
},
"url": {
"type": "string",
"format": "uri",
"description": "API URL for this tool's resource within the project"
},
"app_url": {
"type": "string",
"format": "uri",
"description": "Web URL to open this tool within the project in the Basecamp application"
}
}
}
}
}