Basecamp is 37signals' project management product. An account holds projects, and each project holds to-do lists, a message board, a schedule, a Campfire chat, card tables, and documents. The API serves JSON only from 3.basecampapi.com/{account_id}/ and requires OAuth 2.0 plus a User-Agent header that names your app and a contact address.
Through Fibric, an operator reads to-dos, comments, and schedule entries, receives webhooks for the recording types you choose, and proposes a new to-do, a completion, or a comment. Approved changes are applied once, and each leaves a receipt: what changed, why, and how to undo it.
This is a reference listing. It documents what Fibric would read from Basecamp and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.
Inputs
To-dos through GET /todolists/{id}/todos.json; the default returns active, pending to-dos, with status archived or trashed and completed=true as filters
To-do lists, to-do sets, and to-do list groups inside a project bucket
Messages on a project's message board, and the message types the account defines
Schedule entries on a project schedule
Comments on any recording that carries comments_count and comments_url, through GET /recordings/{id}/comments.json
Webhooks per project through POST /buckets/{id}/webhooks.json for types such as Todo, Todolist, Message, Comment, Schedule::Entry, and Kanban::Card
People, my assignments, and my notifications for the authorizing user
Proposed actions
Target capability: propose a new to-do through POST /todolists/{id}/todos.json with content, assignee_ids, due_on, and notify
Target capability: propose completing or reopening a to-do through POST or DELETE /todos/{id}/completion.json
Target capability: propose a comment on a recording through POST /recordings/{id}/comments.json
Target capability: propose changing a to-do's content, description, assignees, or due_on through PUT /todos/{id}.json
Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.
What you can build
Chase a to-do past its due date
The operator reads open to-dos whose due_on has passed and proposes a comment to the assignee, or a new due date, for your approval.
A Basecamp account and its numeric account id, discovered through GET https://launchpad.37signals.com/authorization.json
An app registered at launchpad.37signals.com/integrations with a client_id, client_secret, and redirect_uri
A User-Agent header naming your app and a contact email or URL; requests without one return 400 Bad Request
An HTTPS payload URL for webhooks; Basecamp returns 400 for a payload_url that is not HTTPS
Authentication
OAuth 2.0 web_server flow through launchpad.37signals.com, with a client_id and client_secret from an app registered at launchpad.37signals.com/integrations; access tokens last two weeks and refresh tokens renew them.
Limits
The first rate limit is 50 requests per 10 seconds per IP address; Basecamp answers 429 Too Many Requests with Retry-After
Webhooks are created per project, not per account, and Basecamp deactivates a webhook after 10 failed delivery attempts
Pagination is geared: 15 results on page 1, 30 on page 2, 50 on page 3, then 100; follow the Link header, never build URLs
The API is not compatible with the Basecamp Classic or Basecamp 2 APIs
Access and pricing
Reference listing. Fibric builds the connector under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.
Yes. A webhook is created per project through POST /buckets/{id}/webhooks.json with an HTTPS payload_url and a list of types such as Todo, Todolist, Comment, or Message. Each delivery carries a kind such as message_created, the recording, and the creator. Basecamp retries up to 10 times before deactivating the webhook.
What happens when the connector hits the rate limit?
Basecamp returns 429 Too Many Requests with a Retry-After header giving the seconds to wait. The documented first limit is 50 requests per 10 seconds per IP address. The connector waits the stated time and paces history loads by following the Link header page by page.
How does the connector know which account to use?
After OAuth, GET https://launchpad.37signals.com/authorization.json lists the accounts the token can reach, each with product bc3, an id, a name, and an href. The connector uses that id as the account segment in https://3.basecampapi.com/{account_id}/.
Ask about Basecamp
Ask about the capabilities and requirements in this listing.
This connector listing is developed, published, and supported by Fibric. It describes integration with Basecamp through published interfaces. Third-party names and logos identify the systems an integration connects to; they are the property of their respective owners, who are not affiliated with Fibric and do not sponsor or endorse this listing. Trademark policy