Product

How Jentic Works

From API assessment to production deployment in four simple steps.

Product Overview

PLATFORM

Jentic OneSelf-hosted, open-source control plane between your agents and any APIAPI DirectoryBrowse 10,000+ APIs ready for AI agent integrationAPI ScorecardAssess your APIs for AI-readiness with automated scoringAgentic SandboxSafely simulate AI agents with your production APIsJenticSign in to the Jentic web app

CAPABILITIES

IntegrationConnect AI agents to your existing systemsWorkflowsDiscover and capture successful agent workflowsGovernanceDefine, observe, and enforce AI policies

TOOLS

Arazzo UIVisualize Arazzo workflows as interactive documentationArazzo EditorBuild and edit multi-step API workflows visually
Pricing
Developers

GET STARTED

DocumentationGuides and API referenceQuickstartGet up and running in minutes

COMMUNITY

GitHubOpen source projects and examples
Resources
BlogLatest articles and insightsPress & MediaBrand assets and press contactOpen StandardsBuilt on open specs. Never locked in.NewsletterAPIs, AI agents, mixed with architecture and strategy.
Company
About UsOur mission and teamCareersJoin our teamContactGet in touch
Install Jentic OneBook a Demo
How Jentic WorksJentic OneAPI DirectoryAPI ScorecardAgentic SandboxJenticIntegrationWorkflowsGovernanceArazzo UIArazzo Editor
Pricing
DocumentationQuickstartGitHub
BlogPress & MediaOpen StandardsNewsletter
About UsCareersContact
Request a demoInstall Jentic One
Jentic
For Enterprises
  • Product Overview
  • Agentic Sandbox
  • Book a Demo
For Developers
  • Jentic One
  • Documentation
  • GitHub
Company
  • About Jentic
  • Careers
  • Contact Us
ISO/IEC 27001:2022 certification badge issued by Prescient Security

Information Security Management System

Certified to ISO/IEC 27001:2022 by Prescient Security

Terms & Conditions•Privacy Policy•
© 2026 Jentic. All rights reserved.
APIs / CRM / Hubspot / Services
Services logo

HubSpot Services

Browse all Hubspot APIs
✓ Official Vendor SpecCRMContact Managementoauth2,apiKey11 EndpointsREST

For Agents

Perform read, write, search, and batch operations on any HubSpot CRM object type — standard or custom — through a single templated /crm/v3/objects/{objectType} interface.

Use for: I need to fetch a record from a HubSpot custom object by ID, Create a record in any CRM object type without writing object-specific code, Search a custom object for records matching specific property values, Bulk-update records of a custom object during a data backfill

Not supported: Does not handle property definitions, schema creation, or marketing automation — use for record-level CRUD, batch, and search across any object type only.

The HubSpot CRM Services API provides a generic CRUD, batch, and search interface over any HubSpot CRM object type — including standard objects (companies, contacts, deals, line items, products, tickets, quotes) and custom objects defined via the Schemas API. Endpoints are templated on /crm/v3/objects/{objectType} so a single integration pattern works for every object type in the portal. The API supports single-record operations (read, update, archive), batch read, batch create, batch update, batch upsert by unique property, batch archive, and a full-featured search with filters, sorting, and paging.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the Services to your agent

Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Services, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.

Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.

1

Step 1: Jentic One Host machine

# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
2

Step 2: Agent machine

# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register       # connects your agent to your Jentic One instance

Jentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.

Capabilities

What an agent can do with Services API.

Read any CRM object record by ID via GET /crm/v3/objects/{objectType}/{objectId}

List records of any object type with pagination using GET /crm/v3/objects/{objectType}

Create a record of any object type with POST /crm/v3/objects/{objectType}

Update record properties with PATCH /crm/v3/objects/{objectType}/{objectId}

Search any object type using POST /crm/v3/objects/{objectType}/search with filters and sort

Bulk-create records with POST /crm/v3/objects/{objectType}/batch/create

Upsert records by a unique property using POST /crm/v3/objects/{objectType}/batch/upsert

Use Cases

Patterns agents use Services API for, with concrete tasks.

★ Generic CRM Object Sync Layer

Companies that integrate HubSpot with multiple internal systems prefer one templated client over many object-specific ones. The Services API exposes /crm/v3/objects/{objectType} endpoints so a single sync layer can read, write, and search standard objects (companies, deals, line items) and custom objects (loans, projects, vehicles) using the same code paths. New object types added later require zero new integration code.

Call POST /crm/v3/objects/p_loan/batch/upsert with idProperty='external_loan_id' and a list of loan records to sync from the loan origination system.

Cross-Object Data Backfill

When a new property is added to several HubSpot object types, operations needs to backfill values from a source system. Using POST /crm/v3/objects/{objectType}/batch/update against each object type, the backfill script processes records 100 at a time per object type. The same code handles companies, deals, and any custom object — only the objectType path parameter changes — keeping backfill logic compact and auditable.

For each objectType in [companies, deals, p_loan], call POST /crm/v3/objects/{objectType}/batch/update with batches of 100 records containing the new property values.

Custom Object Search Across Properties

Sales and operations teams need to filter custom object records by property combinations — e.g., all 'Project' records owned by a given user with status='In Progress' and start_date in the last 30 days. POST /crm/v3/objects/{objectType}/search supports filterGroups, sorts, and after-paging so an agent can paginate through every match. The same endpoint shape works on standard objects too, so one search routine covers the entire portal.

Call POST /crm/v3/objects/p_project/search with filterGroups for hubspot_owner_id and status, sort by start_date descending, and page through results 100 at a time.

AI Agent Working Across Custom Objects

An AI assistant agent answers questions like 'show me the top 5 active loans for Acme' regardless of whether 'loan' is standard or custom. Through Jentic the agent searches for the generic search and read operations, loads their schemas, and executes them with the right objectType. Jentic stores OAuth credentials in its vault so the agent only handles scoped tokens.

Search Jentic for 'search any hubspot crm object', load the search operation, then execute it with objectType='p_loan' and a filter on associated companyId for Acme.

Key Endpoints

11 endpoints — the hubspot crm services api provides a generic crud, batch, and search interface over any hubspot crm object type — including standard objects (companies, contacts, deals, line items, products, tickets, quotes) and custom objects defined via the schemas api.

METHOD

PATH

DESCRIPTION

GET

/crm/v3/objects/{objectType}

List records of an object type

POST

/crm/v3/objects/{objectType}

Create a record

GET

/crm/v3/objects/{objectType}/{objectId}

Read a record by ID

PATCH

/crm/v3/objects/{objectType}/{objectId}

Update a record

POST

/crm/v3/objects/{objectType}/search

Search records of an object type

POST

/crm/v3/objects/{objectType}/batch/create

Batch create records

POST

/crm/v3/objects/{objectType}/batch/upsert

Batch upsert records by unique property

GET

/crm/v3/objects/{objectType}

List records of an object type

POST

/crm/v3/objects/{objectType}

Create a record

GET

/crm/v3/objects/{objectType}/{objectId}

Read a record by ID

PATCH

/crm/v3/objects/{objectType}/{objectId}

Update a record

POST

/crm/v3/objects/{objectType}/search

Search records of an object type

POST

/crm/v3/objects/{objectType}/batch/create

Batch create records

POST

/crm/v3/objects/{objectType}/batch/upsert

Batch upsert records by unique property

Why Jentic?

Three things that make agents converge on Jentic-routed access.

Credential management

Credential isolation

HubSpot OAuth tokens and private app keys are stored encrypted in the Jentic vault. Agents receive scoped execution tokens — the raw secret never enters agent context or logs.

Intent-based discovery

Intent-based discovery

Agents search Jentic with intents like 'list hubspot crm records' and Jentic returns the templated Services operations with typed input schemas, so the agent can call any objectType without browsing HubSpot's docs.

Time to first call

Time to first call

Direct HubSpot integration with OAuth, batch handling, and per-object code paths: 3-5 days. Through Jentic: under an hour — search, load schema, execute against any object type.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Alternative

Salesforce REST API

→

Salesforce sObject REST API offers similar generic CRUD across any object type, including custom objects.

Choose Salesforce when the customer is on Salesforce CRM and needs metadata-driven CRUD across standard and custom objects.

Complementary

HubSpot Custom Objects

→

Custom Objects API offers a focused interface for custom-only object CRUD when you don't need the generic shape.

Use Custom Objects when the integration only touches custom object types and you want clearer semantics in code.

Complementary

HubSpot CRM Schemas

→

Define custom object types via Schemas before performing CRUD on their records via Services.

Use Schemas first to define the object type, then use Services to operate on its records.

FAQs

Specific to using Services API through Jentic.

What authentication does the HubSpot CRM Services API use?

It supports OAuth 2.0 (recommended for public apps) and HubSpot private app access tokens passed as a Bearer token in the Authorization header. Through Jentic the token is stored encrypted in the vault and injected at execution time so the agent never holds the raw secret.

Can I use the Services API on standard objects like Contacts and Deals?

Yes. The {objectType} path parameter accepts both standard object types (contacts, companies, deals, tickets, quotes, line items, products) and custom object IDs, so the same endpoints power CRUD across all of them.

What are the rate limits for the HubSpot CRM Services API?

HubSpot enforces 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on Enterprise tiers, plus daily quotas. Use POST /crm/v3/objects/{objectType}/batch/create, batch/update, and batch/upsert (up to 100 records each) to stay efficient.

How do I upsert records by an external ID through Jentic?

Search Jentic for 'upsert hubspot crm record by external id', load POST /crm/v3/objects/{objectType}/batch/upsert, and execute it with idProperty set to your external ID property and inputs containing the records. Jentic returns typed responses for each record.

Does the search endpoint support filtering by associations?

Yes. POST /crm/v3/objects/{objectType}/search accepts filters on associated record IDs (e.g., associations.deal) alongside property filters, plus sort and paging. Use after-tokens to page through more than 200 results.

Can I list records that have been archived?

Yes. Pass archived=true on GET /crm/v3/objects/{objectType} to retrieve archived records. Without this parameter, only active records are returned.

GET STARTED

Start building with Services API

Explore with Jentic
View OpenAPI Document