> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Basecamp

> Manage projects, to-do lists, and to-dos in Basecamp

## At a glance

* **Availability**: Experimental ([how to enable](/cloud/integrations)).
* **Auth**: OAuth 2.0.
* **Connection**: A user authorizes the connection in the provider's consent screen.
* **Docs**: [https://github.com/basecamp/bc3-api/blob/master/sections/authentication.md](https://github.com/basecamp/bc3-api/blob/master/sections/authentication.md)

## Credentials

Set these per environment. See [Connect an integration](/cloud/integrations).

With a managed OAuth app, Connect works without these variables; set them to use your own OAuth app instead.

| Variable                 | Required | Description                                                                                                                            |
| ------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `BASECAMP_CLIENT_ID`     | Yes      | Basecamp (37signals Launchpad) OAuth Client ID [Docs](https://github.com/basecamp/bc3-api/blob/master/sections/authentication.md).     |
| `BASECAMP_CLIENT_SECRET` | Yes      | Basecamp (37signals Launchpad) OAuth Client Secret [Docs](https://github.com/basecamp/bc3-api/blob/master/sections/authentication.md). |

## Setup

1. **Create a Basecamp account**: Sign up at [https://basecamp.com](https://basecamp.com) (a free trial works for testing). Note your account ID - it's the number in the app URL, e.g. [https://3.basecamp.com/5899981](https://3.basecamp.com/5899981).
2. **Register an app on 37signals Launchpad**: Go to [https://launchpad.37signals.com/integrations](https://launchpad.37signals.com/integrations) and register a new app. Check 'Basecamp 4' as the product and set your redirect URI to your app's /api/auth/basecamp/callback URL.
3. **Set environment variables**: Copy the Client ID and Client Secret into your .env as BASECAMP\_CLIENT\_ID and BASECAMP\_CLIENT\_SECRET.
4. **Verify access**: Complete the OAuth flow, then run List Projects with your account ID.

* Every API URL includes the account ID: [https://3.basecampapi.com/\&#123;accountId\&#125;/](https://3.basecampapi.com/\&#123;accountId\&#125;/).... - tools take it as a required accountId parameter
* Basecamp OAuth has no scopes; tokens carry the user's full access. Access tokens expire after two weeks and are renewed with the refresh token
* Basecamp requires a User-Agent identifying your app with contact info, and rate-limits to \~50 requests per 10 seconds

Provider API reference: [https://github.com/basecamp/bc3-api](https://github.com/basecamp/bc3-api)

## Tools

| Tool             | Access | Description                                                                                                   |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------- |
| List Projects    | Read   | List active projects in a Basecamp account                                                                    |
| Get Project      | Read   | Get a project including its dock (the todoset ID needed for to-do tools is in the dock entry named 'todoset') |
| Create Project   | Write  | Create a new Basecamp project                                                                                 |
| List To-do Lists | Read   | List to-do lists in a project's todoset (get the todoset ID from Get Project's dock)                          |
| List To-dos      | Read   | List to-dos in a to-do list                                                                                   |
| Create To-do     | Write  | Create a to-do in a to-do list                                                                                |
| Complete To-do   | Write  | Mark a Basecamp to-do as completed                                                                            |

## Example prompts

* List my Basecamp projects and summarize the open to-dos in one of them.
* Add a to-do to a Basecamp to-do list with a due date and assignee.
