Back

Copper API Essential Guide

Aug 14, 20246 minute read

What type of API does Copper provide?

Based on the search results provided, Copper does not appear to have a specific API type mentioned. The search results discuss different API types like REST, SOAP, GraphQL, and gRPC in general, but do not contain any information about Copper's API specifically.

To accurately answer what type of API Copper has, we would need to look at Copper's official documentation or developer resources. Without that information, I cannot definitively state what type of API Copper uses.

However, based on general trends in modern API development:

  1. REST APIs are very common for web and mobile applications, so it's possible Copper uses a REST API.
  2. GraphQL has been gaining popularity in recent years, especially for applications that need flexible data querying.
  3. SOAP is less common for newer applications but still used in some enterprise environments.
  4. gRPC is used for high-performance scenarios but is less common overall.

To get an accurate answer, I would recommend:

  1. Checking Copper's official developer documentation
  2. Looking for any API references on Copper's website
  3. Contacting Copper's support or developer relations team directly

Without specific information about Copper's API, we can't definitively say what type they use. The most likely options would be REST or possibly GraphQL, but this is speculation based on current trends rather than confirmed information about Copper.

Does the Copper API have webhooks?

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

Webhook Support

Copper offers webhooks that allow integrated systems to receive near real-time notifications of certain events in Copper.

Event Types

You can subscribe to the following types of events:

  • New, update, and delete events for:
    • Leads
    • Projects
    • Tasks
    • Opportunities
    • Companies
    • People
    • Activity logs

Key Concepts

  • Subscription: Registering a URL that notifications will be sent to when specific events occur
  • Event: A specific action in Copper that triggers a notification
  • Notification: The object delivered via HTTPS to the specified URL

Setting Up Webhooks

  • Webhooks are set up by making a POST request to the Copper API
  • You specify:
    • The target URL to receive notifications (must be HTTPS)
    • The event type (new, update, delete)
    • The record type (lead, project, task, etc.)
    • Optionally, a custom secret for authentication

Additional Notes

  • Webhook notifications can take up to 15 minutes to be sent
  • The webhook payload is delivered as JSON
  • Only HTTPS URLs are accepted as webhook endpoints
  • You can use services like ngrok, RequestBin, or Zapier for testing webhooks

In summary, Copper's webhook system allows you to subscribe to a variety of event types for different record types, enabling near real-time updates for integrated systems. This can be useful for keeping external systems in sync with data changes in Copper.

Rate Limits and other limitations

Here are the key points about the API Rate Limits for the Copper API:

General Rate Limit

  • All API calls are limited to 180 requests per minute [1].
  • This rate limit is evaluated on a rolling window basis [1].
  • If this limit is exceeded, calls will return an error response with status code 429 [1].

Bulk API Rate Limit

  • Bulk APIs have an additional rate limit of 3 requests per second [1].
  • Exceeding this limit may also result in 429 error responses [1].

Additional Limitations

  • There is a limit of 30,000 HTTP requests per 5 minutes for a single IP address [2].
  • Authorization errors (wrong API key or signature) are limited to 200 failed requests per hour for a single IP address [2].
  • Erroneous API requests (business logic errors) are limited to 60 requests per minute for a single UserID [2].

Webhook Rate Limits

  • Webhooks are limited to 600 notifications per minute per account [4].
  • There is also a limit of 1,800 notifications per account for every 10 minutes [4].

Key Points to Consider

  • Rate limits help ensure stability and performance of the API [5].
  • If rate limits are exceeded, requests will be temporarily blocked [2].
  • It's important to implement proper error handling for 429 responses in your integration.
  • Consider implementing retry logic with exponential backoff for rate limit errors.

By adhering to these rate limits and implementing proper error handling, developers can build robust integrations with the Copper API while ensuring smooth performance and avoiding disruptions due to rate limiting.

Latest API Version

Based on the search results provided, here are the key points regarding the most recent version of the Copper API:

  1. The most recent version of the Copper API is not explicitly stated in the search results.

  2. The Copper Developer API provides a RESTful interface with JSON-formatted responses to access most Copper resources.

  3. The API documentation is available at https://developer.copper.com/.

  4. The API domain was updated from https://api.prosperworks.com/developer_api/ to https://api.copper.com/developer_api/.

  5. For the Demo environment (demo.copper.co), the API endpoint is https://api.stage.copper.co.

  6. The most recent changelog entry mentioned in the search results is dated June 19, 2024.

  7. Copper continuously works on expanding their API functionality.

Key points to consider:

  • The API documentation is regularly updated, with the most recent changes mentioned in the changelog.
  • Developers should use the updated domain (api.copper.com) for API requests.
  • The API provides access to various Copper resources and supports RESTful operations.
  • Authentication is required using an API key and secret.

Best practices:

  1. Always refer to the official documentation for the most up-to-date information on the API.
  2. Use the latest API endpoint (https://api.copper.com/developer_api/) for production environments.
  3. Keep track of the changelog for any updates or changes to the API.
  4. Implement proper authentication using the API key and secret.
  5. Be aware of and respect the rate limits to ensure stable API performance.

In conclusion, while the exact version number of the most recent Copper API is not provided, the API is actively maintained and updated. Developers should refer to the official documentation and changelog for the most current information on the API's features and functionality.

How to get a Copper developer account and API Keys?

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

  1. Sign up for a Copper account:

    • Go to the Copper website and sign up for an account if you don't already have one.
  2. Generate an API key:

    • Log in to your Copper account
    • Go to the Settings tab on the sidebar
    • Click on Integrations, then API Keys
    • Click "Generate API Key" to create a new API key
  3. Get your API credentials:

    • You will receive two strings required for authentication:
      • API key
      • API key secret
  4. Set up your API integration:

    • Use the API key and secret in your API requests for authentication
    • The Copper API base URL is: https://api.copper.com/developer_api/
  5. Make API requests:

    • Include the following headers in your API requests:
      • Authorization: ApiKey <Your API Key>
      • X-PW-Application: developer_api
      • X-PW-UserEmail: <Email address of the token owner>
      • Content-Type: application/json
  6. Review the API documentation:

    • Copper provides detailed API documentation at https://developer.copper.com/

What can you do with the Copper API?

Based on the search results provided, here is a list of data models you can interact with using the Copper API, along with what is possible for each:

Companies

  • Create new companies
  • Delete companies
  • Get company details
  • Get multiple companies
  • Update company information

Customer Sources

  • Create new customer sources
  • Delete customer sources
  • Get customer source details
  • Get multiple customer sources
  • Update customer source information

Leads

  • Create new leads
  • Delete leads
  • Get lead details
  • Get multiple leads
  • Update lead information

Opportunities

  • Create new opportunities
  • Delete opportunities
  • Get opportunity details
  • Get multiple opportunities
  • Update opportunity information

People

  • Create new person records
  • Delete person records
  • Get person details
  • Get multiple people records
  • Update person information

Projects

  • Create new projects
  • Delete projects
  • Get project details
  • Get multiple projects
  • Update project information

Tasks

  • Create new tasks
  • Delete tasks
  • Get task details
  • Get multiple tasks
  • Update task information

Users

  • Create new users
  • Delete users
  • Get user details
  • Get multiple users
  • Update user information

Additional capabilities:

  • Search functionality across data models
  • Pagination of search results
  • Webhook subscriptions for real-time updates
  • Ability to perform common operations like creating, canceling, and managing orders

The Copper API provides a RESTful interface with JSON-formatted responses, allowing developers to access and manipulate data, create and update records, and perform various operations across these data models.