Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

P15/hubspot-api-ruby

Open more actions menu
 
 

Repository files navigation

hubspot-api-client

Ruby API v3 Client files and sample apps

  • API version: v3
  • Package version: 1.0.0
  • Build package: io.swagger.codegen.languages.RubyClientCodegen

Documentation

See the Hubspot API docs.

Installation

gem 'hubspot-api-client'

Getting Started

Please follow the installation procedure and then run the following code:

# Load the gem
require 'hubspot-api-client'

# Setup authorization
Hubspot.configure do |config|
  # Configure API key authorization: hapikey
  config.api_key['hapikey'] = 'demo'
end

# Get contacts
basic_api = Hubspot::Crm::Contacts::BasicApi.new
basic_api.get_page(auth_names: 'hapikey')

Usage

Get all:

get_all method is available for all major objects (Companies, Contacts, Deals, LineItems, Products, Quotes & Tickets) and works like

basic_api = Hubspot::Crm::Contacts::BasicApi.new
all_contacts = basic_api.get_all(auth_names: 'oauth2')

Please note that pagination is used under the hood to get all results.

Crm Object Schemas client usage:

Creation

config = ::Hubspot::Crm::Schemas::Configuration.new do |config|
    config.api_key = { 'hapikey' => 'your_hapikey' }
  end
  api_client = ::Hubspot::Crm::Schemas::ApiClient.new(config)
  api = ::Hubspot::Crm::Schemas::CoreApi.new(api_client)
  labels = ::Hubspot::Crm::Schemas::ObjectTypeDefinitionLabels.new(singular: 'My object', plural: 'My objects')
  option = ::Hubspot::Crm::Schemas::OptionInput.new(
    label: 'Option A',
    value: 'A',
    description: 'Choice number one',
    display_order: 1,
    hidden: false
  )
  property = ::Hubspot::Crm::Schemas::ObjectTypePropertyCreate.new(
      name: 'property001',
      label: 'My object property',
      group_name: 'my_object_information',
      options: [option],
      display_order: 2,
      type: 'enumeration',
      field_type: 'select'
  )
  object_schema_egg = ::Hubspot::Crm::Schemas::ObjectSchemaEgg.new(
      labels: labels,
      required_properties: ['property001'],
      searchable_properties: [],
      primary_display_property: 'property001',
      secondary_display_properties: [],
      properties: [property],
      associated_objects: ['CONTACT'],
      name: 'my_object'
  )
  api_response = api.create(object_schema_egg)

Error handling

You can set number of retry attempts and delay in seconds before retry on specific status code of response.

Available params:

  • max_retries (maximum number of retries)
  • seconds_delay (pause in seconds between retries)
  • retry_block (block that is executed after every retry)
config = ::Hubspot::Crm::Companies::Configuration.new do |config|
  config.access_token = 'YOUR ACCESS TOKEN'

  # Set handlers of statuses you want to handle
  config.error_handler = {
    [429, 430, 442] => { max_retries: 5, seconds_delay: 1 },
    (500..530).to_a => { max_retries: 2, seconds_delay: 2 },
    400 => { max_retries: 3, seconds_delay: 3 },
  }
end

api_client = ::Hubspot::Crm::Companies::ApiClient.new(config)
basic_api = ::Hubspot::Crm::Companies::BasicApi.new(api_client)
end

About

HubSpot API Ruby Client Libraries for V3 version of the API

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Ruby 93.5%
  • JavaScript 5.1%
  • HTML 1.1%
  • CSS 0.2%
  • Dockerfile 0.1%
  • Shell 0.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.