HubSpot OAuth v1 Is Going Away: A Practical Plan for Older CRM Integrations

Illustrated infographic summarizing: HubSpot OAuth v1 Is Going Away: A Practical Plan for Older CRM Integrations

By Greg Nowak. Updated September 29, 2026.

HubSpot’s OAuth v1 endpoints remain available until February 16, 2027. After that, calls to them will begin returning errors. For a business, the visible symptom may be a CRM sync that stops updating, a customer who cannot connect an app, or a disconnection that fails quietly.

The code may be older than the team running it. It could live in an agency-built connector, a background worker, a reporting service or a script maintained by a former supplier. Treat the deadline as a small migration project: establish where the calls happen, update the token lifecycle, and prove that existing connections still work.

Find the calls before estimating the work

Search every repository and deployment that touches HubSpot authentication. This command catches the documented legacy paths when they appear as complete strings:

rg -n '/oauth/v1/(token|access-tokens|refresh-tokens)' .

Also inspect SDK wrappers, environment configuration, serverless functions, scheduled jobs and API traffic. Code that builds a URL from separate strings will escape that search. If HubSpot sent a notice naming affected app IDs, use it to prioritise the audit; it reflects recent traffic and may miss dormant paths.

For each caller, record its owner, environment, purpose and connected accounts. A refresh worker deserves early attention because it can affect many established connections. A rarely used revoke call still needs a test: you do not want to discover a broken disconnect process during an incident.

Path found What to test Priority
Authorization-code exchange Complete a new installation High if new customers connect regularly
Access-token refresh Refresh an existing connection and complete a CRM request High for every active integration
Token metadata lookup Check both access and refresh tokens Based on the workflow that uses it
Refresh-token revocation Disconnect and confirm the token can no longer be used Required before release
A compact test plan for the four OAuth behaviors affected by the v1 retirement.

Update the full token lifecycle

As of September 2026, HubSpot’s current OAuth reference uses the 2026-09 API version. Use POST /oauth/2026-09/token for authorization-code exchange and refresh, POST /oauth/2026-09/token/introspect for token metadata, and POST /oauth/2026-09/token/revoke to revoke a refresh token. HubSpot’s older v1 migration guide shows the equivalent 2026-03 paths, so check which supported version your application is deliberately using rather than mixing examples.

Send credentials and tokens as application/x-www-form-urlencoded body fields, never in a token URL or query string. For example, a refresh request against the current version has this shape:

curl --request POST \
  --url https://api.hubapi.com/oauth/2026-09/token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=refresh_token' \
  --data-urlencode 'refresh_token=REFRESH_TOKEN' \
  --data-urlencode 'client_id=CLIENT_ID' \
  --data-urlencode 'client_secret=CLIENT_SECRET'

Use placeholders only in a shared example; keep real secrets out of shell history, logs and support tickets. Read the returned access_token and calculate its expiry from expires_in. HubSpot currently describes access tokens as lasting 30 minutes, but the response is the value your code should use. Check token storage too: HubSpot defines no maximum access-token size, so a short database field can turn a successful refresh into a failed integration.

Introspection replaces the two v1 metadata GET calls with one POST. Include token_type_hint as access_token or refresh_token, then update code that reads the response: the newer model includes fields such as active and token_use. For explicit revocation, send the refresh token in the body of the revoke request. Update error handling to use the standard error and error_description fields. HubSpot retains status and message for compatibility.

Prove existing connections survive the release

A successful new installation covers only one route through the code. Test a representative existing account through a refresh and a real, low-risk CRM read. Include accounts with different scopes or older stored token records where relevant. Test an expired authorization code, an invalid client secret, a revoked refresh token, introspection of both token types and the disconnect flow. The install URL, consent page and requested scopes do not change for this migration.

Release in stages if your architecture allows it. Watch OAuth 4xx responses, refresh failures and unexpected requests for customers to reconnect. Keep the previous release available for a short rollback window, but check what its OAuth code calls: a version that still relies on v1 cannot be the recovery plan after the deadline. Preserve stored credentials during deployment and rollback.

Ask for evidence, not just a completion message

Before signing off, ask the technical owner for a list of affected systems, the version chosen, test results for new and established connections, and a monitored release date comfortably ahead of February 16, 2027. Repeat the code search and check production traffic after deployment. If ownership or access is unclear, resolve that early; finding the right repository can take longer than changing the endpoint.

If an inherited HubSpot integration has no clear owner, Greg can help scope the audit and turn the findings into a manageable migration plan.

Related on GrN.dk

Need help with this kind of work?

Plan the HubSpot migration with Greg Get in touch with Greg.

Sources

Seneste artikler

Når en ingrediens ændres, kan menukortet kræve rettelser, selv om opskriftsdatoen står stille. Sådan kan AI hjælpe med gennemgang og godkendelse i WordPress.

Når checkout fejler, skal driftspartneren have noget konkret at arbejde med. Se, hvordan AI, dmesg og journalctl kan samle sporene i en brugbar driftssag.

Brug oktober til at afprøve daglige AI-forslag til genbestilling før Black Friday. Få styr på Shopify-data, leveringstid og budget, før forslagene bliver til indkøb.

Jeg lærte serverdrift ved at ødelægge mine egne servere. Jeg søger en, der vil stå ved siden af mig, mens jeg gør det, og så gøre det selv ugen efter.

Jeg er god til at bygge og dårlig til at ringe. Her er, hvem jeg vil have ved siden af mig, hvad der er lettest at sælge, og hvordan vi deler det.

AI kan samle onboardingopgaverne før første arbejdsdag. Se, hvordan lederen godkender konkret adgang, og hvordan åbne opgaver bliver fulgt til dørs.

En AI-assistent kan svare på spørgsmål og føre kunder til booking. Her er de konkrete grænser for pris, levering, personoplysninger og kontakt med en medarbejder.

Et sikkert AI-workflow kan omsætte Meet- og Teams-transskripter til godkendte beslutninger og opgaver i Jira eller Asana – uden at slippe kontrollen.

AI kan finde opsigelsesfrister og prisreguleringer i leverandørkontrakter, sende usikre fund til godkendelse og oprette de rette påmindelser.

Sådan automatiserer danske virksomheder Gmail og Microsoft 365 med hurtig sortering, begrænsede rettigheder og menneskelig godkendelse.