Announcing the Basecamp 3 API

Basecamp 3 finally has an API! Head to https://github.com/basecamp/bc3-api for documentation and a guide to getting started.

We’re already seeing some great 3rd party integrations like Tick’s time tracking service and expect many more to come soon. If you have an integration you’d like us to know about, be sure to submit it here.

Some technical details:

  • The API is all part of the same majestic monolith that powers the web interface. Same controllers, new Jbuilder views.
  • Everything is cached to the max with liberal use of Russian Doll caching and ETags. While layering it on, I found and fixed a few related issues so consider the campsite cleaner than I found it!
  • Pagination is implemented following RFC5988’s convention of `Link` headers to provide URLs for the `next` page.
  • In-app Rate limiting is handled by Jeremy’s excellent Rack::Ratelimit middleware.
  • Traffic is served on a separate domain to help shield from CSRF and session vulnerabilities, and to aid with monitoring, routing, and throttling.

That’s all. Happy APIing!

Basecamp running on a laptop

Hey, have you tried Basecamp lately?

Used an earlier version, but moved on? Heard of it, but never signed up? Today's Basecamp will surprise you! It's all-new, thoroughly modern, and unlike anything else. Now you can ditch Slack, Asana, Trello, Jira, Dropbox, or some other messy jumble of products. Simplify and centralize around Basecamp instead. It's all you need for project management and internal communication. Try it free today and see what you've been missing.