Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ebe147a
Merge pull request #2 from SparkLoop/webhooks_list
ManuelFrigerio Nov 16, 2020
4d63117
Prepare the namespace for the v4 API
risteskipetar Sep 19, 2023
339baac
Changes for api v4
risteskipetar Sep 20, 2023
4249e1e
Access token and refresh token
risteskipetar Sep 20, 2023
71621ba
Revoke access
risteskipetar Sep 20, 2023
48605e4
Merge pull request #1 from SparkLoop/update/ck-v4-namespace
ManuelFrigerio Sep 23, 2023
8948265
custom fields
ManuelFrigerio Sep 26, 2023
8d31572
subscribers
ManuelFrigerio Sep 26, 2023
6c012b6
tags
ManuelFrigerio Sep 26, 2023
18875f5
webhooks
ManuelFrigerio Sep 26, 2023
1ae2a5b
updated version
ManuelFrigerio Sep 26, 2023
f931fa1
Merge pull request #2 from SparkLoop:update-endpoints
ManuelFrigerio Sep 26, 2023
abad0f3
changes
ManuelFrigerio Sep 26, 2023
487040d
changed version
ManuelFrigerio Sep 26, 2023
2b1389f
Merge pull request #3 from SparkLoop:make-calls-coherent
ManuelFrigerio Sep 26, 2023
d559976
values
ManuelFrigerio Sep 26, 2023
4bb631d
version
ManuelFrigerio Sep 26, 2023
10f4b52
Merge pull request #4 from SparkLoop:further-improvements
ManuelFrigerio Sep 26, 2023
fae7758
changes
ManuelFrigerio Sep 26, 2023
ea780bf
version
ManuelFrigerio Sep 26, 2023
f64d035
Merge pull request #5 from SparkLoop:small-fixes
ManuelFrigerio Sep 26, 2023
2613b2a
ExpiredTokenError
ManuelFrigerio Sep 26, 2023
2705ad1
raise error
ManuelFrigerio Sep 26, 2023
254474d
version
ManuelFrigerio Sep 26, 2023
a09ee6a
Merge pull request #6 from SparkLoop:invalid-token-error
ManuelFrigerio Sep 26, 2023
a68d744
Fixes error handling
BilalBudhani Feb 6, 2024
98f4239
Updates version
BilalBudhani Feb 6, 2024
69d0326
Merge pull request #7 from BilalBudhani/error-handling-bug-fix
ManuelFrigerio Feb 6, 2024
716437f
endpoints
ManuelFrigerio Feb 6, 2024
a19e361
specs
ManuelFrigerio Feb 6, 2024
c044a65
updated version
ManuelFrigerio Feb 6, 2024
8a1f744
Merge pull request #4 from SparkLoop/broadcasts
ManuelFrigerio Feb 6, 2024
c07cede
Revert "Broadcasts"
ManuelFrigerio Feb 6, 2024
e1c6c2e
Merge pull request #5 from SparkLoop/revert-4-broadcasts
ManuelFrigerio Feb 6, 2024
58c2eb8
endpoint
ManuelFrigerio Aug 2, 2025
78377ef
specs
ManuelFrigerio Aug 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions lib/convertkit/client/subscribers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,29 @@ def subscriber_tags(subscriber_id)
connection.get("subscribers/#{subscriber_id}/tags")
end

# returns an hash with the following keys:
# {
# "subscriber": {
# "id": 3436990966,
# "stats": {
# "sent": 2,
# "opened": 2,
# "clicked": 2,
# "bounced": 0,
# "open_rate": 1,
# "click_rate": 1,
# "last_sent": "2025-06-25 16:44:37.000",
# "last_opened": "2025-06-25 16:45:36.000",
# "last_clicked": "2025-06-25 16:45:42.000",
# "sent_since_last_open": 0,
# "sent_since_last_click": 0
# }
# }
# }
def subscriber_stats(subscriber_id)
connection.get("subscribers/#{subscriber_id}/stats")
end

def update_subscriber(subscriber_id, options = {})
response = connection.put("subscribers/#{subscriber_id}") do |f|
f.params["email_address"] = options[:email_address] if options[:email_address]
Expand Down
8 changes: 8 additions & 0 deletions spec/convertkit/client/subscribers_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ class Client
end
end

describe "#subscriber_stats" do
it "sends the right request" do
subscriber_id = ENV['SUBSCRIBER_ID']
r = @client.subscriber_stats(subscriber_id)
expect(r.success?).to be_truthy
end
end

describe "#update_subscriber" do
it "updates a subscriber" do
old_email = "old-email-#{Time.now.to_i}@example.com"
Expand Down
Loading