Basecamp website screenshot

Basecamp

Basecamp is a project management and team collaboration platform developed by 37signals. The Basecamp REST API (bc3-api) provides programmatic access to projects, to-do lists, messages, documents, schedules, and team members. OAuth2 authentication via the 37signals Launchpad is required. The API returns JSON and is documented on GitHub at github.com/basecamp/bc3-api.

3 APIs 8 Features
CollaborationProject ManagementRESTSaaSTeam Communication

APIs

Basecamp API

The Basecamp API is a REST API providing programmatic access to Basecamp's project management platform. Manage projects, to-do lists, messages, documents, schedules, and team me...

Basecamp Webhooks

Basecamp Webhooks deliver real-time HTTP notifications when events occur within a project. Configure webhooks per project with an HTTPS payload URL and resource types.

Basecamp OAuth

OAuth 2.0 authentication for Basecamp API access via the 37signals Launchpad. Register at launchpad.37signals.com for a client ID and secret, then implement the authorization co...

Collections

GraphQL

Basecamp GraphQL Schema

This is a conceptual GraphQL schema for the Basecamp project management platform, derived from the Basecamp REST API (bc3-api). Basecamp does not currently offer a native GraphQ...

GRAPHQL

Pricing Plans

Basecamp Plans Pricing

4 plans

PLANS

Rate Limits

Basecamp Rate Limits

2 limits

RATE LIMITS

FinOps

Features

Project Management

Create and manage projects with team access controls.

To-Do Lists

Hierarchical to-do lists with assignments, due dates, and completion tracking.

Message Boards

Threaded message boards for team discussion and announcements.

Campfire Chat

Real-time group chat within projects.

Schedules

Project calendars with events and milestones.

File Storage

Document and file storage with version history.

Webhooks

Real-time event notifications for project activity.

OAuth2 API

Full REST API with OAuth2 authentication for third-party integrations.

Use Cases

Software Development

Track sprints, bugs, and feature development with to-do lists.

Client Projects

Manage client deliverables, approvals, and communications.

Remote Team Collaboration

Asynchronous team communication and project coordination.

Project Automation

Automate project workflows and reporting via REST API.

Agency Project Management

Multi-client project organization for agencies and consultancies.

Event Specifications

Basecamp Webhook Events

The Basecamp webhook system delivers real-time HTTP notifications to registered HTTPS endpoints when events occur within a Basecamp project. Webhooks are configured per project ...

ASYNCAPI

Semantic Vocabularies

Basecamp Context

0 classes · 124 properties

JSON-LD

API Governance Rules

Basecamp API Rules

15 rules · 10 errors 5 warnings

SPECTRAL

JSON Structure

Bucketref Structure

0 properties

JSON STRUCTURE

Campfire Structure

0 properties

JSON STRUCTURE

Campfireline Structure

0 properties

JSON STRUCTURE

Campfirelinecreaterequest Structure

0 properties

JSON STRUCTURE

Cardcolumn Structure

0 properties

JSON STRUCTURE

Cardmoverequest Structure

0 properties

JSON STRUCTURE

Cardtable Structure

0 properties

JSON STRUCTURE

Comment Structure

0 properties

JSON STRUCTURE

Commentcreaterequest Structure

0 properties

JSON STRUCTURE

Dockitem Structure

0 properties

JSON STRUCTURE

Document Structure

0 properties

JSON STRUCTURE

Documentcreaterequest Structure

0 properties

JSON STRUCTURE

Error Structure

0 properties

JSON STRUCTURE

Message Structure

0 properties

JSON STRUCTURE

Messagecreaterequest Structure

0 properties

JSON STRUCTURE

Messageupdaterequest Structure

0 properties

JSON STRUCTURE

Person Structure

0 properties

JSON STRUCTURE

Personref Structure

0 properties

JSON STRUCTURE

Positionrequest Structure

0 properties

JSON STRUCTURE

Profileupdaterequest Structure

0 properties

JSON STRUCTURE

Project Structure

0 properties

JSON STRUCTURE

Projectaccessrequest Structure

0 properties

JSON STRUCTURE

Projectconstruction Structure

0 properties

JSON STRUCTURE

Projectconstructionrequest Structure

0 properties

JSON STRUCTURE

Projectcreaterequest Structure

0 properties

JSON STRUCTURE

Projectupdaterequest Structure

0 properties

JSON STRUCTURE

Recording Structure

0 properties

JSON STRUCTURE

Recurrenceschedule Structure

0 properties

JSON STRUCTURE

Schedule Structure

0 properties

JSON STRUCTURE

Scheduleentry Structure

0 properties

JSON STRUCTURE

Scheduleentrycreaterequest Structure

0 properties

JSON STRUCTURE

Scheduleupdaterequest Structure

0 properties

JSON STRUCTURE

Subscription Structure

0 properties

JSON STRUCTURE

Subscriptionupdaterequest Structure

0 properties

JSON STRUCTURE

Template Structure

0 properties

JSON STRUCTURE

Templatecreaterequest Structure

0 properties

JSON STRUCTURE

Todo Structure

0 properties

JSON STRUCTURE

Todocreaterequest Structure

0 properties

JSON STRUCTURE

Todolist Structure

0 properties

JSON STRUCTURE

Todolistcreaterequest Structure

0 properties

JSON STRUCTURE

Upload Structure

0 properties

JSON STRUCTURE

Uploadcreaterequest Structure

0 properties

JSON STRUCTURE

Uploadupdaterequest Structure

0 properties

JSON STRUCTURE

Webhook Structure

0 properties

JSON STRUCTURE

Webhookcreaterequest Structure

0 properties

JSON STRUCTURE

Webhookupdaterequest Structure

0 properties

JSON STRUCTURE

Example Payloads

Bucketref Example

5 fields

EXAMPLE

Campfireline Example

11 fields

EXAMPLE

Cardcolumn Example

7 fields

EXAMPLE

Cardmoverequest Example

3 fields

EXAMPLE

Comment Example

EXAMPLE

Commentcreaterequest Example

1 fields

EXAMPLE

Dockitem Example

7 fields

EXAMPLE

Error Example

1 fields

EXAMPLE

Message Example

EXAMPLE

Messagecreaterequest Example

5 fields

EXAMPLE

Messageupdaterequest Example

3 fields

EXAMPLE

Person Example

EXAMPLE

Personref Example

17 fields

EXAMPLE

Positionrequest Example

1 fields

EXAMPLE

Profileupdaterequest Example

6 fields

EXAMPLE

Project Example

14 fields

EXAMPLE

Projectaccessrequest Example

3 fields

EXAMPLE

Projectconstruction Example

4 fields

EXAMPLE

Projectcreaterequest Example

2 fields

EXAMPLE

Projectupdaterequest Example

4 fields

EXAMPLE

Recording Example

12 fields

EXAMPLE

Recurrenceschedule Example

7 fields

EXAMPLE

Subscription Example

4 fields

EXAMPLE

Template Example

9 fields

EXAMPLE

Todo Example

EXAMPLE

Todocreaterequest Example

7 fields

EXAMPLE

Upload Example

EXAMPLE

Uploadcreaterequest Example

3 fields

EXAMPLE

Uploadupdaterequest Example

2 fields

EXAMPLE

Webhook Example

8 fields

EXAMPLE

Webhookcreaterequest Example

3 fields

EXAMPLE

Webhookupdaterequest Example

3 fields

EXAMPLE

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
📝
Signup
Signup
📰
Blog
Blog
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
JSONLD
JSONLD

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Basecamp OAuth API
  version: '1.0'
items:
- info:
    name: Authorization
    type: folder
  items:
  - info:
      name: Authorize user
      type: http
    http:
      method: GET
      url: https://launchpad.37signals.com/authorization
      params:
      - name: type
        value: ''
        type: query
        description: Must be set to "web_server" for the authorization code flow
      - name: client_id
        value: ''
        type: query
        description: Your application's client ID from launchpad.37signals.com
      - name: redirect_uri
        value: ''
        type: query
        description: The URI to redirect to after authorization. Must match a URI registered with your application.
    docs: Redirects the user to the Basecamp authorization page where they can grant your application access to their account.
      After the user approves, Basecamp redirects back to your redirect_uri with an authorization code.
- info:
    name: Token
    type: folder
  items:
  - info:
      name: Exchange code for token
      type: http
    http:
      method: POST
      url: https://launchpad.37signals.com/authorization/token
      body:
        type: form-urlencoded
        data: []
    docs: Exchanges an authorization code for an access token and refresh token. The authorization code is single-use and
      expires shortly after being issued. The resulting access token expires after two weeks.
  - info:
      name: Refresh access token
      type: http
    http:
      method: POST
      url: https://launchpad.37signals.com/authorization/token/refresh
      body:
        type: form-urlencoded
        data: []
    docs: Uses a refresh token to obtain a new access token without requiring the user to re-authorize. Refresh tokens do
      not expire but are revoked if the user revokes access.
- info:
    name: Identity
    type: folder
  items:
  - info:
      name: Get identity
      type: http
    http:
      method: GET
      url: https://launchpad.37signals.com/authorization.json
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns the identity of the authenticated user along with the list of Basecamp accounts they have access to. This
      is typically the first call made after obtaining an access token to discover which account IDs to use in subsequent
      API requests.
bundled: true