HubSpot · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Hubspot Batch API

224 actions 224 updates phrasing extends openapi/hubspot-batch-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for HubSpot's API. It is a proposal applied on top of the contract, not a document HubSpot publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 224 · first 16 shown; the file carries all of them

$.info
$.paths['/cms/blogs/2026-09/authors/batch/archive'].post
$.paths['/cms/blogs/2026-09/authors/batch/create'].post
$.paths['/cms/blogs/2026-09/authors/batch/read'].post
$.paths['/cms/blogs/2026-09/authors/batch/update'].post
$.paths['/media-bridge/2026-09/{appId}/properties/{objectType}/batch/archive'].post
$.paths['/media-bridge/2026-09/{appId}/properties/{objectType}/batch/create'].post
$.paths['/media-bridge/2026-09/{appId}/properties/{objectType}/batch/read'].post
$.paths['/cms/pages/2026-09/landing-pages/batch/archive'].post
$.paths['/cms/pages/2026-09/landing-pages/batch/create'].post
$.paths['/cms/pages/2026-09/landing-pages/batch/read'].post
$.paths['/cms/pages/2026-09/landing-pages/batch/update'].post
$.paths['/cms/pages/2026-09/landing-pages/folders/batch/archive'].post
$.paths['/cms/pages/2026-09/landing-pages/folders/batch/create'].post
$.paths['/cms/pages/2026-09/landing-pages/folders/batch/update'].post
$.paths['/cms/pages/2026-09/site-pages/batch/archive'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Hubspot Batch API
  version: 1.0.0
extends: openapi/hubspot-batch-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-24'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 223
- target: $.paths['/cms/blogs/2026-09/authors/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete several blog authors at once
      effect: destructive
      questions:
      - How do I remove a whole list of blog authors from my HubSpot blog in one call?
      - Can I delete multiple blog author profiles by their IDs together?
      instructions:
      - text: Delete the blog authors with IDs {author_ids}.
        slots:
          author_ids: requestBody.inputs
      - text: 'Remove these blog author profiles from the blog: {author_ids}.'
        slots:
          author_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/authors/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several blog authors at once
      effect: write
      questions:
      - Can I add a batch of new blog authors with names and bios in one request?
      - What's the quickest way to set up a team of writers as blog authors?
      instructions:
      - text: 'Create these blog authors: {authors}.'
        slots:
          authors: requestBody.inputs
      - text: Add {authors} as new author profiles on our blog.
        slots:
          authors: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/authors/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Look up several blog authors by ID
      effect: read
      questions:
      - How can I fetch the details of several blog authors when I already have their IDs?
      - Can I pull back only archived blog authors when reading them in bulk?
      instructions:
      - text: Get the blog author profiles for IDs {author_ids}.
        slots:
          author_ids: requestBody.inputs
      - text: 'Fetch archived blog authors {author_ids}, archived only: {archived}.'
        slots:
          author_ids: requestBody.inputs
          archived: query.archived
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/authors/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Edit several blog authors at once
      effect: write
      questions:
      - How do I change the bios or display names of many blog authors together?
      - Can one request update a group of existing blog author profiles?
      instructions:
      - text: 'Update these blog author profiles with the new details: {author_changes}.'
        slots:
          author_changes: requestBody.inputs
      - text: Apply {author_changes} to our existing blog authors.
        slots:
          author_changes: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/media-bridge/2026-09/{appId}/properties/{objectType}/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive app properties for a Media Bridge object type
      effect: destructive
      questions:
      - Can I retire several Media Bridge properties my app defined for one object type?
      - How would my media app hide properties it no longer needs on a media object type?
      instructions:
      - text: Archive the properties {property_names} on object type {object_type} for app {app_id}.
        slots:
          property_names: requestBody.inputs
          object_type: path.objectType
          app_id: path.appId
      - text: In Media Bridge app {app_id}, retire properties {property_names} from {object_type}.
        slots:
          app_id: path.appId
          property_names: requestBody.inputs
          object_type: path.objectType
      method: generated
      generated: '2026-09-24'
- target: $.paths['/media-bridge/2026-09/{appId}/properties/{objectType}/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Define new properties for a Media Bridge object type
      effect: write
      questions:
      - How can my Media Bridge app set up several custom properties on a media object type at once?
      - Can I register a batch of property definitions for my app's video or audio objects?
      instructions:
      - text: Create properties {property_definitions} on media object type {object_type} for app {app_id}.
        slots:
          property_definitions: requestBody.inputs
          object_type: path.objectType
          app_id: path.appId
      - text: 'Set up these Media Bridge properties for app {app_id} on {object_type}: {property_definitions}.'
        slots:
          app_id: path.appId
          object_type: path.objectType
          property_definitions: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/media-bridge/2026-09/{appId}/properties/{objectType}/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Read Media Bridge property definitions in bulk
      effect: read
      questions:
      - Which details can I get back for a list of my Media Bridge app's properties by name?
      - Can I include archived Media Bridge properties or filter by data sensitivity when reading them?
      instructions:
      - text: Read the Media Bridge properties {property_names} on {object_type} for app {app_id}.
        slots:
          property_names: requestBody.inputs
          object_type: path.objectType
          app_id: path.appId
      - text: 'Look up app {app_id} properties {property_names} for {object_type}, include archived: {archived}, sensitivity {data_sensitivity}.'
        slots:
          app_id: path.appId
          property_names: requestBody.inputs
          object_type: path.objectType
          archived: requestBody.archived
          data_sensitivity: requestBody.dataSensitivity
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete several landing pages
      effect: destructive
      questions:
      - How do I permanently delete a set of landing pages by ID?
      - Is deleting landing pages through the API the same as archiving them in the dashboard?
      instructions:
      - text: Delete landing pages {page_ids}.
        slots:
          page_ids: requestBody.inputs
      - text: 'Permanently remove these landing pages: {page_ids}.'
        slots:
          page_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several landing pages
      effect: write
      questions:
      - Can I publish a batch of new landing pages for a campaign in one call?
      - What's the way to create multiple landing pages programmatically at once?
      instructions:
      - text: 'Create these landing pages: {pages}.'
        slots:
          pages: requestBody.inputs
      - text: Spin up new landing pages from {pages}.
        slots:
          pages: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Fetch several landing pages by ID
      effect: read
      questions:
      - How can I get the content and settings for a handful of landing pages I know the IDs of?
      - Can I read landing pages that have been archived?
      instructions:
      - text: Get landing pages {page_ids}.
        slots:
          page_ids: requestBody.inputs
      - text: 'Fetch landing pages {page_ids}, archived only: {archived}.'
        slots:
          page_ids: requestBody.inputs
          archived: query.archived
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update several landing pages
      effect: write
      questions:
      - How do I change the content or settings on many landing pages together?
      - Can I archive landing pages in the dashboard by updating them instead of deleting them?
      instructions:
      - text: 'Update landing pages with these changes: {page_updates}.'
        slots:
          page_updates: requestBody.inputs
      - text: Apply {page_updates} to our existing landing pages.
        slots:
          page_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/folders/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete several landing page folders
      effect: destructive
      questions:
      - Can I remove a batch of landing page folders by ID?
      - How do I clean up empty landing page folders in one go?
      instructions:
      - text: Delete landing page folders {folder_ids}.
        slots:
          folder_ids: requestBody.inputs
      - text: Remove the landing page folders with IDs {folder_ids}.
        slots:
          folder_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/folders/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several landing page folders
      effect: write
      questions:
      - How can I set up a group of folders to organize landing pages?
      - Can I create multiple landing page folders in a single request?
      instructions:
      - text: Create landing page folders {folders}.
        slots:
          folders: requestBody.inputs
      - text: 'Make new folders for organizing landing pages: {folders}.'
        slots:
          folders: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/landing-pages/folders/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Rename or edit several landing page folders
      effect: write
      questions:
      - Can I rename a bunch of landing page folders at once?
      - Which request changes existing landing page folders in bulk?
      instructions:
      - text: Update landing page folders with {folder_updates}.
        slots:
          folder_updates: requestBody.inputs
      - text: 'Rename our landing page folders as follows: {folder_updates}.'
        slots:
          folder_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/site-pages/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete several website pages
      effect: destructive
      questions:
      - How do I permanently delete multiple website pages from my site?
      - Does deleting site pages via the API differ from the dashboard archive?
      instructions:
      - text: Delete website pages {page_ids}.
        slots:
          page_ids: requestBody.inputs
      - text: 'Permanently remove these site pages: {page_ids}.'
        slots:
          page_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/site-pages/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several website pages
      effect: write
      questions:
      - Can I create a batch of new website pages in one call?
      - What's the way to add multiple site pages to my HubSpot website programmatically?
      instructions:
      - text: 'Create these website pages: {pages}.'
        slots:
          pages: requestBody.inputs
      - text: Add new site pages built from {pages}.
        slots:
          pages: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/site-pages/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Fetch several website pages by ID
      effect: read
      questions:
      - How can I retrieve several website pages at once when I have their IDs?
      - Can I read back site pages that are archived?
      instructions:
      - text: Get website pages {page_ids}.
        slots:
          page_ids: requestBody.inputs
      - text: 'Fetch site pages {page_ids}, archived only: {archived}.'
        slots:
          page_ids: requestBody.inputs
          archived: query.archived
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/pages/2026-09/site-pages/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update several website pages
      effect: write
      questions:
      - How do I push content changes to many website pages together?
      - Can I archive site pages in the dashboard by updating archivedInDashboard?
      instructions:
      - text: Update website pages with {page_updates}.
        slots:
          page_updates: requestBody.inputs
      - text: Apply {page_updates} to our site pages.
        slots:
          page_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/posts/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete several blog posts
      effect: destructive
      questions:
      - How do I permanently delete a set of blog posts by ID?
      - Is deleting blog posts through the API the same as the in-app archive?
      instructions:
      - text: Delete blog posts {post_ids}.
        slots:
          post_ids: requestBody.inputs
      - text: 'Permanently remove these blog posts: {post_ids}.'
        slots:
          post_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/posts/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several blog posts
      effect: write
      questions:
      - Can I draft a batch of blog posts with their content in one request?
      - What's the way to import many articles into my HubSpot blog at once?
      instructions:
      - text: 'Create these blog posts: {posts}.'
        slots:
          posts: requestBody.inputs
      - text: Draft new blog posts from {posts}.
        slots:
          posts: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/posts/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Fetch several blog posts by ID
      effect: read
      questions:
      - How can I pull several blog posts at once when I know their IDs?
      - Can I retrieve only archived blog posts in bulk?
      instructions:
      - text: Get blog posts {post_ids}.
        slots:
          post_ids: requestBody.inputs
      - text: 'Fetch blog posts {post_ids}, archived only: {archived}.'
        slots:
          post_ids: requestBody.inputs
          archived: query.archived
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/posts/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update several blog posts
      effect: write
      questions:
      - How do I edit titles or content across many existing blog posts together?
      - Can one call apply changes to a batch of blog posts?
      instructions:
      - text: Update blog posts with {post_updates}.
        slots:
          post_updates: requestBody.inputs
      - text: Apply {post_updates} to our existing blog articles.
        slots:
          post_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/tags/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete several blog tags
      effect: destructive
      questions:
      - Can I delete a list of unused blog tags in one request?
      - How do I get rid of several blog topic tags by ID?
      instructions:
      - text: Delete blog tags {tag_ids}.
        slots:
          tag_ids: requestBody.inputs
      - text: 'Remove these tags from the blog: {tag_ids}.'
        slots:
          tag_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/tags/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several blog tags
      effect: write
      questions:
      - How can I add a set of new tags to my blog at once?
      - Can I create multiple blog tags in a single request?
      instructions:
      - text: Create blog tags {tags}.
        slots:
          tags: requestBody.inputs
      - text: 'Add these new topic tags to the blog: {tags}.'
        slots:
          tags: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/tags/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Fetch several blog tags by ID
      effect: read
      questions:
      - How do I read the names of several blog tags from their IDs?
      - Can I look up archived blog tags in bulk?
      instructions:
      - text: Get blog tags {tag_ids}.
        slots:
          tag_ids: requestBody.inputs
      - text: 'Fetch blog tags {tag_ids}, archived only: {archived}.'
        slots:
          tag_ids: requestBody.inputs
          archived: query.archived
      method: generated
      generated: '2026-09-24'
- target: $.paths['/cms/blogs/2026-09/tags/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Rename or edit several blog tags
      effect: write
      questions:
      - Can I rename a group of blog tags in one request?
      - What call changes several existing blog tags together?
      instructions:
      - text: Update blog tags with {tag_updates}.
        slots:
          tag_updates: requestBody.inputs
      - text: 'Rename our blog tags as follows: {tag_updates}.'
        slots:
          tag_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive items in a price book
      effect: destructive
      questions:
      - How do I archive a batch of items out of a specific price book?
      - Can I remove several products from one price book in a single request?
      instructions:
      - text: Archive items {item_ids} in price book {price_book_id}.
        slots:
          item_ids: requestBody.inputs
          price_book_id: path.priceBookId
      - text: Take {item_ids} out of active use in price book {price_book_id}.
        slots:
          item_ids: requestBody.inputs
          price_book_id: path.priceBookId
      method: generated
      generated: '2026-09-24'
- target: $.paths['/commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Add products to a price book
      effect: write
      questions:
      - How can I add a batch of products to one of my price books?
      - Does adding many items to a price book tell me which ones failed?
      instructions:
      - text: Add products {products} to price book {price_book_id}.
        slots:
          products: requestBody.inputs
          price_book_id: path.priceBookId
      - text: Create price book items in {price_book_id} for {products}.
        slots:
          price_book_id: path.priceBookId
          products: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update items in a price book
      effect: write
      questions:
      - How do I change prices for many items in a price book at once?
      - Can I bulk edit the items already in one price book?
      instructions:
      - text: Update items in price book {price_book_id} with {item_updates}.
        slots:
          price_book_id: path.priceBookId
          item_updates: requestBody.inputs
      - text: 'Reprice these entries in price book {price_book_id}: {item_updates}.'
        slots:
          price_book_id: path.priceBookId
          item_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/communication-preferences/2026-09/statuses/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Check subscription statuses for several contacts
      effect: read
      questions:
      - Which email subscriptions is each of these contacts opted into?
      - Can I check subscription statuses for a list of contacts within one business unit?
      instructions:
      - text: Get the {channel} subscription statuses for {contacts}.
        slots:
          channel: query.channel
          contacts: requestBody.inputs
      - text: Look up subscription statuses on channel {channel} for {contacts} in business unit {business_unit_id}.
        slots:
          channel: query.channel
          contacts: requestBody.inputs
          business_unit_id: query.businessUnitId
      method: generated
      generated: '2026-09-24'
- target: $.paths['/communication-preferences/2026-09/statuses/batch/unsubscribe-all'].post
  update:
    x-apievangelist-phrasing:
      intent: Unsubscribe contacts from all subscriptions
      effect: destructive
      questions:
      - How do I opt a list of contacts out of every email subscription at once?
      - Can I unsubscribe contacts from everything for just one business unit?
      instructions:
      - text: Unsubscribe {contacts} from all {channel} subscriptions.
        slots:
          contacts: requestBody.inputs
          channel: query.channel
      - text: Opt {contacts} out of everything on {channel} in business unit {business_unit_id}.
        slots:
          contacts: requestBody.inputs
          channel: query.channel
          business_unit_id: query.businessUnitId
      method: generated
      generated: '2026-09-24'
- target: $.paths['/communication-preferences/2026-09/statuses/batch/unsubscribe-all/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Check which contacts opted out of everything
      effect: read
      questions:
      - Have any of these contacts opted out of all communications?
      - How can I tell whether a set of contacts unsubscribed from all messages on a channel?
      instructions:
      - text: Check whether {contacts} have opted out of all {channel} communications.
        slots:
          contacts: requestBody.inputs
          channel: query.channel
      - text: See if {contacts} unsubscribed from everything in business unit {business_unit_id} on {channel}.
        slots:
          contacts: requestBody.inputs
          business_unit_id: query.businessUnitId
          channel: query.channel
      method: generated
      generated: '2026-09-24'
- target: $.paths['/communication-preferences/2026-09/statuses/batch/write'].post
  update:
    x-apievangelist-phrasing:
      intent: Set subscription statuses for several contacts
      effect: write
      questions:
      - How do I subscribe or unsubscribe a list of contacts to specific subscription types?
      - Can I change many contacts' communication preferences in one request?
      instructions:
      - text: 'Apply these subscription status changes: {status_changes}.'
        slots:
          status_changes: requestBody.inputs
      - text: Update contacts' subscription statuses per {status_changes}.
        slots:
          status_changes: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/objects/2026-03/{fromObjectType}/{fromObjectId}/associations/default/{toObjectType}/{toObjectId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Link two CRM records with the default association
      effect: write
      questions:
      - How do I connect one CRM record to another with the standard, unlabeled association?
      - Can I associate a single contact with a single company without picking a label?
      instructions:
      - text: Associate {from_object_type} {from_object_id} with {to_object_type} {to_object_id} using the default association.
        slots:
          from_object_type: path.fromObjectType
          from_object_id: path.fromObjectId
          to_object_type: path.toObjectType
          to_object_id: path.toObjectId
      - text: Create a default link from record {from_object_id} ({from_object_type}) to record {to_object_id} ({to_object_type}).
        slots:
          from_object_id: path.fromObjectId
          from_object_type: path.fromObjectType
          to_object_id: path.toObjectId
          to_object_type: path.toObjectType
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/objects/2026-03/{objectType}/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive a batch of records of any object type
      effect: destructive
      questions:
      - How do I archive many records of an object type I choose, like appointments, by ID?
      - Is there one bulk archive call that works for whichever CRM object type I name?
      instructions:
      - text: Archive {object_type} records {record_ids}.
        slots:
          object_type: path.objectType
          record_ids: requestBody.inputs
      - text: 'Move these {object_type} records to the recycling bin: {record_ids}.'
        slots:
          object_type: path.objectType
          record_ids: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/objects/2026-03/{objectType}/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a batch of records of any object type
      effect: write
      questions:
      - Can I bulk create records for an object type I specify in the path, such as appointments?
      - What's the generic way to create many CRM records of a chosen type?
      instructions:
      - text: Create {object_type} records from {records}.
        slots:
          object_type: path.objectType
          records: requestBody.inputs
      - text: 'Add a batch of new {object_type} entries: {records}.'
        slots:
          object_type: path.objectType
          records: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/objects/2026-03/{objectType}/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Read a batch of records of any object type
      effect: read
      questions:
      - How do I fetch many records of an object type I name, by ID or a unique property?
      - Can I get property history when bulk reading records of a chosen object type?
      instructions:
      - text: Read {object_type} records {record_ids} with properties {properties}.
        slots:
          object_type: path.objectType
          record_ids: requestBody.inputs
          properties: requestBody.properties
      - text: Fetch {object_type} records whose {id_property} is in {record_ids}, with history for {history_properties}.
        slots:
          object_type: path.objectType
          id_property: requestBody.idProperty
          record_ids: requestBody.inputs
          history_properties: requestBody.propertiesWithHistory
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/objects/2026-03/{objectType}/batch/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update a batch of records of any object type
      effect: write
      questions:
      - How can I bulk update records for whatever CRM object type I pass in?
      - Is there a generic batch update that takes the object type as a parameter?
      instructions:
      - text: Update {object_type} records with {record_updates}.
        slots:
          object_type: path.objectType
          record_updates: requestBody.inputs
      - text: Apply {record_updates} to existing {object_type} entries.
        slots:
          object_type: path.objectType
          record_updates: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/objects/2026-03/{objectType}/batch/upsert'].post
  update:
    x-apievangelist-phrasing:
      intent: Upsert a batch of records of any object type
      effect: write
      questions:
      - Can I create-or-update records of a chosen object type keyed on a unique property?
      - What's the generic upsert for an object type I specify, like appointments?
      instructions:
      - text: Upsert {object_type} records {records} by their unique property.
        slots:
          object_type: path.objectType
          records: requestBody.inputs
      - text: 'Create or update these {object_type} entries, matching on a unique value: {records}.'
        slots:
          object_type: path.objectType
          records: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/associations/2026-03/{fromObjectType}/{toObjectType}/batch/archive'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove all associations between record pairs
      effect: destructive
      questions:
      - How do I unlink many pairs of CRM records, for example contacts from companies, at once?
      - Can I bulk delete every association between specific records of two object types?
      instructions:
      - text: Remove associations from {from_object_type} to {to_object_type} for pairs {record_pairs}.
        slots:
          from_object_type: path.fromObjectType
          to_object_type: path.toObjectType
          record_pairs: requestBody.inputs
      - text: 'Unlink these {from_object_type} records from their {to_object_type} records: {record_pairs}.'
        slots:
          from_object_type: path.fromObjectType
          to_object_type: path.toObjectType
          record_pairs: requestBody.inputs
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/associations/2026-03/{fromObjectType}/{toObjectType}/batch/associate/default'].post
  update:
    x-apievangelist-phrasing:
      intent: Create default associations in bulk
      effect: write
      questions:
      - How do I link many record pairs using just the generic, unlabeled association type?
      - Can I bulk associate deals to contacts without choosing association labels?
      instructions:
      - text: Create default associations from {from_object_type} to {to_object_type} for {record_pairs}.
        slots:
          from_object_type: path.fromObjectType
          to_object_type: path.toObjectType
          record_pairs: requestBody.inputs
      - text: Link {record_pairs} between {from_object_type} and {to_object_type} with the most generic association.
        slots:
          record_pairs: requestBody.inputs
          from_object_type: path.fromObjectType
          to_object_type: path.toObjectType
      method: generated
      generated: '2026-09-24'
- target: $.paths['/crm/associations/2026-03/{fromObjectType}/{toObjectType}/batch/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Associate record pairs with labels in bulk
      effect: write
      questions:
      - How can I link many records with a specific association label, like primary company?
      - Can I apply labelled associations between two object types for lots of records at once?
      instructions:
      - text: Associate {from_object_type} to {to_object_type} with labels for {labelled_pairs}.
        slots:
          from_object_type: path.fromObjectType
          to_object_type: path.toObjectType
          labelled_pairs: requestBody.inputs
      - text: 'Create these labelled links between {from_object_type} and {to_object_type} records: {labelled_pairs}.'
        slots:
          from_object_type: path.fromObjectType
          to_object_type: path.toObjectType
          labelled_pairs: requestBody.inputs
      method: generated
      generated: '2026-09-24'


# --- truncated at 32 KB (159 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/overlays/hubspot-batch-api-phrasing-overlay.yaml

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/hubspot-batch-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.