Article content in HTML
', featuredImage: 'https://cdn.example.com/image.jpg', state: 'PUBLISHED', publishDate: new Date().toISOString() }); ``` ### Upload a File ```javascript // Upload a file to the HubSpot File Manager const formData = new FormData(); formData.append('file', fileBuffer, { filename: 'image.jpg', contentType: 'image/jpeg' }); formData.append('folderPath', '/blog-images'); formData.append('options', JSON.stringify({ access: 'PUBLIC_INDEXABLE' })); const fileResponse = await fetch('https://api.hubapi.com/files/v3/files', { method: 'POST', headers: { Authorization: `Bearer ${ACCESS_TOKEN}` }, body: formData }); ``` --- ## API Limits and Rate Limiting Management HubSpot imposes API usage limits depending on the plan: | Plan | Daily Limit | Per 10 Seconds Limit | |---|---|---| | Free | 250,000 calls/day | 100 calls/10s | | Starter | 500,000 calls/day | 150 calls/10s | | Professional | 1,000,000 calls/day | 200 calls/10s | | Enterprise | 2,000,000 calls/day | 300 calls/10s | ### Rate Limiting Management ```javascript // Implement retry with exponential backoff async function apiCallWithRetry(apiCall, maxRetries = 3) { for (let attempt = 0; attempt < maxRetries; attempt++) { try { return await apiCall(); } catch (error) { if (error.code === 429) { // Rate limit exceeded - wait and retry const retryAfter = error.response?.headers?.['retry-after'] || Math.pow(2, attempt); console.log(`Rate limited. Retrying in ${retryAfter} seconds...`); await new Promise(resolve => setTimeout(resolve, retryAfter * 1000)); } else { throw error; } } } throw new Error('Max retries exceeded'); } ``` --- ## Integration Development Best Practices **1. Use the official HubSpot SDK.** The official HubSpot SDK for Node.js (`@hubspot/api-client`) simplifies authentication, error handling and rate limiting. **2. Implement idempotency.** Integrations must be idempotent: processing the same event multiple times must not create duplicates or side effects. **3. Handle errors correctly.** Implement retry with exponential backoff for 429 (rate limit) and 5xx (server error) errors. **4. Use webhooks instead of polling.** Webhooks are more efficient than polling for receiving real-time updates. **5. Store tokens securely.** Never store access tokens in source code. Use environment variables or a secrets manager. **6. Implement logging and monitoring.** Log all API calls and errors to facilitate debugging. --- ## Publishing an Integration on the HubSpot Marketplace The HubSpot Marketplace has more than 1,500 integrations and is an excellent source of leads for developers and agencies. To publish an integration: 1. **Create a developer account** at developers.hubspot.com. 2. **Create an application** and configure the OAuth 2.0 flow. 3. **Develop and test** the integration in a sandbox account. 4. **Submit the integration** for review by the HubSpot team. 5. **Publish the integration** on the Marketplace. --- ## Frequently Asked Questions **What is the difference between the HubSpot v1 and v3 APIs?** HubSpot has gradually migrated from the v1 API (based on specific endpoints per object type) to the v3 API (based on CRM Objects with generic endpoints). In 2026, the v3 API is recommended for new integrations. **Can I use the HubSpot API for free?** Yes, the HubSpot API is available for all plans, including the free one. Usage limits vary depending on the plan. **Does HubSpot have a GraphQL API?** No, HubSpot does not offer a GraphQL API. All HubSpot APIs are REST. **Can I create custom objects with the HubSpot API?** Yes, the HubSpot Custom Objects API allows custom objects to be created, read, updated and deleted programmatically. Custom objects require HubSpot Enterprise. **How can I test the HubSpot API without affecting real data?** HubSpot offers sandbox accounts (available in Enterprise) and free developer accounts to test integrations without affecting real data. --- ## Conclusion The HubSpot API is a powerful tool for integrating external systems, automating processes and creating applications to publish on the HubSpot Marketplace. With more than 100 well-documented endpoints and an official SDK for Node.js, developing integrations with HubSpot is more accessible than ever in 2026. At Emovere we specialise in developing integrations with the HubSpot API. If you need to integrate HubSpot with your systems, contact our team. --- ## References [1] HubSpot — API Documentation. https://developers.hubspot.com/docs/api/overview [2] HubSpot — Node.js SDK. https://github.com/HubSpot/hubspot-api-nodejs [3] HubSpot — Webhooks Documentation. https://developers.hubspot.com/docs/api/webhooks [4] HubSpot — OAuth 2.0 Documentation. https://developers.hubspot.com/docs/api/oauth-quickstart-guide [5] HubSpot — API Rate Limits. https://developers.hubspot.com/docs/api/usage-detailsHow to Develop Integrations with the HubSpotAPI: Complete Guide for Developers in 2026
Complete guide to developing integrations with the HubSpot API in 2026: CRM Objects, Marketing, Webhooks, CMS, rate limiting and best practices for developers.



