Skip to content

Commit ebb3db9

Browse files
klaviyo-sdkklaviyo-sdk
andauthored
version 17.0.0 (#45)
Co-authored-by: klaviyo-sdk <[email protected]>
1 parent c692a13 commit ebb3db9

700 files changed

Lines changed: 56149 additions & 9269 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [17.0.0] - revision 2026-04-15
8+
### Added
9+
- Conversations API
10+
- Send an outbound message to a profile with Create Conversation Message. Supports SMS and WhatsApp — the channel is determined automatically from the conversation. Conversation message endpoints use the SMALL rate limit tier (3 requests/second burst, 60 requests/minute steady).
11+
- Retrieve the conversation thread for a given profile with Get Conversation for Profile, or include it inline on profile retrievals using `?include=conversation`.
12+
### Changed
13+
- Drag-and-drop templates
14+
- Create drag-and-drop email templates programmaatically by setting `editor_type: SYSTEM_DRAGGABLE` and providing a `definition` body (mutually exclusive with `html`) via Create Template. DnD template endpoints use the SMALL rate limit tier (3 requests/second burst, 60 requests/minute steady).
15+
- List and retrieve drag-and-drog templates with Get Templates and Get Template. Use `additional-fields[template]=definition` to include the full template definition in the response.
16+
- Update an existing drag-and-drop template's `definition`, `name`, or `text` independently via Update Template.
17+
718
## [16.0.0] - revision 2026-01-15
819
### Added
920
- Added a new [single data source record create endpoint](https://github.com/klaviyo/klaviyo-api-ruby?tab=readme-ov-file#create-data-source-record) for one-at-a-time ingestion workloads

README.md

Lines changed: 349 additions & 303 deletions
Large diffs are not rendered by default.

klaviyo-api-sdk.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require "klaviyo-api-sdk/version"
1616

1717
Gem::Specification.new do |s|
1818
s.name = "klaviyo-api-sdk"
19-
s.version = "16.0.0"
19+
s.version = "17.0.0"
2020
s.authors = ['Klaviyo Team']
2121
s.email = ['[email protected]']
2222
s.summary = 'You heard us, a Ruby wrapper for the Klaviyo API'

lib/klaviyo-api-sdk.rb

Lines changed: 196 additions & 223 deletions
Large diffs are not rendered by default.

lib/klaviyo-api-sdk.rb.bak

Lines changed: 196 additions & 223 deletions
Large diffs are not rendered by default.

lib/klaviyo-api-sdk/api/accounts_api.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def initialize(api_client = ApiClient.default)
2222
# Retrieve a single account object by its account ID. You can only request the account by which the private API key was generated.<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady: `15/m` **Scopes:** `accounts:read`
2323
# @param id [String] The ID of the account
2424
# @param [Hash] opts the optional parameters
25-
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets
25+
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
2626
# @return [Hash<String, Object>]
2727
def get_account(id, opts = {})
2828
data, _status_code, _headers = get_account_with_http_info(id, opts)
@@ -33,7 +33,7 @@ def get_account(id, opts = {})
3333
# Retrieve a single account object by its account ID. You can only request the account by which the private API key was generated.&lt;br&gt;&lt;br&gt;*Rate limits*:&lt;br&gt;Burst: &#x60;1/s&#x60;&lt;br&gt;Steady: &#x60;15/m&#x60; **Scopes:** &#x60;accounts:read&#x60;
3434
# @param id [String] The ID of the account
3535
# @param [Hash] opts the optional parameters
36-
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets
36+
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
3737
# @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
3838
def get_account_with_http_info(id, opts = {})
3939
if @api_client.config.debugging
@@ -43,7 +43,7 @@ def get_account_with_http_info(id, opts = {})
4343
if @api_client.config.client_side_validation && id.nil?
4444
fail ArgumentError, "Missing the required parameter 'id' when calling AccountsApi.get_account"
4545
end
46-
allowable_values = ["test_account", "contact_information", "contact_information.default_sender_name", "contact_information.default_sender_email", "contact_information.website_url", "contact_information.organization_name", "contact_information.street_address", "contact_information.street_address.address1", "contact_information.street_address.address2", "contact_information.street_address.city", "contact_information.street_address.region", "contact_information.street_address.country", "contact_information.street_address.zip", "industry", "timezone", "preferred_currency", "public_api_key", "locale"]
46+
allowable_values = ["contact_information", "contact_information.default_sender_email", "contact_information.default_sender_name", "contact_information.organization_name", "contact_information.street_address", "contact_information.street_address.address1", "contact_information.street_address.address2", "contact_information.street_address.city", "contact_information.street_address.country", "contact_information.street_address.region", "contact_information.street_address.zip", "contact_information.website_url", "industry", "locale", "preferred_currency", "public_api_key", "test_account", "timezone"]
4747
if @api_client.config.client_side_validation && opts[:'fields_account'] && !opts[:'fields_account'].all? { |item| allowable_values.include?(item) }
4848
fail ArgumentError, "invalid value for \"fields_account\", must include one of #{allowable_values}"
4949
end
@@ -57,7 +57,7 @@ def get_account_with_http_info(id, opts = {})
5757
# header parameters
5858
header_params = opts[:header_params] || {}
5959
# klaviyo api revision
60-
header_params['revision'] = ENV['KLAVIYO_API_REVISION'] || ENV['API_REVISION'] || "2026-01-15"
60+
header_params['revision'] = ENV['KLAVIYO_API_REVISION'] || ENV['API_REVISION'] || "2026-04-15"
6161
# HTTP header 'Accept' (if needed)
6262
header_params['Accept'] = @api_client.select_header_accept(['application/vnd.api+json'])
6363

@@ -93,7 +93,7 @@ def get_account_with_http_info(id, opts = {})
9393
# Get Accounts
9494
# Retrieve the account(s) associated with a given private API key. This will return 1 account object within the array. You can use this to retrieve account-specific data (contact information, timezone, currency, Public API key, etc.) or test if a Private API Key belongs to the correct account prior to performing subsequent actions with the API.<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady: `15/m` **Scopes:** `accounts:read`
9595
# @param [Hash] opts the optional parameters
96-
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets
96+
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
9797
# @return [Hash<String, Object>]
9898
def get_accounts(opts = {})
9999
data, _status_code, _headers = get_accounts_with_http_info(opts)
@@ -103,13 +103,13 @@ def get_accounts(opts = {})
103103
# Get Accounts
104104
# Retrieve the account(s) associated with a given private API key. This will return 1 account object within the array. You can use this to retrieve account-specific data (contact information, timezone, currency, Public API key, etc.) or test if a Private API Key belongs to the correct account prior to performing subsequent actions with the API.&lt;br&gt;&lt;br&gt;*Rate limits*:&lt;br&gt;Burst: &#x60;1/s&#x60;&lt;br&gt;Steady: &#x60;15/m&#x60; **Scopes:** &#x60;accounts:read&#x60;
105105
# @param [Hash] opts the optional parameters
106-
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-01-15/reference/api-overview#sparse-fieldsets
106+
# @option opts [Array<String>] :fields_account For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
107107
# @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
108108
def get_accounts_with_http_info(opts = {})
109109
if @api_client.config.debugging
110110
@api_client.config.logger.debug 'Calling API: AccountsApi.get_accounts ...'
111111
end
112-
allowable_values = ["test_account", "contact_information", "contact_information.default_sender_name", "contact_information.default_sender_email", "contact_information.website_url", "contact_information.organization_name", "contact_information.street_address", "contact_information.street_address.address1", "contact_information.street_address.address2", "contact_information.street_address.city", "contact_information.street_address.region", "contact_information.street_address.country", "contact_information.street_address.zip", "industry", "timezone", "preferred_currency", "public_api_key", "locale"]
112+
allowable_values = ["contact_information", "contact_information.default_sender_email", "contact_information.default_sender_name", "contact_information.organization_name", "contact_information.street_address", "contact_information.street_address.address1", "contact_information.street_address.address2", "contact_information.street_address.city", "contact_information.street_address.country", "contact_information.street_address.region", "contact_information.street_address.zip", "contact_information.website_url", "industry", "locale", "preferred_currency", "public_api_key", "test_account", "timezone"]
113113
if @api_client.config.client_side_validation && opts[:'fields_account'] && !opts[:'fields_account'].all? { |item| allowable_values.include?(item) }
114114
fail ArgumentError, "invalid value for \"fields_account\", must include one of #{allowable_values}"
115115
end
@@ -123,7 +123,7 @@ def get_accounts_with_http_info(opts = {})
123123
# header parameters
124124
header_params = opts[:header_params] || {}
125125
# klaviyo api revision
126-
header_params['revision'] = ENV['KLAVIYO_API_REVISION'] || ENV['API_REVISION'] || "2026-01-15"
126+
header_params['revision'] = ENV['KLAVIYO_API_REVISION'] || ENV['API_REVISION'] || "2026-04-15"
127127
# HTTP header 'Accept' (if needed)
128128
header_params['Accept'] = @api_client.select_header_accept(['application/vnd.api+json'])
129129

0 commit comments

Comments
 (0)