Back

Teamwork API Essential Guide

Aug 15, 20246 minute read

What type of API does Teamwork provide?

Based on the search results provided, there is no specific information about the type of API that Teamwork uses (e.g. REST, GraphQL, SOAP). The search results do not contain any details about Teamwork's API architecture.

Key API Types

  1. REST (Representational State Transfer)

    • Uses standard HTTP methods (GET, POST, PUT, DELETE, etc.)
    • Resources are accessed via URLs
    • Typically returns data in JSON format
    • Stateless architecture
  2. GraphQL

    • Query language for APIs
    • Allows clients to request specific data they need
    • Single endpoint for all queries
    • Strongly typed schema
  3. SOAP (Simple Object Access Protocol)

    • Uses XML for message format
    • Can work with different protocols (HTTP, SMTP, etc.)
    • More rigid structure compared to REST
    • Better suited for enterprise environments with complex requirements

Considerations

  • REST is widely used and well-established in the industry
  • GraphQL offers more flexibility in data fetching and is gaining popularity
  • SOAP is still used in some enterprise settings but less common in modern web APIs

Without specific information about Teamwork's API, it's not possible to definitively state which type they use. To find out, you would need to check Teamwork's official API documentation or contact their support team directly.

Does the Teamwork API have webhooks?

Yes, the official Teamwork API does have webhooks. Here are the key points about Teamwork's webhook functionality:

Availability and Setup

  1. Webhooks are available on paid Teamwork.com subscription plans.
  2. Webhooks can be enabled and configured via the Webhooks section of your Teamwork.com site settings or via individual project settings.
  3. Site administrators can enable webhooks in the site settings area.
  4. Project administrators and above can create webhooks at the project level.

Event Types

Teamwork's API allows you to subscribe to various event types. Here are some of the main categories of events you can subscribe to:

  1. Calendar Events: CREATED, DELETED, REMINDER, UPDATED (Site level only)
  2. Files: CREATED, DELETED, DOWNLOADED, TAGGED, UNTAGGED, UPDATED
  3. Milestones: COMPLETED, CREATED, DELETED, REMINDER, REOPENED, TAGGED, UNTAGGED, UPDATED
  4. Projects: ARCHIVED, COMPLETED, COPIED, CREATED, DELETED, REOPENED, TAGGED, UNTAGGED, UPDATED
  5. Tasks: COMPLETED, CREATED, DELETED, MOVED, REMINDER, REOPENED, TAGGED, UNTAGGED, UPDATED
  6. Tasklists: COMPLETED, CREATED, CREATEDFROMTEMPLATE, DELETED, REOPENED, UPDATED
  7. Portfolio Boards, Cards, and Columns (Site level only): various events like CREATED, DELETED, UPDATED, MOVED

Webhook Functionality

  1. Webhooks send HTTP POST requests to a URL you provide when specified events occur.
  2. You can choose which events you want to be notified about, allowing you to reduce the number of HTTP requests to your server.
  3. Teamwork provides security features such as HMAC SHA256 checksums to verify the authenticity of webhook requests.

Best Practices

  1. Use webhooks to integrate Teamwork with other applications, generate reports, back up data, or extend functionality.
  2. Implement proper security measures by verifying the signature of incoming webhook requests.
  3. Handle webhook responses appropriately - responses with status codes greater than 400 are considered failures and will be retried up to 3 times.

In summary, Teamwork's API offers a robust webhook system that allows you to subscribe to a wide range of events across various aspects of project management, enabling real-time integrations and automations based on activities within your Teamwork projects.

Rate Limits and other limitations

The Teamwork API has specific rate limits and paging mechanisms in place to manage API usage effectively. Here are the key points regarding the API rate limits and paging:

API Rate Limits

  1. The Teamwork API has a rate limit of 120 requests per minute per user.

  2. If you exceed the rate limit, you will receive a 429 Too Many Requests response until the current time window has ended.

  3. Each API response includes the following headers:

    • X-Rate-Limit-Limit: The rate limit ceiling for this endpoint
    • X-Rate-Limit-Remaining: The number of requests left for the time window
    • X-Rate-Limit-Reset: The remaining window before the rate limit resets, in UTC epoch seconds
  4. For Teamwork Projects, if more than 150 requests per minute are received, a HTTP 429 Error code will be returned.

  5. The maximum rate limit is based on your subscription plan, and there are no additional add-on options for rate limits outside the subscription plan.

Paging Mechanism

  1. The Teamwork API uses three different headers associated with paging:

    • x-page: The current page being returned
    • x-pages: The total number of pages available
    • x-records: The total number of items available
  2. You can request a specific page by adding the parameter &page=n to your API call, where n is the page number you want.

  3. For V3 endpoints, the meta object in the response includes a page object with the following information:

    • pageOffset: Starts at 0 for page 1, increments as you page up
    • pageSize: Total number of records returned per page (default is 50, max is usually 500)
    • count: Total number of records for your request based on specified parameters
    • hasMore: Indicates if there are more pages left in your request
  4. There is a limit of 50,000 records per request. For example, you could use pageSize=500&page=100 to reach this limit.

  5. For requests exceeding 50,000 records, some endpoints provide parameters (like updatedAfter or updatedAfterDate) to request the next set of records.

Best Practices

  1. Always check the rate limit headers in your API responses to avoid exceeding the limits.

  2. When syncing data or pulling paged data constantly, use the updatedAfterDate parameter to avoid reduced rate limits.

  3. Utilize the paging mechanism effectively to retrieve large datasets without hitting rate limits.

  4. For large data sets, consider using the V3 endpoints and their meta data for more efficient pagination.

By understanding and adhering to these rate limits and paging mechanisms, you can optimize your use of the Teamwork API and avoid potential issues related to excessive requests.

Latest API Version

Based on the search results provided, I could not find a specific mention of the most recent version of the Teamwork API. The search results contain general information about Teamwork's products and API documentation, but do not specify a particular version number for the API.

However, I can provide some key points about the Teamwork API based on the available information:

API Documentation

Teamwork provides comprehensive API documentation for developers to integrate with their platform. The documentation covers:

  • Teamwork.com API for project management
  • Teamwork Desk API for client communication
  • Teamwork Spaces API for content management

API Access

To use the Teamwork API, you need:

  • An API key
  • Your Teamwork subdomain or custom domain
  • To set up authentication using environment variables or passing credentials as function arguments

API Capabilities

The Teamwork API allows developers to:

  • Integrate Teamwork with other tools
  • Create customized processes
  • Access and manipulate data related to projects, tasks, time tracking, etc.

Best Practices

When working with the Teamwork API:

  • Refer to the official documentation for the most up-to-date information
  • Use the provided Swagger documentation for interactive API exploration
  • Follow authentication best practices
  • Consider using available wrappers/SDKs like the npm package "teamwork-api" for easier integration

While I couldn't find the specific version number you asked for, the best approach would be to check the official Teamwork developer documentation or contact their support for the most current API version information.

How to get a Teamwork developer account and API Keys?

To get a developer account for Teamwork and create an API integration, you need to follow these steps:

Accessing the Developer Portal

  1. You can access the Teamwork Developer Portal in two ways:

    • Extend your current Teamwork URL by adding "/developer" (e.g., https://{yourTeamworkURL}.com/developer)
    • Visit https://developer.teamwork.com/ and click on the Developer login button
  2. You must be a user in the owner company of your Teamwork account to access the Developer Portal.

Creating an App

  1. Once logged in, you can create your first app in the Developer Portal.

  2. When creating an app, you'll need to provide the following information:

    • Name: The name of your app that will show on the consent screen
    • Icon: An icon shown to users during authentication and installation
    • Description: What the app will do
    • Product: Which Teamwork.com product(s) your app intends to use (you must select at least one)
    • Redirect URIs: Return URI for your app (you must add at least one)

Key Points to Consider

  • The Developer Portal is associated with your Teamwork.com account, so while developing, your app will only have access to the data in the selected Teamwork account.
  • You need to set up your publisher details before creating an app.
  • All users in your Teamwork.com owner company have access to the Developer Portal, but standard users can only view live apps and apps in development.
  • App owners have full permissions to update app details, delete the app, update app secrets, add users, and more.

Best Practices

  1. Ensure your redirect URIs are secure (https) unless using localhost.
  2. Provide clear and concise descriptions for your app to help users understand its purpose.
  3. Select only the necessary product scopes for your app to maintain security.
  4. Keep your client secret secure and never share it publicly.
  5. Regularly review and update your app details as needed.

By following these steps and considerations, you can successfully create a developer account and start building your API integration with Teamwork.

What can you do with the Teamwork API?

Based on the provided search results, I can provide information about the data models you can interact with using the Teamwork API. Here's a list of bullet points going over what is possible for each data model:

Projects

  • Retrieve a list of projects
  • Get details of specific projects
  • Create new projects
  • Update existing project information
  • Delete projects (if supported)

Tasks

  • Create tasks within task lists
  • Retrieve task details
  • Update task information
  • Assign tasks to users
  • Set start and due dates for tasks
  • Add descriptions to tasks

Task Lists

  • Create task lists
  • Retrieve task lists
  • Update task list information
  • Delete task lists (if supported)

Users

  • Retrieve user information
  • Assign users to tasks
  • Manage user permissions (based on the user's access level)

Time Entries

  • Create time entries for tasks
  • Retrieve time entry information
  • Update time entries
  • Delete time entries (if supported)

Comments

  • Add comments to tasks or projects
  • Retrieve comments
  • Update comments
  • Delete comments (if supported)

Files

  • Upload files to projects or tasks
  • Retrieve file information
  • Update file metadata
  • Delete files (if supported)

Spaces (Teamwork Spaces)

  • Access Spaces data (for users with active Spaces seats)
  • Perform operations based on user permissions and subscription plan features

Authentication

  • Use API key authentication for personal use or testing
  • Implement OAuth 2.0 for application or integration development

It's important to note that the Teamwork API has multiple versions (V1, V2, and V3), with V3 being the recommended version for new integrations. The available data models and operations may vary slightly between versions, but the core functionality remains similar.

When working with the Teamwork API, always refer to the most up-to-date API documentation for the specific version you're using, as new features may be added or existing ones modified over time.