- How do I install and configure hubspot/hubspot-php in a Laravel app?
- Install it with composer require hubspot/hubspot-php, then bind a configured Factory instance as a singleton in a service provider. Pull the access token from config or an environment variable instead of hardcoding it, and inject the client where needed. The package makes no framework assumptions, so plain constructor injection works cleanly alongside Laravel's container.
- Which Laravel and PHP versions does hubspot/hubspot-php support?
- The SDK is framework-agnostic and relies on a PSR-compatible HTTP client, so it works with Laravel 10 and 11 as long as the PHP floor matches your runtime. Laravel 10 and 11 imply PHP 8.1 or 8.2, so confirm the package's composer.json PHP constraint and your Guzzle major before installing. Pin it in composer.json and treat SDK bumps as deliberate, tested changes.
- How do I authenticate with a HubSpot private app access token?
- Create a private app in your HubSpot portal, copy the static access token, and pass it to the Factory when building the client. Store the token in config or an environment variable and never commit it to the repository. Private app tokens are single-portal only, which is the simplest architecture if you sync one HubSpot account.
- Does hubspot/hubspot-php support OAuth for marketplace apps?
- Yes, the SDK includes OAuth support with the refresh-token lifecycle needed for multi-portal marketplace apps. OAuth and private-app static tokens are materially different architectures, so decide which one you need before designing the integration. Marketplace apps require storing per-portal tokens and refreshing them before expiry, which adds real scope.
- What HubSpot CRM objects and endpoints can I call with this client?
- The generated client covers CRM objects such as contacts, companies, and deals, plus associations, custom properties, and raw HTTP requests. It is a fluent wrapper over HubSpot's REST APIs, so endpoint coverage tracks HubSpot's OpenAPI spec. Check the generated services for the exact endpoints your integration needs before scoping the work.
- How do I handle HubSpot API rate limits in a Laravel application?
- HubSpot enforces roughly 100 requests per 10 seconds per app plus daily caps, and the SDK is synchronous with no built-in backoff or concurrency control. Push calls onto Laravel queues with rate limiting, retry with exponential backoff, and add a dead-letter queue for failures. Batch endpoints help when daily call volume gets high.
- Should I pin the version of hubspot/hubspot-php?
- Yes. The client is generated from HubSpot's OpenAPI spec, so minor releases are frequent and major releases have broken signatures historically. Pin an exact version in composer.json rather than floating a caret across a major boundary, and upgrade deliberately with tests around your call sites.
- Is hubspot/hubspot-php licensed for commercial use?
- GitHub reports NOASSERTION for this package, meaning it could not detect a standard license file. HubSpot's SDKs are historically Apache-2.0, but verify the actual LICENSE file in the repository and HubSpot's developer terms before shipping any code. Treat license verification as a blocking legal gate rather than an assumption.
- Can hubspot/hubspot-php handle bidirectional sync and webhooks?
- The SDK handles outbound API calls only; webhook ingestion, signature validation, replay handling, and conflict resolution are yours to build. Bidirectional sync also needs change detection and a domain model for contacts, companies, deals, and associations. Scope it as a domain project rather than a simple dependency add.
- How does hubspot/hubspot-php compare to calling the API directly with Guzzle?
- If you already call HubSpot REST with hand-rolled Guzzle or cURL wrappers, the SDK is a near drop-in at the call site with typed responses and less boilerplate. Migration can be incremental, endpoint by endpoint, behind a feature flag. The trade-off is a thin community and sparse third-party examples, so expect to rely on HubSpot's docs and GitHub issues.