File: basecamp.md | Updated: 11/15/2025
š NextAuth.js is now part of Better Auth !
This is documentation for NextAuth.js v3, which is no longer actively maintained.
For up-to-date documentation, see the **latest version ** (v4).
Version: v3
On this page
Documentationā
https://github.com/basecamp/api/blob/master/sections/authentication.md
Configurationā
https://launchpad.37signals.com/integrations
Optionsā
The Basecamp Provider comes with a set of default options:
You can override any of the options to suit your own use case.
Examplesā
import Providers from `next-auth/providers`...providers: [ Providers.Basecamp({ clientId: process.env.BASECAMP_CLIENT_ID, clientSecret: process.env.BASECAMP_CLIENT_SECRET })]...
note
Using the example above, it is only possible to retrieve profile information such as account id, email and name. If you wish to retrieve user data in relation to a specific team, you must provide a different profileUrl and a custom function to handle profile information as shown in the example below.
import Providers from `next-auth/providers`...providers: [ Providers.Basecamp({ clientId: process.env.BASECAMP_CLIENT_ID, clientSecret: process.env.BASECAMP_CLIENT_SECRET, profileUrl: `https://3.basecampapi.com/${process.env.BASECAMP_TEAM_ID}/my/profile.json`, profile: (profile) => { return { id: profile.id, name: profile.name, email: profile.email_address, image: profile.avatar_url, admin: profile.admin, owner: profile.owner } } })]...
tip
The BASECAMP_TEAM_ID is found in the url path of your team's homepage. For example, if the url is https://3.basecamp.com/1234567/projects, then in this case the BASECAMP_TEAM_ID is 1234567