Skip to main content

Basecamp

Basecamp is a project management and team collaboration tool for organizing to-dos, messages, schedules, documents, and card tables. Its REST API (the Basecamp 3 API) exposes projects and their tools so you can read and update work items programmatically.

Basecamp icon

Power end-to-end data operations for your Basecamp API with Nexla. Our bi-directional Basecamp connector is purpose-built for Basecamp, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Basecamp or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Basecamp workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before you connect Nexla to Basecamp, you need a Basecamp account and access to the Basecamp 3 API. A few facts about the API are useful when configuring endpoints:

  1. Sign in to your Basecamp account. The Basecamp 3 API is documented in the Basecamp 3 API reference.

  2. Note your account ID. Every Basecamp API request is scoped to an account, and the base URL follows the pattern https://3.basecampapi.com/{ACCOUNT_ID}/. You can find your account ID in the URL you see while using Basecamp in the browser. Nexla's endpoint templates expose this as the Accountid path parameter.

  3. Basecamp authorizes API requests with OAuth 2.0 through https://launchpad.37signals.com. To use OAuth, register an application with 37signals to obtain a client ID and client secret, then complete the authorization flow to receive an access token. See the authentication guide for details.

  4. Every Basecamp API request must include a User-Agent header that identifies your application and provides a contact link or email address (for example, User-Agent: My Company (me@example.com)). Requests without this header are rejected with a 400 Bad Request.

Authenticate

The Basecamp connector uses a No Authentication credential template, so there are no secret fields to store in the Nexla credential itself. You still create a credential so it can be attached to a data flow; the request-level details Basecamp requires (an OAuth Authorization header and a User-Agent header) are supplied when you configure the endpoint or through the Connect to Any API advanced flow.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

    Because this connector uses the No Authentication template, Basecamp API authorization is not stored in the credential. Add the required Authorization (OAuth bearer token) and User-Agent request headers when configuring the source or destination endpoint. For details on Basecamp authorization, see the Basecamp 3 API authentication guide.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Basecamp connector tile, then select the credential that will be used to connect to Basecamp, and click Next; or, create a new Basecamp credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Basecamp endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

[Rest API] GetAccount

This endpoint template retrieves the details of your Basecamp account. Use it to confirm connectivity or to read account-level information.

  • Configure the Accountid path parameter to identify the Basecamp account to query.

The request is scoped to the base URL https://3.basecampapi.com/{ACCOUNT_ID}/. For details on the account resource and available fields, see the Basecamp 3 API reference.

[Rest API] GetBoost

This endpoint template retrieves a single boost, the short reaction a person can add to a Basecamp recording.

  • Configure the Accountid and Boostid path parameters to identify the account and the specific boost to retrieve.

For details on boosts and their response structure, see the Basecamp 3 API reference.

[Rest API] SetCardColumnColor

This endpoint template sets the color of a column in a Basecamp card table.

  • Configure the Accountid, Bucketid, and Columnid path parameters to identify the account, project, and column, and supply the Color value to apply.

For details on card tables and columns, see the Basecamp 3 API reference.

[Rest API] EnableCardColumnOnHold

This endpoint template enables the "on hold" section for a column in a Basecamp card table.

  • Configure the Accountid, Bucketid, and Columnid path parameters to identify the account, project, and column.

For details on card table columns, see the Basecamp 3 API reference.

[Rest API] ListWebhooks

This endpoint template lists the webhooks configured for a Basecamp project.

  • Configure the Accountid and Bucketid path parameters to identify the account and project whose webhooks you want to list.

For details on webhooks and their payloads, see the Basecamp 3 API reference.

[Rest API] CreateWebhook

This endpoint template creates a new webhook on a Basecamp project so that Basecamp can notify an external URL when events occur.

  • Configure the Accountid and Bucketid path parameters, and supply the Payload Url, Types, and Active values that define where events are delivered and which event types are subscribed.

For details on creating webhooks and the supported event types, see the Basecamp 3 API reference.

[Rest API] GetCard

This endpoint template retrieves a single card from a Basecamp card table.

  • Configure the Accountid and Cardid path parameters to identify the account and the specific card to retrieve.

For details on cards and their fields, see the Basecamp 3 API reference.

[Rest API] UpdateCard

This endpoint template updates a card in a Basecamp card table.

  • Configure the Accountid and Cardid path parameters, and supply any of the Title, Content, Due On, and Assignee Ids values you want to change on the card.

For details on updating cards, see the Basecamp 3 API reference.

[Rest API] CreateCardStep

This endpoint template creates a new step (a sub-task) on a Basecamp card.

  • Configure the Accountid and Cardid path parameters, and supply the Title, Due On, and Assignee Ids values that define the step.

For details on card steps, see the Basecamp 3 API reference.

[Rest API] GetCardColumn

This endpoint template retrieves a single column from a Basecamp card table.

  • Configure the Accountid and Columnid path parameters to identify the account and the specific column to retrieve.

For details on card table columns, see the Basecamp 3 API reference.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Basecamp data sources can also be manually configured to ingest data from any valid Basecamp API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Basecamp API requests use the base URL https://3.basecampapi.com/{ACCOUNT_ID}/, must include a User-Agent header identifying your application, and are authorized with an OAuth 2.0 bearer token in the Authorization header.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Basecamp data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Basecamp destination, and select the Send to Destination option from the menu. Select the Basecamp connector from the list of available destination connectors, then select the credential that will be used to connect to Basecamp, and click Next; or, create a new Basecamp credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Basecamp endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

[Rest API] UpdateAccountLogo

This endpoint template updates the logo image for your Basecamp account using records from a Nexset.

  • Configure the Accountid path parameter to identify the account whose logo is updated.

For details on account management endpoints, see the Basecamp 3 API reference.

[Rest API] RemoveAccountLogo

This endpoint template removes the logo image from your Basecamp account.

  • Configure the Accountid path parameter to identify the account whose logo is removed.

For details on account management endpoints, see the Basecamp 3 API reference.

[Rest API] UpdateAccountName

This endpoint template updates the display name of your Basecamp account using records from a Nexset.

  • Configure the Accountid path parameter and supply the new Name value to apply to the account.

For details on account management endpoints, see the Basecamp 3 API reference.

[Rest API] CreateAttachment

This endpoint template uploads a file attachment to Basecamp so it can later be referenced in rich-text content.

  • Configure the Accountid path parameter and supply the Name value for the uploaded attachment.

For details on attachments and how uploaded files are referenced, see the Basecamp 3 API reference.

[Rest API] DeleteBoost

This endpoint template deletes a boost from a Basecamp recording.

  • Configure the Accountid and Boostid path parameters to identify the account and the specific boost to delete.

For details on boosts, see the Basecamp 3 API reference.

[Rest API] DisableCardColumnOnHold

This endpoint template disables the "on hold" section for a column in a Basecamp card table.

  • Configure the Accountid, Bucketid, and Columnid path parameters to identify the account, project, and column.

For details on card table columns, see the Basecamp 3 API reference.

[Rest API] MoveCard

This endpoint template moves a card to a different column within a Basecamp card table.

  • Configure the Accountid and Cardid path parameters, and supply the target Column Id and Position for the card.

For details on moving cards between columns, see the Basecamp 3 API reference.

[Rest API] RepositionCardStep

This endpoint template changes the position of a step within a Basecamp card.

  • Configure the Accountid and Cardid path parameters, and supply the Source Id and Position that define which step to move and where.

For details on card steps, see the Basecamp 3 API reference.

[Rest API] UnsubscribeFromCardColumn

This endpoint template removes the current user's subscription to a Basecamp card table column so they no longer receive its notifications.

  • Configure the Accountid and Columnid path parameters to identify the account and column to unsubscribe from.

For details on card table column subscriptions, see the Basecamp 3 API reference.

[Rest API] MoveCardColumn

This endpoint template changes the position of a column within a Basecamp card table.

  • Configure the Accountid and Cardtableid path parameters, and supply the Source Id, Target Id, and Position that define which column to move and where.

For details on card tables and columns, see the Basecamp 3 API reference.

Manual configuration

Basecamp destinations can also be manually configured to send data to any valid Basecamp API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Basecamp APIs expect JSON request bodies and require a User-Agent header on every request. Requests are authorized with an OAuth 2.0 bearer token in the Authorization header.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Basecamp endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Basecamp endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.